Array.prototype.pushArray=function(values){this.push.apply(this,values);};(function(){var minContentWidth=360;if(screen.width>=minContentWidth){return;}
var setViewport=function(width,scale){var v=document.getElementById('viewport');v.setAttribute("content","width="+width+", initial-scale="+scale+", user-scalable=no");}
var ratio=screen.width/minContentWidth;setViewport(minContentWidth,ratio);})();(function(global,factory){if(typeof module==="object"&&typeof module.exports==="object"){module.exports=global.document?factory(global,true):function(w){if(!w.document){throw new Error("jQuery requires a window with a document");}
return factory(w);};}else{factory(global);}}(typeof window!=="undefined"?window:this,function(window,noGlobal){var arr=[];var slice=arr.slice;var concat=arr.concat;var push=arr.push;var indexOf=arr.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var support={};var
document=window.document,version="2.1.4",jQuery=function(selector,context){return new jQuery.fn.init(selector,context);},rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,rmsPrefix=/^-ms-/,rdashAlpha=/-([\da-z])/gi,fcamelCase=function(all,letter){return letter.toUpperCase();};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,selector:"",length:0,toArray:function(){return slice.call(this);},get:function(num){return num!=null?(num<0?this[num+this.length]:this[num]):slice.call(this);},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);ret.prevObject=this;ret.context=this.context;return ret;},each:function(callback,args){return jQuery.each(this,callback,args);},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},slice:function(){return this.pushStack(slice.apply(this,arguments));},first:function(){return this.eq(0);},last:function(){return this.eq(-1);},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[]);},end:function(){return this.prevObject||this.constructor(null);},push:push,sort:arr.sort,splice:arr.splice};jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++;}
if(typeof target!=="object"&&!jQuery.isFunction(target)){target={};}
if(i===length){target=this;i--;}
for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue;}
if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[];}else{clone=src&&jQuery.isPlainObject(src)?src:{};}
target[name]=jQuery.extend(deep,clone,copy);}else if(copy!==undefined){target[name]=copy;}}}}
return target;};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg);},noop:function(){},isFunction:function(obj){return jQuery.type(obj)==="function";},isArray:Array.isArray,isWindow:function(obj){return obj!=null&&obj===obj.window;},isNumeric:function(obj){return!jQuery.isArray(obj)&&(obj-parseFloat(obj)+1)>=0;},isPlainObject:function(obj){if(jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false;}
if(obj.constructor&&!hasOwn.call(obj.constructor.prototype,"isPrototypeOf")){return false;}
return true;},isEmptyObject:function(obj){var name;for(name in obj){return false;}
return true;},type:function(obj){if(obj==null){return obj+"";}
return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj;},globalEval:function(code){var script,indirect=eval;code=jQuery.trim(code);if(code){if(code.indexOf("use strict")===1){script=document.createElement("script");script.text=code;document.head.appendChild(script).parentNode.removeChild(script);}else{indirect(code);}}},camelCase:function(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase);},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase();},each:function(obj,callback,args){var value,i=0,length=obj.length,isArray=isArraylike(obj);if(args){if(isArray){for(;i<length;i++){value=callback.apply(obj[i],args);if(value===false){break;}}}else{for(i in obj){value=callback.apply(obj[i],args);if(value===false){break;}}}}else{if(isArray){for(;i<length;i++){value=callback.call(obj[i],i,obj[i]);if(value===false){break;}}}else{for(i in obj){value=callback.call(obj[i],i,obj[i]);if(value===false){break;}}}}
return obj;},trim:function(text){return text==null?"":(text+"").replace(rtrim,"");},makeArray:function(arr,results){var ret=results||[];if(arr!=null){if(isArraylike(Object(arr))){jQuery.merge(ret,typeof arr==="string"?[arr]:arr);}else{push.call(ret,arr);}}
return ret;},inArray:function(elem,arr,i){return arr==null?-1:indexOf.call(arr,elem,i);},merge:function(first,second){var len=+second.length,j=0,i=first.length;for(;j<len;j++){first[i++]=second[j];}
first.length=i;return first;},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i]);}}
return matches;},map:function(elems,callback,arg){var value,i=0,length=elems.length,isArray=isArraylike(elems),ret=[];if(isArray){for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value);}}}
return concat.apply([],ret);},guid:1,proxy:function(fn,context){var tmp,args,proxy;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp;}
if(!jQuery.isFunction(fn)){return undefined;}
args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)));};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy;},now:Date.now,support:support});jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase();});function isArraylike(obj){var length="length"in obj&&obj.length,type=jQuery.type(obj);if(type==="function"||jQuery.isWindow(obj)){return false;}
if(obj.nodeType===1&&length){return true;}
return type==="array"||length===0||typeof length==="number"&&length>0&&(length-1)in obj;}
var Sizzle=(function(window){var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+1*new Date(),preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=true;}
return 0;},MAX_NEGATIVE=1<<31,hasOwn=({}).hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){var i=0,len=list.length;for(;i<len;i++){if(list[i]===elem){return i;}}
return-1;},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",characterEncoding="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",identifier=characterEncoding.replace("w","w#"),attributes="\\["+whitespace+"*("+characterEncoding+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+characterEncoding+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={"ID":new RegExp("^#("+characterEncoding+")"),"CLASS":new RegExp("^\\.("+characterEncoding+")"),"TAG":new RegExp("^("+characterEncoding.replace("w","w*")+")"),"ATTR":new RegExp("^"+attributes),"PSEUDO":new RegExp("^"+pseudos),"CHILD":new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),"bool":new RegExp("^(?:"+booleans+")$","i"),"needsContext":new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+
whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,rescape=/'|\\/g,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-0x10000;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+0x10000):String.fromCharCode(high>>10|0xD800,high&0x3FF|0xDC00);},unloadHandler=function(){setDocument();};try{push.apply((arr=slice.call(preferredDoc.childNodes)),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType;}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els));}:function(target,els){var j=target.length,i=0;while((target[j++]=els[i++])){}
target.length=j-1;}};}
function Sizzle(selector,context,results,seed){var match,elem,m,nodeType,i,groups,old,nid,newContext,newSelector;if((context?context.ownerDocument||context:preferredDoc)!==document){setDocument(context);}
context=context||document;results=results||[];nodeType=context.nodeType;if(typeof selector!=="string"||!selector||nodeType!==1&&nodeType!==9&&nodeType!==11){return results;}
if(!seed&&documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector))){if((m=match[1])){if(nodeType===9){elem=context.getElementById(m);if(elem&&elem.parentNode){if(elem.id===m){results.push(elem);return results;}}else{return results;}}else{if(context.ownerDocument&&(elem=context.ownerDocument.getElementById(m))&&contains(context,elem)&&elem.id===m){results.push(elem);return results;}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results;}else if((m=match[3])&&support.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results;}}
if(support.qsa&&(!rbuggyQSA||!rbuggyQSA.test(selector))){nid=old=expando;newContext=context;newSelector=nodeType!==1&&selector;if(nodeType===1&&context.nodeName.toLowerCase()!=="object"){groups=tokenize(selector);if((old=context.getAttribute("id"))){nid=old.replace(rescape,"\\$&");}else{context.setAttribute("id",nid);}
nid="[id='"+nid+"'] ";i=groups.length;while(i--){groups[i]=nid+toSelector(groups[i]);}
newContext=rsibling.test(selector)&&testContext(context.parentNode)||context;newSelector=groups.join(",");}
if(newSelector){try{push.apply(results,newContext.querySelectorAll(newSelector));return results;}catch(qsaError){}finally{if(!old){context.removeAttribute("id");}}}}}
return select(selector.replace(rtrim,"$1"),context,results,seed);}
function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()];}
return(cache[key+" "]=value);}
return cache;}
function markFunction(fn){fn[expando]=true;return fn;}
function assert(fn){var div=document.createElement("div");try{return!!fn(div);}catch(e){return false;}finally{if(div.parentNode){div.parentNode.removeChild(div);}
div=null;}}
function addHandle(attrs,handler){var arr=attrs.split("|"),i=attrs.length;while(i--){Expr.attrHandle[arr[i]]=handler;}}
function siblingCheck(a,b){var cur=b&&a,diff=cur&&a.nodeType===1&&b.nodeType===1&&(~b.sourceIndex||MAX_NEGATIVE)-
(~a.sourceIndex||MAX_NEGATIVE);if(diff){return diff;}
if(cur){while((cur=cur.nextSibling)){if(cur===b){return-1;}}}
return a?1:-1;}
function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type===type;};}
function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&elem.type===type;};}
function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[(j=matchIndexes[i])]){seed[j]=!(matches[j]=seed[j]);}}});});}
function testContext(context){return context&&typeof context.getElementsByTagName!=="undefined"&&context;}
support=Sizzle.support={};isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return documentElement?documentElement.nodeName!=="HTML":false;};setDocument=Sizzle.setDocument=function(node){var hasCompare,parent,doc=node?node.ownerDocument||node:preferredDoc;if(doc===document||doc.nodeType!==9||!doc.documentElement){return document;}
document=doc;docElem=doc.documentElement;parent=doc.defaultView;if(parent&&parent!==parent.top){if(parent.addEventListener){parent.addEventListener("unload",unloadHandler,false);}else if(parent.attachEvent){parent.attachEvent("onunload",unloadHandler);}}
documentIsHTML=!isXML(doc);support.attributes=assert(function(div){div.className="i";return!div.getAttribute("className");});support.getElementsByTagName=assert(function(div){div.appendChild(doc.createComment(""));return!div.getElementsByTagName("*").length;});support.getElementsByClassName=rnative.test(doc.getElementsByClassName);support.getById=assert(function(div){docElem.appendChild(div).id=expando;return!doc.getElementsByName||!doc.getElementsByName(expando).length;});if(support.getById){Expr.find["ID"]=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var m=context.getElementById(id);return m&&m.parentNode?[m]:[];}};Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId;};};}else{delete Expr.find["ID"];Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return node&&node.value===attrId;};};}
Expr.find["TAG"]=support.getElementsByTagName?function(tag,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(tag);}else if(support.qsa){return context.querySelectorAll(tag);}}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if(tag==="*"){while((elem=results[i++])){if(elem.nodeType===1){tmp.push(elem);}}
return tmp;}
return results;};Expr.find["CLASS"]=support.getElementsByClassName&&function(className,context){if(documentIsHTML){return context.getElementsByClassName(className);}};rbuggyMatches=[];rbuggyQSA=[];if((support.qsa=rnative.test(doc.querySelectorAll))){assert(function(div){docElem.appendChild(div).innerHTML="<a id='"+expando+"'></a>"+"<select id='"+expando+"-\f]' msallowcapture=''>"+"<option selected=''></option></select>";if(div.querySelectorAll("[msallowcapture^='']").length){rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")");}
if(!div.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")");}
if(!div.querySelectorAll("[id~="+expando+"-]").length){rbuggyQSA.push("~=");}
if(!div.querySelectorAll(":checked").length){rbuggyQSA.push(":checked");}
if(!div.querySelectorAll("a#"+expando+"+*").length){rbuggyQSA.push(".#.+[+~]");}});assert(function(div){var input=doc.createElement("input");input.setAttribute("type","hidden");div.appendChild(input).setAttribute("name","D");if(div.querySelectorAll("[name=d]").length){rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?=");}
if(!div.querySelectorAll(":enabled").length){rbuggyQSA.push(":enabled",":disabled");}
div.querySelectorAll("*,:x");rbuggyQSA.push(",.*:");});}
if((support.matchesSelector=rnative.test((matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector)))){assert(function(div){support.disconnectedMatch=matches.call(div,"div");matches.call(div,"[s!='']:x");rbuggyMatches.push("!=",pseudos);});}
rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|"));hasCompare=rnative.test(docElem.compareDocumentPosition);contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=a.nodeType===9?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16));}:function(a,b){if(b){while((b=b.parentNode)){if(b===a){return true;}}}
return false;};sortOrder=hasCompare?function(a,b){if(a===b){hasDuplicate=true;return 0;}
var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare;}
compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||(!support.sortDetached&&b.compareDocumentPosition(a)===compare)){if(a===doc||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)){return-1;}
if(b===doc||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)){return 1;}
return sortInput?(indexOf(sortInput,a)-indexOf(sortInput,b)):0;}
return compare&4?-1:1;}:function(a,b){if(a===b){hasDuplicate=true;return 0;}
var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup){return a===doc?-1:b===doc?1:aup?-1:bup?1:sortInput?(indexOf(sortInput,a)-indexOf(sortInput,b)):0;}else if(aup===bup){return siblingCheck(a,b);}
cur=a;while((cur=cur.parentNode)){ap.unshift(cur);}
cur=b;while((cur=cur.parentNode)){bp.unshift(cur);}
while(ap[i]===bp[i]){i++;}
return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0;};return doc;};Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements);};Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document){setDocument(elem);}
expr=expr.replace(rattributeQuotes,"='$1']");if(support.matchesSelector&&documentIsHTML&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret;}}catch(e){}}
return Sizzle(expr,document,null,[elem]).length>0;};Sizzle.contains=function(context,elem){if((context.ownerDocument||context)!==document){setDocument(context);}
return contains(context,elem);};Sizzle.attr=function(elem,name){if((elem.ownerDocument||elem)!==document){setDocument(elem);}
var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;return val!==undefined?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null;};Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg);};Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.detectDuplicates;sortInput=!support.sortStable&&results.slice(0);results.sort(sortOrder);if(hasDuplicate){while((elem=results[i++])){if(elem===results[i]){j=duplicates.push(i);}}
while(j--){results.splice(duplicates[j],1);}}
sortInput=null;return results;};getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while((node=elem[i++])){ret+=getText(node);}}else if(nodeType===1||nodeType===9||nodeType===11){if(typeof elem.textContent==="string"){return elem.textContent;}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem);}}}else if(nodeType===3||nodeType===4){return elem.nodeValue;}
return ret;};Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{"ATTR":function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~="){match[3]=" "+match[3]+" ";}
return match.slice(0,4);},"CHILD":function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){Sizzle.error(match[0]);}
match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd"));match[5]=+((match[7]+match[8])||match[3]==="odd");}else if(match[3]){Sizzle.error(match[0]);}
return match;},"PSEUDO":function(match){var excess,unquoted=!match[6]&&match[2];if(matchExpr["CHILD"].test(match[0])){return null;}
if(match[3]){match[2]=match[4]||match[5]||"";}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess);}
return match.slice(0,3);}},filter:{"TAG":function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return true;}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName;};},"CLASS":function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||typeof elem.getAttribute!=="undefined"&&elem.getAttribute("class")||"");});},"ATTR":function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);if(result==null){return operator==="!=";}
if(!operator){return true;}
result+="";return operator==="="?result===check:operator==="!="?result!==check:operator==="^="?check&&result.indexOf(check)===0:operator==="*="?check&&result.indexOf(check)>-1:operator==="$="?check&&result.slice(-check.length)===check:operator==="~="?(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1:operator==="|="?result===check||result.slice(0,check.length+1)===check+"-":false;};},"CHILD":function(type,what,argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return!!elem.parentNode;}:function(elem,context,xml){var cache,outerCache,node,diff,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType;if(parent){if(simple){while(dir){node=elem;while((node=node[dir])){if(ofType?node.nodeName.toLowerCase()===name:node.nodeType===1){return false;}}
start=dir=type==="only"&&!start&&"nextSibling";}
return true;}
start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){outerCache=parent[expando]||(parent[expando]={});cache=outerCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=cache[0]===dirruns&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if(node.nodeType===1&&++diff&&node===elem){outerCache[type]=[dirruns,nodeIndex,diff];break;}}}else if(useCache&&(cache=(elem[expando]||(elem[expando]={}))[type])&&cache[0]===dirruns){diff=cache[1];}else{while((node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())){if((ofType?node.nodeName.toLowerCase()===name:node.nodeType===1)&&++diff){if(useCache){(node[expando]||(node[expando]={}))[type]=[dirruns,diff];}
if(node===elem){break;}}}}
diff-=last;return diff===first||(diff%first===0&&diff/first>=0);}};},"PSEUDO":function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument);}
if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i]);}}):function(elem){return fn(elem,0,args);};}
return fn;}},pseudos:{"not":markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if((elem=unmatched[i])){seed[i]=!(matches[i]=elem);}}}):function(elem,context,xml){input[0]=elem;matcher(input,null,xml,results);input[0]=null;return!results.pop();};}),"has":markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0;};}),"contains":markFunction(function(text){text=text.replace(runescape,funescape);return function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1;};}),"lang":markFunction(function(lang){if(!ridentifier.test(lang||"")){Sizzle.error("unsupported lang: "+lang);}
lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if((elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang"))){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0;}}while((elem=elem.parentNode)&&elem.nodeType===1);return false;};}),"target":function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id;},"root":function(elem){return elem===docElem;},"focus":function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex);},"enabled":function(elem){return elem.disabled===false;},"disabled":function(elem){return elem.disabled===true;},"checked":function(elem){var nodeName=elem.nodeName.toLowerCase();return(nodeName==="input"&&!!elem.checked)||(nodeName==="option"&&!!elem.selected);},"selected":function(elem){if(elem.parentNode){elem.parentNode.selectedIndex;}
return elem.selected===true;},"empty":function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false;}}
return true;},"parent":function(elem){return!Expr.pseudos["empty"](elem);},"header":function(elem){return rheader.test(elem.nodeName);},"input":function(elem){return rinputs.test(elem.nodeName);},"button":function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type==="button"||name==="button";},"text":function(elem){var attr;return elem.nodeName.toLowerCase()==="input"&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text");},"first":createPositionalPseudo(function(){return[0];}),"last":createPositionalPseudo(function(matchIndexes,length){return[length-1];}),"eq":createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument];}),"even":createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i);}
return matchIndexes;}),"odd":createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i);}
return matchIndexes;}),"lt":createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;--i>=0;){matchIndexes.push(i);}
return matchIndexes;}),"gt":createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i);}
return matchIndexes;})}};Expr.pseudos["nth"]=Expr.pseudos["eq"];for(i in{radio:true,checkbox:true,file:true,password:true,image:true}){Expr.pseudos[i]=createInputPseudo(i);}
for(i in{submit:true,reset:true}){Expr.pseudos[i]=createButtonPseudo(i);}
function setFilters(){}
setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters();tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached){return parseOnly?0:cached.slice(0);}
soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar;}
groups.push((tokens=[]));}
matched=false;if((match=rcombinators.exec(soFar))){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrim," ")});soFar=soFar.slice(matched.length);}
for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length);}}
if(!matched){break;}}
return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0);};function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++){selector+=tokens[i].value;}
return selector;}
function addCombinator(matcher,combinator,base){var dir=combinator.dir,checkNonElements=base&&dir==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml);}}}:function(elem,context,xml){var oldCache,outerCache,newCache=[dirruns,doneName];if(xml){while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return true;}}}}else{while((elem=elem[dir])){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});if((oldCache=outerCache[dir])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return(newCache[2]=oldCache[2]);}else{outerCache[dir]=newCache;if((newCache[2]=matcher(elem,context,xml))){return true;}}}}}};}
function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return false;}}
return true;}:matchers[0];}
function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){Sizzle(selector,contexts[i],results);}
return results;}
function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if((elem=unmatched[i])){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i);}}}}
return newUnmatched;}
function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter);}
if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector);}
return markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems,matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher){matcher(matcherIn,matcherOut,context,xml);}
if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if((elem=temp[i])){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem);}}}
if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if((elem=matcherOut[i])){temp.push((matcherIn[i]=elem));}}
postFinder(null,(matcherOut=[]),temp,xml);}
i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem);}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){postFinder(null,results,matcherOut,xml);}else{push.apply(results,matcherOut);}}});}
function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext;},implicitRelative,true),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1;},implicitRelative,true),matchers=[function(elem,context,xml){var ret=(!leadingRelative&&(xml||context!==outermostContext))||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));checkContext=null;return ret;}];for(;i<len;i++){if((matcher=Expr.relative[tokens[i].type])){matchers=[addCombinator(elementMatcher(matchers),matcher)];}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break;}}
return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrim,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens((tokens=tokens.slice(j))),j<len&&toSelector(tokens));}
matchers.push(matcher);}}
return elementMatcher(matchers);}
function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find["TAG"]("*",outermost),dirrunsUnique=(dirruns+=contextBackup==null?1:Math.random()||0.1),len=elems.length;if(outermost){outermostContext=context!==document&&context;}
for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;while((matcher=elementMatchers[j++])){if(matcher(elem,context,xml)){results.push(elem);break;}}
if(outermost){dirruns=dirrunsUnique;}}
if(bySet){if((elem=!matcher&&elem)){matchedCount--;}
if(seed){unmatched.push(elem);}}}
matchedCount+=i;if(bySet&&i!==matchedCount){j=0;while((matcher=setMatchers[j++])){matcher(unmatched,setMatched,context,xml);}
if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results);}}}
setMatched=condense(setMatched);}
push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&(matchedCount+setMatchers.length)>1){Sizzle.uniqueSort(results);}}
if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup;}
return unmatched;};return bySet?markFunction(superMatcher):superMatcher;}
compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector);}
i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached);}else{elementMatchers.push(cached);}}
cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector;}
return cached;};select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize((selector=compiled.selector||selector));results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&support.getById&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find["ID"](token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results;}else if(compiled){context=context.parentNode;}
selector=selector.slice(tokens.shift().value.length);}
i=matchExpr["needsContext"].test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[(type=token.type)]){break;}
if((find=Expr.find[type])){if((seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context))){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results;}
break;}}}}
(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,rsibling.test(selector)&&testContext(context.parentNode)||context);return results;};support.sortStable=expando.split("").sort(sortOrder).join("")===expando;support.detectDuplicates=!!hasDuplicate;setDocument();support.sortDetached=assert(function(div1){return div1.compareDocumentPosition(document.createElement("div"))&1;});if(!assert(function(div){div.innerHTML="<a href='#'></a>";return div.firstChild.getAttribute("href")==="#";})){addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML){return elem.getAttribute(name,name.toLowerCase()==="type"?1:2);}});}
if(!support.attributes||!assert(function(div){div.innerHTML="<input/>";div.firstChild.setAttribute("value","");return div.firstChild.getAttribute("value")==="";})){addHandle("value",function(elem,name,isXML){if(!isXML&&elem.nodeName.toLowerCase()==="input"){return elem.defaultValue;}});}
if(!assert(function(div){return div.getAttribute("disabled")==null;})){addHandle(booleans,function(elem,name,isXML){var val;if(!isXML){return elem[name]===true?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null;}});}
return Sizzle;})(window);jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;var rneedsContext=jQuery.expr.match.needsContext;var rsingleTag=(/^<(\w+)\s*\/?>(?:<\/\1>|)$/);var risSimple=/^.[^:#\[\.,]*$/;function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not;});}
if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return(elem===qualifier)!==not;});}
if(typeof qualifier==="string"){if(risSimple.test(qualifier)){return jQuery.filter(qualifier,elements,not);}
qualifier=jQuery.filter(qualifier,elements);}
return jQuery.grep(elements,function(elem){return(indexOf.call(qualifier,elem)>=0)!==not;});}
jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not){expr=":not("+expr+")";}
return elems.length===1&&elem.nodeType===1?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return elem.nodeType===1;}));};jQuery.fn.extend({find:function(selector){var i,len=this.length,ret=[],self=this;if(typeof selector!=="string"){return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++){if(jQuery.contains(self[i],this)){return true;}}}));}
for(i=0;i<len;i++){jQuery.find(selector,self[i],ret);}
ret=this.pushStack(len>1?jQuery.unique(ret):ret);ret.selector=this.selector?this.selector+" "+selector:selector;return ret;},filter:function(selector){return this.pushStack(winnow(this,selector||[],false));},not:function(selector){return this.pushStack(winnow(this,selector||[],true));},is:function(selector){return!!winnow(this,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length;}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,init=jQuery.fn.init=function(selector,context){var match,elem;if(!selector){return this;}
if(typeof selector==="string"){if(selector[0]==="<"&&selector[selector.length-1]===">"&&selector.length>=3){match=[null,selector,null];}else{match=rquickExpr.exec(selector);}
if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(jQuery.isFunction(this[match])){this[match](context[match]);}else{this.attr(match,context[match]);}}}
return this;}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){this.length=1;this[0]=elem;}
this.context=document;this.selector=selector;return this;}}else if(!context||context.jquery){return(context||rootjQuery).find(selector);}else{return this.constructor(context).find(selector);}}else if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this;}else if(jQuery.isFunction(selector)){return typeof rootjQuery.ready!=="undefined"?rootjQuery.ready(selector):selector(jQuery);}
if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context;}
return jQuery.makeArray(selector,this);};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.extend({dir:function(elem,dir,until){var matched=[],truncate=until!==undefined;while((elem=elem[dir])&&elem.nodeType!==9){if(elem.nodeType===1){if(truncate&&jQuery(elem).is(until)){break;}
matched.push(elem);}}
return matched;},sibling:function(n,elem){var matched=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){matched.push(n);}}
return matched;}});jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){var i=0;for(;i<l;i++){if(jQuery.contains(this,targets[i])){return true;}}});},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],pos=rneedsContext.test(selectors)||typeof selectors!=="string"?jQuery(selectors,context||this.context):0;for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(pos?pos.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break;}}}
return this.pushStack(matched.length>1?jQuery.unique(matched):matched);},index:function(elem){if(!elem){return(this[0]&&this[0].parentNode)?this.first().prevAll().length:-1;}
if(typeof elem==="string"){return indexOf.call(jQuery(elem),this[0]);}
return indexOf.call(this,elem.jquery?elem[0]:elem);},add:function(selector,context){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),jQuery(selector,context))));},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector));}});function sibling(cur,dir){while((cur=cur[dir])&&cur.nodeType!==1){}
return cur;}
jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null;},parents:function(elem){return jQuery.dir(elem,"parentNode");},parentsUntil:function(elem,i,until){return jQuery.dir(elem,"parentNode",until);},next:function(elem){return sibling(elem,"nextSibling");},prev:function(elem){return sibling(elem,"previousSibling");},nextAll:function(elem){return jQuery.dir(elem,"nextSibling");},prevAll:function(elem){return jQuery.dir(elem,"previousSibling");},nextUntil:function(elem,i,until){return jQuery.dir(elem,"nextSibling",until);},prevUntil:function(elem,i,until){return jQuery.dir(elem,"previousSibling",until);},siblings:function(elem){return jQuery.sibling((elem.parentNode||{}).firstChild,elem);},children:function(elem){return jQuery.sibling(elem.firstChild);},contents:function(elem){return elem.contentDocument||jQuery.merge([],elem.childNodes);}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);if(name.slice(-5)!=="Until"){selector=until;}
if(selector&&typeof selector==="string"){matched=jQuery.filter(selector,matched);}
if(this.length>1){if(!guaranteedUnique[name]){jQuery.unique(matched);}
if(rparentsprev.test(name)){matched.reverse();}}
return this.pushStack(matched);};});var rnotwhite=(/\S+/g);var optionsCache={};function createOptions(options){var object=optionsCache[options]={};jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=true;});return object;}
jQuery.Callbacks=function(options){options=typeof options==="string"?(optionsCache[options]||createOptions(options)):jQuery.extend({},options);var
memory,fired,firing,firingStart,firingLength,firingIndex,list=[],stack=!options.once&&[],fire=function(data){memory=options.memory&&data;fired=true;firingIndex=firingStart||0;firingStart=0;firingLength=list.length;firing=true;for(;list&&firingIndex<firingLength;firingIndex++){if(list[firingIndex].apply(data[0],data[1])===false&&options.stopOnFalse){memory=false;break;}}
firing=false;if(list){if(stack){if(stack.length){fire(stack.shift());}}else if(memory){list=[];}else{self.disable();}}},self={add:function(){if(list){var start=list.length;(function add(args){jQuery.each(args,function(_,arg){var type=jQuery.type(arg);if(type==="function"){if(!options.unique||!self.has(arg)){list.push(arg);}}else if(arg&&arg.length&&type!=="string"){add(arg);}});})(arguments);if(firing){firingLength=list.length;}else if(memory){firingStart=start;fire(memory);}}
return this;},remove:function(){if(list){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(firing){if(index<=firingLength){firingLength--;}
if(index<=firingIndex){firingIndex--;}}}});}
return this;},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:!!(list&&list.length);},empty:function(){list=[];firingLength=0;return this;},disable:function(){list=stack=memory=undefined;return this;},disabled:function(){return!list;},lock:function(){stack=undefined;if(!memory){self.disable();}
return this;},locked:function(){return!stack;},fireWith:function(context,args){if(list&&(!fired||stack)){args=args||[];args=[context,args.slice?args.slice():args];if(firing){stack.push(args);}else{fire(args);}}
return this;},fire:function(){self.fireWith(this,arguments);return this;},fired:function(){return!!fired;}};return self;};jQuery.extend({Deferred:function(func){var tuples=[["resolve","done",jQuery.Callbacks("once memory"),"resolved"],["reject","fail",jQuery.Callbacks("once memory"),"rejected"],["notify","progress",jQuery.Callbacks("memory")]],state="pending",promise={state:function(){return state;},always:function(){deferred.done(arguments).fail(arguments);return this;},then:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[i])&&fns[i];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify);}else{newDefer[tuple[0]+"With"](this===promise?newDefer.promise():this,fn?[returned]:arguments);}});});fns=null;}).promise();},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise;}},deferred={};promise.pipe=promise.then;jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[3];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString;},tuples[i^1][2].disable,tuples[2][2].lock);}
deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?promise:this,arguments);return this;};deferred[tuple[0]+"With"]=list.fireWith;});promise.promise(deferred);if(func){func.call(deferred,deferred);}
return deferred;},when:function(subordinate){var i=0,resolveValues=slice.call(arguments),length=resolveValues.length,remaining=length!==1||(subordinate&&jQuery.isFunction(subordinate.promise))?length:0,deferred=remaining===1?subordinate:jQuery.Deferred(),updateFunc=function(i,contexts,values){return function(value){contexts[i]=this;values[i]=arguments.length>1?slice.call(arguments):value;if(values===progressValues){deferred.notifyWith(contexts,values);}else if(!(--remaining)){deferred.resolveWith(contexts,values);}};},progressValues,progressContexts,resolveContexts;if(length>1){progressValues=new Array(length);progressContexts=new Array(length);resolveContexts=new Array(length);for(;i<length;i++){if(resolveValues[i]&&jQuery.isFunction(resolveValues[i].promise)){resolveValues[i].promise().done(updateFunc(i,resolveContexts,resolveValues)).fail(deferred.reject).progress(updateFunc(i,progressContexts,progressValues));}else{--remaining;}}}
if(!remaining){deferred.resolveWith(resolveContexts,resolveValues);}
return deferred.promise();}});var readyList;jQuery.fn.ready=function(fn){jQuery.ready.promise().done(fn);return this;};jQuery.extend({isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++;}else{jQuery.ready(true);}},ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return;}
jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return;}
readyList.resolveWith(document,[jQuery]);if(jQuery.fn.triggerHandler){jQuery(document).triggerHandler("ready");jQuery(document).off("ready");}}});function completed(){document.removeEventListener("DOMContentLoaded",completed,false);window.removeEventListener("load",completed,false);jQuery.ready();}
jQuery.ready.promise=function(obj){if(!readyList){readyList=jQuery.Deferred();if(document.readyState==="complete"){setTimeout(jQuery.ready);}else{document.addEventListener("DOMContentLoaded",completed,false);window.addEventListener("load",completed,false);}}
return readyList.promise(obj);};jQuery.ready.promise();var access=jQuery.access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=key==null;if(jQuery.type(key)==="object"){chainable=true;for(i in key){jQuery.access(elems,fn,i,key[i],true,emptyGet,raw);}}else if(value!==undefined){chainable=true;if(!jQuery.isFunction(value)){raw=true;}
if(bulk){if(raw){fn.call(elems,value);fn=null;}else{bulk=fn;fn=function(elem,key,value){return bulk.call(jQuery(elem),value);};}}
if(fn){for(;i<len;i++){fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)));}}}
return chainable?elems:bulk?fn.call(elems):len?fn(elems[0],key):emptyGet;};jQuery.acceptData=function(owner){return owner.nodeType===1||owner.nodeType===9||!(+owner.nodeType);};function Data(){Object.defineProperty(this.cache={},0,{get:function(){return{};}});this.expando=jQuery.expando+Data.uid++;}
Data.uid=1;Data.accepts=jQuery.acceptData;Data.prototype={key:function(owner){if(!Data.accepts(owner)){return 0;}
var descriptor={},unlock=owner[this.expando];if(!unlock){unlock=Data.uid++;try{descriptor[this.expando]={value:unlock};Object.defineProperties(owner,descriptor);}catch(e){descriptor[this.expando]=unlock;jQuery.extend(owner,descriptor);}}
if(!this.cache[unlock]){this.cache[unlock]={};}
return unlock;},set:function(owner,data,value){var prop,unlock=this.key(owner),cache=this.cache[unlock];if(typeof data==="string"){cache[data]=value;}else{if(jQuery.isEmptyObject(cache)){jQuery.extend(this.cache[unlock],data);}else{for(prop in data){cache[prop]=data[prop];}}}
return cache;},get:function(owner,key){var cache=this.cache[this.key(owner)];return key===undefined?cache:cache[key];},access:function(owner,key,value){var stored;if(key===undefined||((key&&typeof key==="string")&&value===undefined)){stored=this.get(owner,key);return stored!==undefined?stored:this.get(owner,jQuery.camelCase(key));}
this.set(owner,key,value);return value!==undefined?value:key;},remove:function(owner,key){var i,name,camel,unlock=this.key(owner),cache=this.cache[unlock];if(key===undefined){this.cache[unlock]={};}else{if(jQuery.isArray(key)){name=key.concat(key.map(jQuery.camelCase));}else{camel=jQuery.camelCase(key);if(key in cache){name=[key,camel];}else{name=camel;name=name in cache?[name]:(name.match(rnotwhite)||[]);}}
i=name.length;while(i--){delete cache[name[i]];}}},hasData:function(owner){return!jQuery.isEmptyObject(this.cache[owner[this.expando]]||{});},discard:function(owner){if(owner[this.expando]){delete this.cache[owner[this.expando]];}}};var data_priv=new Data();var data_user=new Data();var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/([A-Z])/g;function dataAttr(elem,key,data){var name;if(data===undefined&&elem.nodeType===1){name="data-"+key.replace(rmultiDash,"-$1").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data;}catch(e){}
data_user.set(elem,key,data);}else{data=undefined;}}
return data;}
jQuery.extend({hasData:function(elem){return data_user.hasData(elem)||data_priv.hasData(elem);},data:function(elem,name,data){return data_user.access(elem,name,data);},removeData:function(elem,name){data_user.remove(elem,name);},_data:function(elem,name,data){return data_priv.access(elem,name,data);},_removeData:function(elem,name){data_priv.remove(elem,name);}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=data_user.get(elem);if(elem.nodeType===1&&!data_priv.get(elem,"hasDataAttrs")){i=attrs.length;while(i--){if(attrs[i]){name=attrs[i].name;if(name.indexOf("data-")===0){name=jQuery.camelCase(name.slice(5));dataAttr(elem,name,data[name]);}}}
data_priv.set(elem,"hasDataAttrs",true);}}
return data;}
if(typeof key==="object"){return this.each(function(){data_user.set(this,key);});}
return access(this,function(value){var data,camelKey=jQuery.camelCase(key);if(elem&&value===undefined){data=data_user.get(elem,key);if(data!==undefined){return data;}
data=data_user.get(elem,camelKey);if(data!==undefined){return data;}
data=dataAttr(elem,camelKey,undefined);if(data!==undefined){return data;}
return;}
this.each(function(){var data=data_user.get(this,camelKey);data_user.set(this,camelKey,value);if(key.indexOf("-")!==-1&&data!==undefined){data_user.set(this,key,value);}});},null,value,arguments.length>1,null,true);},removeData:function(key){return this.each(function(){data_user.remove(this,key);});}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||"fx")+"queue";queue=data_priv.get(elem,type);if(data){if(!queue||jQuery.isArray(data)){queue=data_priv.access(elem,type,jQuery.makeArray(data));}else{queue.push(data);}}
return queue||[];}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type);};if(fn==="inprogress"){fn=queue.shift();startLength--;}
if(fn){if(type==="fx"){queue.unshift("inprogress");}
delete hooks.stop;fn.call(elem,next,hooks);}
if(!startLength&&hooks){hooks.empty.fire();}},_queueHooks:function(elem,type){var key=type+"queueHooks";return data_priv.get(elem,key)||data_priv.access(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){data_priv.remove(elem,[type+"queue",key]);})});}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!=="string"){data=type;type="fx";setter--;}
if(arguments.length<setter){return jQuery.queue(this[0],type);}
return data===undefined?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type);}});},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type);});},clearQueue:function(type){return this.queue(type||"fx",[]);},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!(--count)){defer.resolveWith(elements,[elements]);}};if(typeof type!=="string"){obj=type;type=undefined;}
type=type||"fx";while(i--){tmp=data_priv.get(elements[i],type+"queueHooks");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve);}}
resolve();return defer.promise(obj);}});var pnum=(/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/).source;var cssExpand=["Top","Right","Bottom","Left"];var isHidden=function(elem,el){elem=el||elem;return jQuery.css(elem,"display")==="none"||!jQuery.contains(elem.ownerDocument,elem);};var rcheckableType=(/^(?:checkbox|radio)$/i);(function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement("div")),input=document.createElement("input");input.setAttribute("type","radio");input.setAttribute("checked","checked");input.setAttribute("name","t");div.appendChild(input);support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue;})();var strundefined=typeof undefined;support.focusinBubbles="onfocusin"in window;var
rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu)|click/,rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,rtypenamespace=/^([^.]*)(?:\.(.+)|)$/;function returnTrue(){return true;}
function returnFalse(){return false;}
function safeActiveElement(){try{return document.activeElement;}catch(err){}}
jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=data_priv.get(elem);if(!elemData){return;}
if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector;}
if(!handler.guid){handler.guid=jQuery.guid++;}
if(!(events=elemData.events)){events=elemData.events={};}
if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!==strundefined&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):undefined;};}
types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){continue;}
special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle,false);}}}
if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid;}}
if(selector){handlers.splice(handlers.delegateCount++,0,handleObj);}else{handlers.push(handleObj);}
jQuery.event.global[type]=true;}},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=data_priv.hasData(elem)&&data_priv.get(elem);if(!elemData||!(events=elemData.events)){return;}
types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){for(type in events){jQuery.event.remove(elem,type+types[t],handler,selector,true);}
continue;}
special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector){handlers.delegateCount--;}
if(special.remove){special.remove.call(elem,handleObj);}}}
if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){jQuery.removeEvent(elem,type,elemData.handle);}
delete events[type];}}
if(jQuery.isEmptyObject(events)){delete elemData.handle;data_priv.remove(elem,"events");}},trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];cur=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8){return;}
if(rfocusMorph.test(type+jQuery.event.triggered)){return;}
if(type.indexOf(".")>=0){namespaces=type.split(".");type=namespaces.shift();namespaces.sort();}
ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.namespace_re=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target){event.target=elem;}
data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return;}
if(!onlyHandlers&&!special.noBubble&&!jQuery.isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type)){cur=cur.parentNode;}
for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur;}
if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window);}}
i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){event.type=i>1?bubbleType:special.bindType||type;handle=(data_priv.get(cur,"events")||{})[event.type]&&data_priv.get(cur,"handle");if(handle){handle.apply(cur,data);}
handle=ontype&&cur[ontype];if(handle&&handle.apply&&jQuery.acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false){event.preventDefault();}}}
event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&jQuery.acceptData(elem)){if(ontype&&jQuery.isFunction(elem[type])&&!jQuery.isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null;}
jQuery.event.triggered=type;elem[type]();jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp;}}}}
return event.result;},dispatch:function(event){event=jQuery.event.fix(event);var i,j,ret,matched,handleObj,handlerQueue=[],args=slice.call(arguments),handlers=(data_priv.get(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return;}
handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){if(!event.namespace_re||event.namespace_re.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined){if((event.result=ret)===false){event.preventDefault();event.stopPropagation();}}}}}
if(special.postDispatch){special.postDispatch.call(this,event);}
return event.result;},handlers:function(event,handlers){var i,matches,sel,handleObj,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&(!event.button||event.type!=="click")){for(;cur!==this;cur=cur.parentNode||this){if(cur.disabled!==true||event.type!=="click"){matches=[];for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matches[sel]===undefined){matches[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>=0:jQuery.find(sel,this,null,[cur]).length;}
if(matches[sel]){matches.push(handleObj);}}
if(matches.length){handlerQueue.push({elem:cur,handlers:matches});}}}}
if(delegateCount<handlers.length){handlerQueue.push({elem:this,handlers:handlers.slice(delegateCount)});}
return handlerQueue;},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(event,original){if(event.which==null){event.which=original.charCode!=null?original.charCode:original.keyCode;}
return event;}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(event,original){var eventDoc,doc,body,button=original.button;if(event.pageX==null&&original.clientX!=null){eventDoc=event.target.ownerDocument||document;doc=eventDoc.documentElement;body=eventDoc.body;event.pageX=original.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=original.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0);}
if(!event.which&&button!==undefined){event.which=(button&1?1:(button&2?3:(button&4?2:0)));}
return event;}},fix:function(event){if(event[jQuery.expando]){return event;}
var i,prop,copy,type=event.type,originalEvent=event,fixHook=this.fixHooks[type];if(!fixHook){this.fixHooks[type]=fixHook=rmouseEvent.test(type)?this.mouseHooks:rkeyEvent.test(type)?this.keyHooks:{};}
copy=fixHook.props?this.props.concat(fixHook.props):this.props;event=new jQuery.Event(originalEvent);i=copy.length;while(i--){prop=copy[i];event[prop]=originalEvent[prop];}
if(!event.target){event.target=document;}
if(event.target.nodeType===3){event.target=event.target.parentNode;}
return fixHook.filter?fixHook.filter(event,originalEvent):event;},special:{load:{noBubble:true},focus:{trigger:function(){if(this!==safeActiveElement()&&this.focus){this.focus();return false;}},delegateType:"focusin"},blur:{trigger:function(){if(this===safeActiveElement()&&this.blur){this.blur();return false;}},delegateType:"focusout"},click:{trigger:function(){if(this.type==="checkbox"&&this.click&&jQuery.nodeName(this,"input")){this.click();return false;}},_default:function(event){return jQuery.nodeName(event.target,"a");}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result;}}}},simulate:function(type,elem,event,bubble){var e=jQuery.extend(new jQuery.Event(),event,{type:type,isSimulated:true,originalEvent:{}});if(bubble){jQuery.event.trigger(e,null,elem);}else{jQuery.event.dispatch.call(elem,e);}
if(e.isDefaultPrevented()){event.preventDefault();}}};jQuery.removeEvent=function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle,false);}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props);}
if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse;}else{this.type=src;}
if(props){jQuery.extend(this,props);}
this.timeStamp=src&&src.timeStamp||jQuery.now();this[jQuery.expando]=true;};jQuery.Event.prototype={isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(e&&e.preventDefault){e.preventDefault();}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(e&&e.stopPropagation){e.stopPropagation();}},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&e.stopImmediatePropagation){e.stopImmediatePropagation();}
this.stopPropagation();}};jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||(related!==target&&!jQuery.contains(target,related))){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix;}
return ret;}};});if(!support.focusinBubbles){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event),true);};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=data_priv.access(doc,fix);if(!attaches){doc.addEventListener(orig,handler,true);}
data_priv.access(doc,fix,(attaches||0)+1);},teardown:function(){var doc=this.ownerDocument||this,attaches=data_priv.access(doc,fix)-1;if(!attaches){doc.removeEventListener(orig,handler,true);data_priv.remove(doc,fix);}else{data_priv.access(doc,fix,attaches);}}};});}
jQuery.fn.extend({on:function(types,selector,data,fn,one){var origFn,type;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined;}
for(type in types){this.on(type,selector,data,types[type],one);}
return this;}
if(data==null&&fn==null){fn=selector;data=selector=undefined;}else if(fn==null){if(typeof selector==="string"){fn=data;data=undefined;}else{fn=data;data=selector;selector=undefined;}}
if(fn===false){fn=returnFalse;}else if(!fn){return this;}
if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments);};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++);}
return this.each(function(){jQuery.event.add(this,types,fn,data,selector);});},one:function(types,selector,data,fn){return this.on(types,selector,data,fn,1);},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this;}
if(typeof types==="object"){for(type in types){this.off(type,selector,types[type]);}
return this;}
if(selector===false||typeof selector==="function"){fn=selector;selector=undefined;}
if(fn===false){fn=returnFalse;}
return this.each(function(){jQuery.event.remove(this,types,fn,selector);});},trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this);});},triggerHandler:function(type,data){var elem=this[0];if(elem){return jQuery.event.trigger(type,data,elem,true);}}});var
rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,rtagName=/<([\w:]+)/,rhtml=/<|&#?\w+;/,rnoInnerhtml=/<(?:script|style|link)/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptType=/^$|\/(?:java|ecma)script/i,rscriptTypeMasked=/^true\/(.*)/,rcleanScript=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(content.nodeType!==11?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem;}
function disableScript(elem){elem.type=(elem.getAttribute("type")!==null)+"/"+elem.type;return elem;}
function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);if(match){elem.type=match[1];}else{elem.removeAttribute("type");}
return elem;}
function setGlobalEval(elems,refElements){var i=0,l=elems.length;for(;i<l;i++){data_priv.set(elems[i],"globalEval",!refElements||data_priv.get(refElements[i],"globalEval"));}}
function cloneCopyEvent(src,dest){var i,l,type,pdataOld,pdataCur,udataOld,udataCur,events;if(dest.nodeType!==1){return;}
if(data_priv.hasData(src)){pdataOld=data_priv.access(src);pdataCur=data_priv.set(dest,pdataOld);events=pdataOld.events;if(events){delete pdataCur.handle;pdataCur.events={};for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type,events[type][i]);}}}}
if(data_user.hasData(src)){udataOld=data_user.access(src);udataCur=jQuery.extend({},udataOld);data_user.set(dest,udataCur);}}
function getAll(context,tag){var ret=context.getElementsByTagName?context.getElementsByTagName(tag||"*"):context.querySelectorAll?context.querySelectorAll(tag||"*"):[];return tag===undefined||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],ret):ret;}
function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();if(nodeName==="input"&&rcheckableType.test(src.type)){dest.checked=src.checked;}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue;}}
jQuery.extend({clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(true),inPage=jQuery.contains(elem.ownerDocument,elem);if(!support.noCloneChecked&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0,l=srcElements.length;i<l;i++){fixInput(srcElements[i],destElements[i]);}}
if(dataAndEvents){if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0,l=srcElements.length;i<l;i++){cloneCopyEvent(srcElements[i],destElements[i]);}}else{cloneCopyEvent(elem,clone);}}
destElements=getAll(clone,"script");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,"script"));}
return clone;},buildFragment:function(elems,context,scripts,selection){var elem,tmp,tag,wrap,contains,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;for(;i<l;i++){elem=elems[i];if(elem||elem===0){if(jQuery.type(elem)==="object"){jQuery.merge(nodes,elem.nodeType?[elem]:elem);}else if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem));}else{tmp=tmp||fragment.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+elem.replace(rxhtmlTag,"<$1></$2>")+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild;}
jQuery.merge(nodes,tmp.childNodes);tmp=fragment.firstChild;tmp.textContent="";}}}
fragment.textContent="";i=0;while((elem=nodes[i++])){if(selection&&jQuery.inArray(elem,selection)!==-1){continue;}
contains=jQuery.contains(elem.ownerDocument,elem);tmp=getAll(fragment.appendChild(elem),"script");if(contains){setGlobalEval(tmp);}
if(scripts){j=0;while((elem=tmp[j++])){if(rscriptType.test(elem.type||"")){scripts.push(elem);}}}}
return fragment;},cleanData:function(elems){var data,elem,type,key,special=jQuery.event.special,i=0;for(;(elem=elems[i])!==undefined;i++){if(jQuery.acceptData(elem)){key=elem[data_priv.expando];if(key&&(data=data_priv.cache[key])){if(data.events){for(type in data.events){if(special[type]){jQuery.event.remove(elem,type);}else{jQuery.removeEvent(elem,type,data.handle);}}}
if(data_priv.cache[key]){delete data_priv.cache[key];}}}
delete data_user.cache[elem[data_user.expando]];}}});jQuery.fn.extend({text:function(value){return access(this,function(value){return value===undefined?jQuery.text(this):this.empty().each(function(){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.textContent=value;}});},null,value,arguments.length);},append:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem);}});},prepend:function(){return this.domManip(arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild);}});},before:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this);}});},after:function(){return this.domManip(arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this.nextSibling);}});},remove:function(selector,keepData){var elem,elems=selector?jQuery.filter(selector,this):this,i=0;for(;(elem=elems[i])!=null;i++){if(!keepData&&elem.nodeType===1){jQuery.cleanData(getAll(elem));}
if(elem.parentNode){if(keepData&&jQuery.contains(elem.ownerDocument,elem)){setGlobalEval(getAll(elem,"script"));}
elem.parentNode.removeChild(elem);}}
return this;},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.textContent="";}}
return this;},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents);});},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined&&elem.nodeType===1){return elem.innerHTML;}
if(typeof value==="string"&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=value.replace(rxhtmlTag,"<$1></$2>");try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value;}}
elem=0;}catch(e){}}
if(elem){this.empty().append(value);}},null,value,arguments.length);},replaceWith:function(){var arg=arguments[0];this.domManip(arguments,function(elem){arg=this.parentNode;jQuery.cleanData(getAll(this));if(arg){arg.replaceChild(elem,this);}});return arg&&(arg.length||arg.nodeType)?this:this.remove();},detach:function(selector){return this.remove(selector,true);},domManip:function(args,callback){args=concat.apply([],args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=this.length,set=this,iNoClone=l-1,value=args[0],isFunction=jQuery.isFunction(value);if(isFunction||(l>1&&typeof value==="string"&&!support.checkClone&&rchecked.test(value))){return this.each(function(index){var self=set.eq(index);if(isFunction){args[0]=value.call(this,index,self.html());}
self.domManip(args,callback);});}
if(l){fragment=jQuery.buildFragment(args,this[0].ownerDocument,false,this);first=fragment.firstChild;if(fragment.childNodes.length===1){fragment=first;}
if(first){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,"script"));}}
callback.call(this[i],node,i);}
if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||"")&&!data_priv.access(node,"globalEval")&&jQuery.contains(doc,node)){if(node.src){if(jQuery._evalUrl){jQuery._evalUrl(node.src);}}else{jQuery.globalEval(node.textContent.replace(rcleanScript,""));}}}}}}
return this;}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);push.apply(ret,elems.get());}
return this.pushStack(ret);};});var iframe,elemdisplay={};function actualDisplay(name,doc){var style,elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=window.getDefaultComputedStyle&&(style=window.getDefaultComputedStyle(elem[0]))?style.display:jQuery.css(elem[0],"display");elem.detach();return display;}
function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];if(!display){display=actualDisplay(nodeName,doc);if(display==="none"||!display){iframe=(iframe||jQuery("<iframe frameborder='0' width='0' height='0'/>")).appendTo(doc.documentElement);doc=iframe[0].contentDocument;doc.write();doc.close();display=actualDisplay(nodeName,doc);iframe.detach();}
elemdisplay[nodeName]=display;}
return display;}
var rmargin=(/^margin/);var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");var getStyles=function(elem){if(elem.ownerDocument.defaultView.opener){return elem.ownerDocument.defaultView.getComputedStyle(elem,null);}
return window.getComputedStyle(elem,null);};function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;computed=computed||getStyles(elem);if(computed){ret=computed.getPropertyValue(name)||computed[name];}
if(computed){if(ret===""&&!jQuery.contains(elem.ownerDocument,elem)){ret=jQuery.style(elem,name);}
if(rnumnonpx.test(ret)&&rmargin.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth;}}
return ret!==undefined?ret+"":ret;}
function addGetHookIf(conditionFn,hookFn){return{get:function(){if(conditionFn()){delete this.get;return;}
return(this.get=hookFn).apply(this,arguments);}};}
(function(){var pixelPositionVal,boxSizingReliableVal,docElem=document.documentElement,container=document.createElement("div"),div=document.createElement("div");if(!div.style){return;}
div.style.backgroundClip="content-box";div.cloneNode(true).style.backgroundClip="";support.clearCloneStyle=div.style.backgroundClip==="content-box";container.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;"+"position:absolute";container.appendChild(div);function computePixelPositionAndBoxSizingReliable(){div.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;"+"box-sizing:border-box;display:block;margin-top:1%;top:1%;"+"border:1px;padding:1px;width:4px;position:absolute";div.innerHTML="";docElem.appendChild(container);var divStyle=window.getComputedStyle(div,null);pixelPositionVal=divStyle.top!=="1%";boxSizingReliableVal=divStyle.width==="4px";docElem.removeChild(container);}
if(window.getComputedStyle){jQuery.extend(support,{pixelPosition:function(){computePixelPositionAndBoxSizingReliable();return pixelPositionVal;},boxSizingReliable:function(){if(boxSizingReliableVal==null){computePixelPositionAndBoxSizingReliable();}
return boxSizingReliableVal;},reliableMarginRight:function(){var ret,marginDiv=div.appendChild(document.createElement("div"));marginDiv.style.cssText=div.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;"+"box-sizing:content-box;display:block;margin:0;border:0;padding:0";marginDiv.style.marginRight=marginDiv.style.width="0";div.style.width="1px";docElem.appendChild(container);ret=!parseFloat(window.getComputedStyle(marginDiv,null).marginRight);docElem.removeChild(container);div.removeChild(marginDiv);return ret;}});}})();jQuery.swap=function(elem,options,callback,args){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name];}
ret=callback.apply(elem,args||[]);for(name in options){elem.style[name]=old[name];}
return ret;};var
rdisplayswap=/^(none|table(?!-c[ea]).+)/,rnumsplit=new RegExp("^("+pnum+")(.*)$","i"),rrelNum=new RegExp("^([+-])=("+pnum+")","i"),cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"},cssPrefixes=["Webkit","O","Moz","ms"];function vendorPropName(style,name){if(name in style){return name;}
var capName=name[0].toUpperCase()+name.slice(1),origName=name,i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in style){return name;}}
return origName;}
function setPositiveNumber(elem,value,subtract){var matches=rnumsplit.exec(value);return matches?Math.max(0,matches[1]-(subtract||0))+(matches[2]||"px"):value;}
function augmentWidthOrHeight(elem,name,extra,isBorderBox,styles){var i=extra===(isBorderBox?"border":"content")?4:name==="width"?1:0,val=0;for(;i<4;i+=2){if(extra==="margin"){val+=jQuery.css(elem,extra+cssExpand[i],true,styles);}
if(isBorderBox){if(extra==="content"){val-=jQuery.css(elem,"padding"+cssExpand[i],true,styles);}
if(extra!=="margin"){val-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}else{val+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(extra!=="padding"){val+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles);}}}
return val;}
function getWidthOrHeight(elem,name,extra){var valueIsBorderBox=true,val=name==="width"?elem.offsetWidth:elem.offsetHeight,styles=getStyles(elem),isBorderBox=jQuery.css(elem,"boxSizing",false,styles)==="border-box";if(val<=0||val==null){val=curCSS(elem,name,styles);if(val<0||val==null){val=elem.style[name];}
if(rnumnonpx.test(val)){return val;}
valueIsBorderBox=isBorderBox&&(support.boxSizingReliable()||val===elem.style[name]);val=parseFloat(val)||0;}
return(val+
augmentWidthOrHeight(elem,name,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles))+"px";}
function showHide(elements,show){var display,elem,hidden,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style){continue;}
values[index]=data_priv.get(elem,"olddisplay");display=elem.style.display;if(show){if(!values[index]&&display==="none"){elem.style.display="";}
if(elem.style.display===""&&isHidden(elem)){values[index]=data_priv.access(elem,"olddisplay",defaultDisplay(elem.nodeName));}}else{hidden=isHidden(elem);if(display!=="none"||!hidden){data_priv.set(elem,"olddisplay",hidden?display:jQuery.css(elem,"display"));}}}
for(index=0;index<length;index++){elem=elements[index];if(!elem.style){continue;}
if(!show||elem.style.display==="none"||elem.style.display===""){elem.style.display=show?values[index]||"":"none";}}
return elements;}
jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret;}}}},cssNumber:{"columnCount":true,"fillOpacity":true,"flexGrow":true,"flexShrink":true,"fontWeight":true,"lineHeight":true,"opacity":true,"order":true,"orphans":true,"widows":true,"zIndex":true,"zoom":true},cssProps:{"float":"cssFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return;}
var ret,type,hooks,origName=jQuery.camelCase(name),style=elem.style;name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rrelNum.exec(value))){value=(ret[1]+1)*ret[2]+parseFloat(jQuery.css(elem,name));type="number";}
if(value==null||value!==value){return;}
if(type==="number"&&!jQuery.cssNumber[origName]){value+="px";}
if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){style[name]="inherit";}
if(!hooks||!("set"in hooks)||(value=hooks.set(elem,value,extra))!==undefined){style[name]=value;}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret;}
return style[name];}},css:function(elem,name,extra,styles){var val,num,hooks,origName=jQuery.camelCase(name);name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(elem.style,origName));hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get"in hooks){val=hooks.get(elem,true,extra);}
if(val===undefined){val=curCSS(elem,name,styles);}
if(val==="normal"&&name in cssNormalTransform){val=cssNormalTransform[name];}
if(extra===""||extra){num=parseFloat(val);return extra===true||jQuery.isNumeric(num)?num||0:val;}
return val;}});jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){if(computed){return rdisplayswap.test(jQuery.css(elem,"display"))&&elem.offsetWidth===0?jQuery.swap(elem,cssShow,function(){return getWidthOrHeight(elem,name,extra);}):getWidthOrHeight(elem,name,extra);}},set:function(elem,value,extra){var styles=extra&&getStyles(elem);return setPositiveNumber(elem,value,extra?augmentWidthOrHeight(elem,name,extra,jQuery.css(elem,"boxSizing",false,styles)==="border-box",styles):0);}};});jQuery.cssHooks.marginRight=addGetHookIf(support.reliableMarginRight,function(elem,computed){if(computed){return jQuery.swap(elem,{"display":"inline-block"},curCSS,[elem,"marginRight"]);}});jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value==="string"?value.split(" "):[value];for(;i<4;i++){expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0];}
return expanded;}};if(!rmargin.test(prefix)){jQuery.cssHooks[prefix+suffix].set=setPositiveNumber;}});jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(jQuery.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++){map[name[i]]=jQuery.css(elem,name[i],false,styles);}
return map;}
return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name);},name,value,arguments.length>1);},show:function(){return showHide(this,true);},hide:function(){return showHide(this);},toggle:function(state){if(typeof state==="boolean"){return state?this.show():this.hide();}
return this.each(function(){if(isHidden(this)){jQuery(this).show();}else{jQuery(this).hide();}});}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing);}
jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||"swing";this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?"":"px");},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this);},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration){this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration);}else{this.pos=eased=percent;}
this.now=(this.end-this.start)*eased+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this);}
if(hooks&&hooks.set){hooks.set(this);}else{Tween.propHooks._default.set(this);}
return this;}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem[tween.prop]!=null&&(!tween.elem.style||tween.elem.style[tween.prop]==null)){return tween.elem[tween.prop];}
result=jQuery.css(tween.elem,tween.prop,"");return!result||result==="auto"?0:result;},set:function(tween){if(jQuery.fx.step[tween.prop]){jQuery.fx.step[tween.prop](tween);}else if(tween.elem.style&&(tween.elem.style[jQuery.cssProps[tween.prop]]!=null||jQuery.cssHooks[tween.prop])){jQuery.style(tween.elem,tween.prop,tween.now+tween.unit);}else{tween.elem[tween.prop]=tween.now;}}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now;}}};jQuery.easing={linear:function(p){return p;},swing:function(p){return 0.5-Math.cos(p*Math.PI)/2;}};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var
fxNow,timerId,rfxtypes=/^(?:toggle|show|hide)$/,rfxnum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i"),rrun=/queueHooks$/,animationPrefilters=[defaultPrefilter],tweeners={"*":[function(prop,value){var tween=this.createTween(prop,value),target=tween.cur(),parts=rfxnum.exec(value),unit=parts&&parts[3]||(jQuery.cssNumber[prop]?"":"px"),start=(jQuery.cssNumber[prop]||unit!=="px"&&+target)&&rfxnum.exec(jQuery.css(tween.elem,prop)),scale=1,maxIterations=20;if(start&&start[3]!==unit){unit=unit||start[3];parts=parts||[];start=+target||1;do{scale=scale||".5";start=start/scale;jQuery.style(tween.elem,prop,start+unit);}while(scale!==(scale=tween.cur()/target)&&scale!==1&&--maxIterations);}
if(parts){start=tween.start=+start||+target||0;tween.unit=unit;tween.end=parts[1]?start+(parts[1]+1)*parts[2]:+parts[2];}
return tween;}]};function createFxNow(){setTimeout(function(){fxNow=undefined;});return(fxNow=jQuery.now());}
function genFx(type,includeWidth){var which,i=0,attrs={height:type};includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs["margin"+which]=attrs["padding"+which]=type;}
if(includeWidth){attrs.opacity=attrs.width=type;}
return attrs;}
function createTween(value,prop,animation){var tween,collection=(tweeners[prop]||[]).concat(tweeners["*"]),index=0,length=collection.length;for(;index<length;index++){if((tween=collection[index].call(animation,prop,value))){return tween;}}}
function defaultPrefilter(elem,props,opts){var prop,value,toggle,tween,hooks,oldfire,display,checkDisplay,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHidden(elem),dataShow=data_priv.get(elem,"fxshow");if(!opts.queue){hooks=jQuery._queueHooks(elem,"fx");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued){oldfire();}};}
hooks.unqueued++;anim.always(function(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length){hooks.empty.fire();}});});}
if(elem.nodeType===1&&("height"in props||"width"in props)){opts.overflow=[style.overflow,style.overflowX,style.overflowY];display=jQuery.css(elem,"display");checkDisplay=display==="none"?data_priv.get(elem,"olddisplay")||defaultDisplay(elem.nodeName):display;if(checkDisplay==="inline"&&jQuery.css(elem,"float")==="none"){style.display="inline-block";}}
if(opts.overflow){style.overflow="hidden";anim.always(function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2];});}
for(prop in props){value=props[prop];if(rfxtypes.exec(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show")){if(value==="show"&&dataShow&&dataShow[prop]!==undefined){hidden=true;}else{continue;}}
orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop);}else{display=undefined;}}
if(!jQuery.isEmptyObject(orig)){if(dataShow){if("hidden"in dataShow){hidden=dataShow.hidden;}}else{dataShow=data_priv.access(elem,"fxshow",{});}
if(toggle){dataShow.hidden=!hidden;}
if(hidden){jQuery(elem).show();}else{anim.done(function(){jQuery(elem).hide();});}
anim.done(function(){var prop;data_priv.remove(elem,"fxshow");for(prop in orig){jQuery.style(elem,prop,orig[prop]);}});for(prop in orig){tween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=tween.start;if(hidden){tween.end=tween.start;tween.start=prop==="width"||prop==="height"?1:0;}}}}else if((display==="none"?defaultDisplay(elem.nodeName):display)==="inline"){style.display=display;}}
function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=jQuery.camelCase(index);easing=specialEasing[name];value=props[index];if(jQuery.isArray(value)){easing=value[1];value=props[index]=value[0];}
if(index!==name){props[name]=value;delete props[index];}
hooks=jQuery.cssHooks[name];if(hooks&&"expand"in hooks){value=hooks.expand(value);delete props[name];for(index in value){if(!(index in props)){props[index]=value[index];specialEasing[index]=easing;}}}else{specialEasing[name]=easing;}}}
function Animation(elem,properties,options){var result,stopped,index=0,length=animationPrefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem;}),tick=function(){if(stopped){return false;}
var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++){animation.tweens[index].run(percent);}
deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length){return remaining;}else{deferred.resolveWith(elem,[animation]);return false;}},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{}},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween;},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped){return this;}
stopped=true;for(;index<length;index++){animation.tweens[index].run(1);}
if(gotoEnd){deferred.resolveWith(elem,[animation,gotoEnd]);}else{deferred.rejectWith(elem,[animation,gotoEnd]);}
return this;}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=animationPrefilters[index].call(animation,elem,props,animation.opts);if(result){return result;}}
jQuery.map(props,createTween,animation);if(jQuery.isFunction(animation.opts.start)){animation.opts.start.call(elem,animation);}
jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));return animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always);}
jQuery.Animation=jQuery.extend(Animation,{tweener:function(props,callback){if(jQuery.isFunction(props)){callback=props;props=["*"];}else{props=props.split(" ");}
var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];tweeners[prop]=tweeners[prop]||[];tweeners[prop].unshift(callback);}},prefilter:function(callback,prepend){if(prepend){animationPrefilters.unshift(callback);}else{animationPrefilters.push(callback);}}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;if(opt.queue==null||opt.queue===true){opt.queue="fx";}
opt.old=opt.complete;opt.complete=function(){if(jQuery.isFunction(opt.old)){opt.old.call(this);}
if(opt.queue){jQuery.dequeue(this,opt.queue);}};return opt;};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHidden).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback);},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||data_priv.get(this,"finish")){anim.stop(true);}};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation);},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd);};if(typeof type!=="string"){gotoEnd=clearQueue;clearQueue=type;type=undefined;}
if(clearQueue&&type!==false){this.queue(type||"fx",[]);}
return this.each(function(){var dequeue=true,index=type!=null&&type+"queueHooks",timers=jQuery.timers,data=data_priv.get(this);if(index){if(data[index]&&data[index].stop){stopQueue(data[index]);}}else{for(index in data){if(data[index]&&data[index].stop&&rrun.test(index)){stopQueue(data[index]);}}}
for(index=timers.length;index--;){if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1);}}
if(dequeue||!gotoEnd){jQuery.dequeue(this,type);}});},finish:function(type){if(type!==false){type=type||"fx";}
return this.each(function(){var index,data=data_priv.get(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true);}
for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1);}}
for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this);}}
delete data.finish;});}});jQuery.each(["toggle","show","hide"],function(i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed==="boolean"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback);};});jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback);};});jQuery.timers=[];jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;fxNow=jQuery.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1);}}
if(!timers.length){jQuery.fx.stop();}
fxNow=undefined;};jQuery.fx.timer=function(timer){jQuery.timers.push(timer);if(timer()){jQuery.fx.start();}else{jQuery.timers.pop();}};jQuery.fx.interval=13;jQuery.fx.start=function(){if(!timerId){timerId=setInterval(jQuery.fx.tick,jQuery.fx.interval);}};jQuery.fx.stop=function(){clearInterval(timerId);timerId=null;};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(next,hooks){var timeout=setTimeout(next,time);hooks.stop=function(){clearTimeout(timeout);};});};(function(){var input=document.createElement("input"),select=document.createElement("select"),opt=select.appendChild(document.createElement("option"));input.type="checkbox";support.checkOn=input.value!=="";support.optSelected=opt.selected;select.disabled=true;support.optDisabled=!opt.disabled;input=document.createElement("input");input.value="t";input.type="radio";support.radioValue=input.value==="t";})();var nodeHook,boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1);},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name);});}});jQuery.extend({attr:function(elem,name,value){var hooks,ret,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return;}
if(typeof elem.getAttribute===strundefined){return jQuery.prop(elem,name,value);}
if(nType!==1||!jQuery.isXMLDoc(elem)){name=name.toLowerCase();hooks=jQuery.attrHooks[name]||(jQuery.expr.match.bool.test(name)?boolHook:nodeHook);}
if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);}else if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret;}else{elem.setAttribute(name,value+"");return value;}}else if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret;}else{ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret;}},removeAttr:function(elem,value){var name,propName,i=0,attrNames=value&&value.match(rnotwhite);if(attrNames&&elem.nodeType===1){while((name=attrNames[i++])){propName=jQuery.propFix[name]||name;if(jQuery.expr.match.bool.test(name)){elem[propName]=false;}
elem.removeAttribute(name);}}},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&jQuery.nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val;}
return value;}}}}});boolHook={set:function(elem,value,name){if(value===false){jQuery.removeAttr(elem,name);}else{elem.setAttribute(name,name);}
return name;}};jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle;if(!isXML){handle=attrHandle[name];attrHandle[name]=ret;ret=getter(elem,name,isXML)!=null?name.toLowerCase():null;attrHandle[name]=handle;}
return ret;};});var rfocusable=/^(?:input|select|textarea|button)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1);},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name];});}});jQuery.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(elem,name,value){var ret,hooks,notxml,nType=elem.nodeType;if(!elem||nType===3||nType===8||nType===2){return;}
notxml=nType!==1||!jQuery.isXMLDoc(elem);if(notxml){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name];}
if(value!==undefined){return hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined?ret:(elem[name]=value);}else{return hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null?ret:elem[name];}},propHooks:{tabIndex:{get:function(elem){return elem.hasAttribute("tabindex")||rfocusable.test(elem.nodeName)||elem.href?elem.tabIndex:-1;}}}});if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent&&parent.parentNode){parent.parentNode.selectedIndex;}
return null;}};}
jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this;});var rclass=/[\t\r\n\f]/g;jQuery.fn.extend({addClass:function(value){var classes,elem,cur,clazz,j,finalValue,proceed=typeof value==="string"&&value,i=0,len=this.length;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,this.className));});}
if(proceed){classes=(value||"").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(" "+elem.className+" ").replace(rclass," "):" ");if(cur){j=0;while((clazz=classes[j++])){if(cur.indexOf(" "+clazz+" ")<0){cur+=clazz+" ";}}
finalValue=jQuery.trim(cur);if(elem.className!==finalValue){elem.className=finalValue;}}}}
return this;},removeClass:function(value){var classes,elem,cur,clazz,j,finalValue,proceed=arguments.length===0||typeof value==="string"&&value,i=0,len=this.length;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,this.className));});}
if(proceed){classes=(value||"").match(rnotwhite)||[];for(;i<len;i++){elem=this[i];cur=elem.nodeType===1&&(elem.className?(" "+elem.className+" ").replace(rclass," "):"");if(cur){j=0;while((clazz=classes[j++])){while(cur.indexOf(" "+clazz+" ")>=0){cur=cur.replace(" "+clazz+" "," ");}}
finalValue=value?jQuery.trim(cur):"";if(elem.className!==finalValue){elem.className=finalValue;}}}}
return this;},toggleClass:function(value,stateVal){var type=typeof value;if(typeof stateVal==="boolean"&&type==="string"){return stateVal?this.addClass(value):this.removeClass(value);}
if(jQuery.isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(value.call(this,i,this.className,stateVal),stateVal);});}
return this.each(function(){if(type==="string"){var className,i=0,self=jQuery(this),classNames=value.match(rnotwhite)||[];while((className=classNames[i++])){if(self.hasClass(className)){self.removeClass(className);}else{self.addClass(className);}}}else if(type===strundefined||type==="boolean"){if(this.className){data_priv.set(this,"__className__",this.className);}
this.className=this.className||value===false?"":data_priv.get(this,"__className__")||"";}});},hasClass:function(selector){var className=" "+selector+" ",i=0,l=this.length;for(;i<l;i++){if(this[i].nodeType===1&&(" "+this[i].className+" ").replace(rclass," ").indexOf(className)>=0){return true;}}
return false;}});var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,isFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&"get"in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret;}
ret=elem.value;return typeof ret==="string"?ret.replace(rreturn,""):ret==null?"":ret;}
return;}
isFunction=jQuery.isFunction(value);return this.each(function(i){var val;if(this.nodeType!==1){return;}
if(isFunction){val=value.call(this,i,jQuery(this).val());}else{val=value;}
if(val==null){val="";}else if(typeof val==="number"){val+="";}else if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+"";});}
hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set"in hooks)||hooks.set(this,val,"value")===undefined){this.value=val;}});}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return val!=null?val:jQuery.trim(jQuery.text(elem));}},select:{get:function(elem){var value,option,options=elem.options,index=elem.selectedIndex,one=elem.type==="select-one"||index<0,values=one?null:[],max=one?index+1:options.length,i=index<0?max:one?index:0;for(;i<max;i++){option=options[i];if((option.selected||i===index)&&(support.optDisabled?!option.disabled:option.getAttribute("disabled")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value;}
values.push(value);}}
return values;},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if((option.selected=jQuery.inArray(option.value,values)>=0)){optionSet=true;}}
if(!optionSet){elem.selectedIndex=-1;}
return values;}}}});jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(jQuery.isArray(value)){return(elem.checked=jQuery.inArray(jQuery(elem).val(),value)>=0);}}};if(!support.checkOn){jQuery.valHooks[this].get=function(elem){return elem.getAttribute("value")===null?"on":elem.value;};}});jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup error contextmenu").split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name);};});jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver);},bind:function(types,data,fn){return this.on(types,null,data,fn);},unbind:function(types,fn){return this.off(types,null,fn);},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn);},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn);}});var nonce=jQuery.now();var rquery=(/\?/);jQuery.parseJSON=function(data){return JSON.parse(data+"");};jQuery.parseXML=function(data){var xml,tmp;if(!data||typeof data!=="string"){return null;}
try{tmp=new DOMParser();xml=tmp.parseFromString(data,"text/xml");}catch(e){xml=undefined;}
if(!xml||xml.getElementsByTagName("parsererror").length){jQuery.error("Invalid XML: "+data);}
return xml;};var
rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/mg,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,rurl=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,prefilters={},transports={},allTypes="*/".concat("*"),ajaxLocation=window.location.href,ajaxLocParts=rurl.exec(ajaxLocation.toLowerCase())||[];function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*";}
var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnotwhite)||[];if(jQuery.isFunction(func)){while((dataType=dataTypes[i++])){if(dataType[0]==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func);}else{(structure[dataType]=structure[dataType]||[]).push(func);}}}};}
function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=(structure===transports);function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false;}else if(seekingTransport){return!(selected=dataTypeOrTransport);}});return selected;}
return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*");}
function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:(deep||(deep={})))[key]=src[key];}}
if(deep){jQuery.extend(true,target,deep);}
return target;}
function ajaxHandleResponses(s,jqXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("Content-Type");}}
if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break;}}}
if(dataTypes[0]in responses){finalDataType=dataTypes[0];}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break;}
if(!firstDataType){firstDataType=type;}}
finalDataType=finalDataType||firstDataType;}
if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType);}
return responses[finalDataType];}}
function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv];}}
current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response;}
if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType);}
prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev;}else if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2];}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1]);}
break;}}}}
if(conv!==true){if(conv&&s["throws"]){response=conv(response);}else{try{response=conv(response);}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current};}}}}}}
return{state:"success",data:response};}
jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ajaxLocation,type:"GET",isLocal:rlocalProtocol.test(ajaxLocParts[1]),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target);},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined;}
options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,parts,fireGlobals,i,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},state=0,strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while((match=rheaders.exec(responseHeadersString))){responseHeaders[match[1].toLowerCase()]=match[2];}}
match=responseHeaders[key.toLowerCase()];}
return match==null?null:match;},getAllResponseHeaders:function(){return state===2?responseHeadersString:null;},setRequestHeader:function(name,value){var lname=name.toLowerCase();if(!state){name=requestHeadersNames[lname]=requestHeadersNames[lname]||name;requestHeaders[name]=value;}
return this;},overrideMimeType:function(type){if(!state){s.mimeType=type;}
return this;},statusCode:function(map){var code;if(map){if(state<2){for(code in map){statusCode[code]=[statusCode[code],map[code]];}}else{jqXHR.always(map[jqXHR.status]);}}
return this;},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText);}
done(0,finalText);return this;}};deferred.promise(jqXHR).complete=completeDeferred.add;jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;s.url=((url||s.url||ajaxLocation)+"").replace(rhash,"").replace(rprotocol,ajaxLocParts[1]+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().match(rnotwhite)||[""];if(s.crossDomain==null){parts=rurl.exec(s.url.toLowerCase());s.crossDomain=!!(parts&&(parts[1]!==ajaxLocParts[1]||parts[2]!==ajaxLocParts[2]||(parts[3]||(parts[1]==="http:"?"80":"443"))!==(ajaxLocParts[3]||(ajaxLocParts[1]==="http:"?"80":"443"))));}
if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional);}
inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return jqXHR;}
fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart");}
s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url;if(!s.hasContent){if(s.data){cacheURL=(s.url+=(rquery.test(cacheURL)?"&":"?")+s.data);delete s.data;}
if(s.cache===false){s.url=rts.test(cacheURL)?cacheURL.replace(rts,"$1_="+nonce++):cacheURL+(rquery.test(cacheURL)?"&":"?")+"_="+nonce++;}}
if(s.ifModified){if(jQuery.lastModified[cacheURL]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]);}
if(jQuery.etag[cacheURL]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL]);}}
if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType);}
jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i]);}
if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){return jqXHR.abort();}
strAbort="abort";for(i in{success:1,error:1,complete:1}){jqXHR[i](s[i]);}
transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport");}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s]);}
if(s.async&&s.timeout>0){timeoutTimer=setTimeout(function(){jqXHR.abort("timeout");},s.timeout);}
try{state=1;transport.send(requestHeaders,done);}catch(e){if(state<2){done(-1,e);}else{throw e;}}}
function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(state===2){return;}
state=2;if(timeoutTimer){clearTimeout(timeoutTimer);}
transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses);}
response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader("Last-Modified");if(modified){jQuery.lastModified[cacheURL]=modified;}
modified=jqXHR.getResponseHeader("etag");if(modified){jQuery.etag[cacheURL]=modified;}}
if(status===204||s.type==="HEAD"){statusText="nocontent";}else if(status===304){statusText="notmodified";}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error;}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0;}}}
jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR]);}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error]);}
jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error]);}
completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!(--jQuery.active)){jQuery.event.trigger("ajaxStop");}}}
return jqXHR;},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script");}});jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined;}
return jQuery.ajax({url:url,type:method,dataType:type,data:data,success:callback});};});jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:"GET",dataType:"script",async:false,global:false,"throws":true});};jQuery.fn.extend({wrapAll:function(html){var wrap;if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i));});}
if(this[0]){wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0]);}
wrap.map(function(){var elem=this;while(elem.firstElementChild){elem=elem.firstElementChild;}
return elem;}).append(this);}
return this;},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i));});}
return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html);}else{self.append(html);}});},wrap:function(html){var isFunction=jQuery.isFunction(html);return this.each(function(i){jQuery(this).wrapAll(isFunction?html.call(this,i):html);});},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes);}}).end();}});jQuery.expr.filters.hidden=function(elem){return elem.offsetWidth<=0&&elem.offsetHeight<=0;};jQuery.expr.filters.visible=function(elem){return!jQuery.expr.filters.hidden(elem);};var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v);}else{buildParams(prefix+"["+(typeof v==="object"?i:"")+"]",v,traditional,add);}});}else if(!traditional&&jQuery.type(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add);}}else{add(prefix,obj);}}
jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,value){value=jQuery.isFunction(value)?value():(value==null?"":value);s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value);};if(traditional===undefined){traditional=jQuery.ajaxSettings&&jQuery.ajaxSettings.traditional;}
if(jQuery.isArray(a)||(a.jquery&&!jQuery.isPlainObject(a))){jQuery.each(a,function(){add(this.name,this.value);});}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add);}}
return s.join("&").replace(r20,"+");};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this;}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")};}):{name:elem.name,value:val.replace(rCRLF,"\r\n")};}).get();}});jQuery.ajaxSettings.xhr=function(){try{return new XMLHttpRequest();}catch(e){}};var xhrId=0,xhrCallbacks={},xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();if(window.attachEvent){window.attachEvent("onunload",function(){for(var key in xhrCallbacks){xhrCallbacks[key]();}});}
support.cors=!!xhrSupported&&("withCredentials"in xhrSupported);support.ajax=xhrSupported=!!xhrSupported;jQuery.ajaxTransport(function(options){var callback;if(support.cors||xhrSupported&&!options.crossDomain){return{send:function(headers,complete){var i,xhr=options.xhr(),id=++xhrId;xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i];}}
if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType);}
if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest";}
for(i in headers){xhr.setRequestHeader(i,headers[i]);}
callback=function(type){return function(){if(callback){delete xhrCallbacks[id];callback=xhr.onload=xhr.onerror=null;if(type==="abort"){xhr.abort();}else if(type==="error"){complete(xhr.status,xhr.statusText);}else{complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,typeof xhr.responseText==="string"?{text:xhr.responseText}:undefined,xhr.getAllResponseHeaders());}}};};xhr.onload=callback();xhr.onerror=callback("error");callback=xhrCallbacks[id]=callback("abort");try{xhr.send(options.hasContent&&options.data||null);}catch(e){if(callback){throw e;}}},abort:function(){if(callback){callback();}}};}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(text){jQuery.globalEval(text);return text;}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false;}
if(s.crossDomain){s.type="GET";}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,callback;return{send:function(_,complete){script=jQuery("<script>").prop({async:true,charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove();callback=null;if(evt){complete(evt.type==="error"?404:200,evt.type);}});document.head.appendChild(script[0]);},abort:function(){if(callback){callback();}}};}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||(jQuery.expando+"_"+(nonce++));this[callback]=true;return callback;}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?"url":typeof s.data==="string"&&!(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&rjsonp.test(s.data)&&"data");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName);}else if(s.jsonp!==false){s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName;}
s.converters["script json"]=function(){if(!responseContainer){jQuery.error(callbackName+" was not called");}
return responseContainer[0];};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments;};jqXHR.always(function(){window[callbackName]=overwritten;if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName);}
if(responseContainer&&jQuery.isFunction(overwritten)){overwritten(responseContainer[0]);}
responseContainer=overwritten=undefined;});return"script";}});jQuery.parseHTML=function(data,context,keepScripts){if(!data||typeof data!=="string"){return null;}
if(typeof context==="boolean"){keepScripts=context;context=false;}
context=context||document;var parsed=rsingleTag.exec(data),scripts=!keepScripts&&[];if(parsed){return[context.createElement(parsed[1])];}
parsed=jQuery.buildFragment([data],context,scripts);if(scripts&&scripts.length){jQuery(scripts).remove();}
return jQuery.merge([],parsed.childNodes);};var _load=jQuery.fn.load;jQuery.fn.load=function(url,params,callback){if(typeof url!=="string"&&_load){return _load.apply(this,arguments);}
var selector,type,response,self=this,off=url.indexOf(" ");if(off>=0){selector=jQuery.trim(url.slice(off));url=url.slice(0,off);}
if(jQuery.isFunction(params)){callback=params;params=undefined;}else if(params&&typeof params==="object"){type="POST";}
if(self.length>0){jQuery.ajax({url:url,type:type,dataType:"html",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText);}).complete(callback&&function(jqXHR,status){self.each(callback,response||[jqXHR.responseText,status,jqXHR]);});}
return this;};jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn);};});jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem;}).length;};var docElem=window.document.documentElement;function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9&&elem.defaultView;}
jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};if(position==="static"){elem.style.position="relative";}
curOffset=curElem.offset();curCSSTop=jQuery.css(elem,"top");curCSSLeft=jQuery.css(elem,"left");calculatePosition=(position==="absolute"||position==="fixed")&&(curCSSTop+curCSSLeft).indexOf("auto")>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left;}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0;}
if(jQuery.isFunction(options)){options=options.call(elem,i,curOffset);}
if(options.top!=null){props.top=(options.top-curOffset.top)+curTop;}
if(options.left!=null){props.left=(options.left-curOffset.left)+curLeft;}
if("using"in options){options.using.call(elem,props);}else{curElem.css(props);}}};jQuery.fn.extend({offset:function(options){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i);});}
var docElem,win,elem=this[0],box={top:0,left:0},doc=elem&&elem.ownerDocument;if(!doc){return;}
docElem=doc.documentElement;if(!jQuery.contains(docElem,elem)){return box;}
if(typeof elem.getBoundingClientRect!==strundefined){box=elem.getBoundingClientRect();}
win=getWindow(doc);return{top:box.top+win.pageYOffset-docElem.clientTop,left:box.left+win.pageXOffset-docElem.clientLeft};},position:function(){if(!this[0]){return;}
var offsetParent,offset,elem=this[0],parentOffset={top:0,left:0};if(jQuery.css(elem,"position")==="fixed"){offset=elem.getBoundingClientRect();}else{offsetParent=this.offsetParent();offset=this.offset();if(!jQuery.nodeName(offsetParent[0],"html")){parentOffset=offsetParent.offset();}
parentOffset.top+=jQuery.css(offsetParent[0],"borderTopWidth",true);parentOffset.left+=jQuery.css(offsetParent[0],"borderLeftWidth",true);}
return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)};},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent||docElem;while(offsetParent&&(!jQuery.nodeName(offsetParent,"html")&&jQuery.css(offsetParent,"position")==="static")){offsetParent=offsetParent.offsetParent;}
return offsetParent||docElem;});}});jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top="pageYOffset"===prop;jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win=getWindow(elem);if(val===undefined){return win?win[prop]:elem[method];}
if(win){win.scrollTo(!top?val:window.pageXOffset,top?val:window.pageYOffset);}else{elem[method]=val;}},method,val,arguments.length,null);};});jQuery.each(["top","left"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed;}});});jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),extra=defaultExtra||(margin===true||value===true?"margin":"border");return access(this,function(elem,type,value){var doc;if(jQuery.isWindow(elem)){return elem.document.documentElement["client"+name];}
if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name]);}
return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra);},type,chainable?margin:undefined,chainable,null);};});});jQuery.fn.size=function(){return this.length;};jQuery.fn.andSelf=jQuery.fn.addBack;if(typeof define==="function"&&define.amd){define("jquery",[],function(){return jQuery;});}
var
_jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery){window.$=_$;}
if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery;}
return jQuery;};if(typeof noGlobal===strundefined){window.jQuery=window.$=jQuery;}
return jQuery;}));(function(window){'use strict';var slice=Array.prototype.slice;function noop(){}
function defineBridget($){if(!$){return;}
function addOptionMethod(PluginClass){if(PluginClass.prototype.option){return;}
PluginClass.prototype.option=function(opts){if(!$.isPlainObject(opts)){return;}
this.options=$.extend(true,this.options,opts);};}
var logError=typeof console==='undefined'?noop:function(message){console.error(message);};function bridge(namespace,PluginClass){$.fn[namespace]=function(options){if(typeof options==='string'){var args=slice.call(arguments,1);for(var i=0,len=this.length;i<len;i++){var elem=this[i];var instance=$.data(elem,namespace);if(!instance){logError("cannot call methods on "+namespace+" prior to initialization; "+"attempted to call '"+options+"'");continue;}
if(!$.isFunction(instance[options])||options.charAt(0)==='_'){logError("no such method '"+options+"' for "+namespace+" instance");continue;}
var returnValue=instance[options].apply(instance,args);if(returnValue!==undefined){return returnValue;}}
return this;}else{return this.each(function(){var instance=$.data(this,namespace);if(instance){instance.option(options);instance._init();}else{instance=new PluginClass(this,options);$.data(this,namespace,instance);}});}};}
$.bridget=function(namespace,PluginClass){addOptionMethod(PluginClass);bridge(namespace,PluginClass);};return $.bridget;}
if(typeof define==='function'&&define.amd){define(['jquery'],defineBridget);}else if(typeof exports==='object'){defineBridget(require('jquery'));}else{defineBridget(window.jQuery);}})(window);(function(window){'use strict';var prefixes='Webkit Moz ms Ms O'.split(' ');var docElemStyle=document.documentElement.style;function getStyleProperty(propName){if(!propName){return;}
if(typeof docElemStyle[propName]==='string'){return propName;}
propName=propName.charAt(0).toUpperCase()+propName.slice(1);var prefixed;for(var i=0,len=prefixes.length;i<len;i++){prefixed=prefixes[i]+propName;if(typeof docElemStyle[prefixed]==='string'){return prefixed;}}}
if(typeof define==='function'&&define.amd){define(function(){return getStyleProperty;});}else if(typeof exports==='object'){module.exports=getStyleProperty;}else{window.getStyleProperty=getStyleProperty;}})(window);(function(window,undefined){'use strict';function getStyleSize(value){var num=parseFloat(value);var isValid=value.indexOf('%')===-1&&!isNaN(num);return isValid&&num;}
function noop(){}
var logError=typeof console==='undefined'?noop:function(message){console.error(message);};var measurements=['paddingLeft','paddingRight','paddingTop','paddingBottom','marginLeft','marginRight','marginTop','marginBottom','borderLeftWidth','borderRightWidth','borderTopWidth','borderBottomWidth'];function getZeroSize(){var size={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0};for(var i=0,len=measurements.length;i<len;i++){var measurement=measurements[i];size[measurement]=0;}
return size;}
function defineGetSize(getStyleProperty){var isSetup=false;var getStyle,boxSizingProp,isBoxSizeOuter;function setup(){if(isSetup){return;}
isSetup=true;var getComputedStyle=window.getComputedStyle;getStyle=(function(){var getStyleFn=getComputedStyle?function(elem){return getComputedStyle(elem,null);}:function(elem){return elem.currentStyle;};return function getStyle(elem){var style=getStyleFn(elem);if(!style){logError('Style returned '+style+'. Are you running this code in a hidden iframe on Firefox? '+'See http://bit.ly/getsizebug1');}
return style;};})();boxSizingProp=getStyleProperty('boxSizing');if(boxSizingProp){var div=document.createElement('div');div.style.width='200px';div.style.padding='1px 2px 3px 4px';div.style.borderStyle='solid';div.style.borderWidth='1px 2px 3px 4px';div.style[boxSizingProp]='border-box';var body=document.body||document.documentElement;body.appendChild(div);var style=getStyle(div);isBoxSizeOuter=getStyleSize(style.width)===200;body.removeChild(div);}}
function getSize(elem){setup();if(typeof elem==='string'){elem=document.querySelector(elem);}
if(!elem||typeof elem!=='object'||!elem.nodeType){return;}
var style=getStyle(elem);if(style.display==='none'){return getZeroSize();}
var size={};size.width=elem.offsetWidth;size.height=elem.offsetHeight;var isBorderBox=size.isBorderBox=!!(boxSizingProp&&style[boxSizingProp]&&style[boxSizingProp]==='border-box');for(var i=0,len=measurements.length;i<len;i++){var measurement=measurements[i];var value=style[measurement];value=mungeNonPixel(elem,value);var num=parseFloat(value);size[measurement]=!isNaN(num)?num:0;}
var paddingWidth=size.paddingLeft+size.paddingRight;var paddingHeight=size.paddingTop+size.paddingBottom;var marginWidth=size.marginLeft+size.marginRight;var marginHeight=size.marginTop+size.marginBottom;var borderWidth=size.borderLeftWidth+size.borderRightWidth;var borderHeight=size.borderTopWidth+size.borderBottomWidth;var isBorderBoxSizeOuter=isBorderBox&&isBoxSizeOuter;var styleWidth=getStyleSize(style.width);if(styleWidth!==false){size.width=styleWidth+
(isBorderBoxSizeOuter?0:paddingWidth+borderWidth);}
var styleHeight=getStyleSize(style.height);if(styleHeight!==false){size.height=styleHeight+
(isBorderBoxSizeOuter?0:paddingHeight+borderHeight);}
size.innerWidth=size.width-(paddingWidth+borderWidth);size.innerHeight=size.height-(paddingHeight+borderHeight);size.outerWidth=size.width+marginWidth;size.outerHeight=size.height+marginHeight;return size;}
function mungeNonPixel(elem,value){if(window.getComputedStyle||value.indexOf('%')===-1){return value;}
var style=elem.style;var left=style.left;var rs=elem.runtimeStyle;var rsLeft=rs&&rs.left;if(rsLeft){rs.left=elem.currentStyle.left;}
style.left=value;value=style.pixelLeft;style.left=left;if(rsLeft){rs.left=rsLeft;}
return value;}
return getSize;}
if(typeof define==='function'&&define.amd){define(['get-style-property/get-style-property'],defineGetSize);}else if(typeof exports==='object'){module.exports=defineGetSize(require('desandro-get-style-property'));}else{window.getSize=defineGetSize(window.getStyleProperty);}})(window);;(function(){'use strict';function EventEmitter(){}
var proto=EventEmitter.prototype;var exports=this;var originalGlobalValue=exports.EventEmitter;function indexOfListener(listeners,listener){var i=listeners.length;while(i--){if(listeners[i].listener===listener){return i;}}
return-1;}
function alias(name){return function aliasClosure(){return this[name].apply(this,arguments);};}
proto.getListeners=function getListeners(evt){var events=this._getEvents();var response;var key;if(evt instanceof RegExp){response={};for(key in events){if(events.hasOwnProperty(key)&&evt.test(key)){response[key]=events[key];}}}
else{response=events[evt]||(events[evt]=[]);}
return response;};proto.flattenListeners=function flattenListeners(listeners){var flatListeners=[];var i;for(i=0;i<listeners.length;i+=1){flatListeners.push(listeners[i].listener);}
return flatListeners;};proto.getListenersAsObject=function getListenersAsObject(evt){var listeners=this.getListeners(evt);var response;if(listeners instanceof Array){response={};response[evt]=listeners;}
return response||listeners;};proto.addListener=function addListener(evt,listener){var listeners=this.getListenersAsObject(evt);var listenerIsWrapped=typeof listener==='object';var key;for(key in listeners){if(listeners.hasOwnProperty(key)&&indexOfListener(listeners[key],listener)===-1){listeners[key].push(listenerIsWrapped?listener:{listener:listener,once:false});}}
return this;};proto.on=alias('addListener');proto.addOnceListener=function addOnceListener(evt,listener){return this.addListener(evt,{listener:listener,once:true});};proto.once=alias('addOnceListener');proto.defineEvent=function defineEvent(evt){this.getListeners(evt);return this;};proto.defineEvents=function defineEvents(evts){for(var i=0;i<evts.length;i+=1){this.defineEvent(evts[i]);}
return this;};proto.removeListener=function removeListener(evt,listener){var listeners=this.getListenersAsObject(evt);var index;var key;for(key in listeners){if(listeners.hasOwnProperty(key)){index=indexOfListener(listeners[key],listener);if(index!==-1){listeners[key].splice(index,1);}}}
return this;};proto.off=alias('removeListener');proto.addListeners=function addListeners(evt,listeners){return this.manipulateListeners(false,evt,listeners);};proto.removeListeners=function removeListeners(evt,listeners){return this.manipulateListeners(true,evt,listeners);};proto.manipulateListeners=function manipulateListeners(remove,evt,listeners){var i;var value;var single=remove?this.removeListener:this.addListener;var multiple=remove?this.removeListeners:this.addListeners;if(typeof evt==='object'&&!(evt instanceof RegExp)){for(i in evt){if(evt.hasOwnProperty(i)&&(value=evt[i])){if(typeof value==='function'){single.call(this,i,value);}
else{multiple.call(this,i,value);}}}}
else{i=listeners.length;while(i--){single.call(this,evt,listeners[i]);}}
return this;};proto.removeEvent=function removeEvent(evt){var type=typeof evt;var events=this._getEvents();var key;if(type==='string'){delete events[evt];}
else if(evt instanceof RegExp){for(key in events){if(events.hasOwnProperty(key)&&evt.test(key)){delete events[key];}}}
else{delete this._events;}
return this;};proto.removeAllListeners=alias('removeEvent');proto.emitEvent=function emitEvent(evt,args){var listenersMap=this.getListenersAsObject(evt);var listeners;var listener;var i;var key;var response;for(key in listenersMap){if(listenersMap.hasOwnProperty(key)){listeners=listenersMap[key].slice(0);i=listeners.length;while(i--){listener=listeners[i];if(listener.once===true){this.removeListener(evt,listener.listener);}
response=listener.listener.apply(this,args||[]);if(response===this._getOnceReturnValue()){this.removeListener(evt,listener.listener);}}}}
return this;};proto.trigger=alias('emitEvent');proto.emit=function emit(evt){var args=Array.prototype.slice.call(arguments,1);return this.emitEvent(evt,args);};proto.setOnceReturnValue=function setOnceReturnValue(value){this._onceReturnValue=value;return this;};proto._getOnceReturnValue=function _getOnceReturnValue(){if(this.hasOwnProperty('_onceReturnValue')){return this._onceReturnValue;}
else{return true;}};proto._getEvents=function _getEvents(){return this._events||(this._events={});};EventEmitter.noConflict=function noConflict(){exports.EventEmitter=originalGlobalValue;return EventEmitter;};if(typeof define==='function'&&define.amd){define(function(){return EventEmitter;});}
else if(typeof module==='object'&&module.exports){module.exports=EventEmitter;}
else{exports.EventEmitter=EventEmitter;}}.call(this));(function(window){'use strict';var docElem=document.documentElement;var bind=function(){};function getIEEvent(obj){var event=window.event;event.target=event.target||event.srcElement||obj;return event;}
if(docElem.addEventListener){bind=function(obj,type,fn){obj.addEventListener(type,fn,false);};}else if(docElem.attachEvent){bind=function(obj,type,fn){obj[type+fn]=fn.handleEvent?function(){var event=getIEEvent(obj);fn.handleEvent.call(fn,event);}:function(){var event=getIEEvent(obj);fn.call(obj,event);};obj.attachEvent("on"+type,obj[type+fn]);};}
var unbind=function(){};if(docElem.removeEventListener){unbind=function(obj,type,fn){obj.removeEventListener(type,fn,false);};}else if(docElem.detachEvent){unbind=function(obj,type,fn){obj.detachEvent("on"+type,obj[type+fn]);try{delete obj[type+fn];}catch(err){obj[type+fn]=undefined;}};}
var eventie={bind:bind,unbind:unbind};if(typeof define==='function'&&define.amd){define(eventie);}else if(typeof exports==='object'){module.exports=eventie;}else{window.eventie=eventie;}})(window);(function(window){'use strict';var document=window.document;var queue=[];function docReady(fn){if(typeof fn!=='function'){return;}
if(docReady.isReady){fn();}else{queue.push(fn);}}
docReady.isReady=false;function init(event){var isIE8NotReady=event.type==='readystatechange'&&document.readyState!=='complete';if(docReady.isReady||isIE8NotReady){return;}
docReady.isReady=true;for(var i=0,len=queue.length;i<len;i++){var fn=queue[i];fn();}}
function defineDocReady(eventie){eventie.bind(document,'DOMContentLoaded',init);eventie.bind(document,'readystatechange',init);eventie.bind(window,'load',init);return docReady;}
if(typeof define==='function'&&define.amd){docReady.isReady=typeof requirejs==='function';define(['eventie/eventie'],defineDocReady);}else if(typeof exports==='object'){module.exports=defineDocReady(require('eventie'));}else{window.docReady=defineDocReady(window.eventie);}})(window);(function(ElemProto){'use strict';var matchesMethod=(function(){if(ElemProto.matches){return'matches';}
if(ElemProto.matchesSelector){return'matchesSelector';}
var prefixes=['webkit','moz','ms','o'];for(var i=0,len=prefixes.length;i<len;i++){var prefix=prefixes[i];var method=prefix+'MatchesSelector';if(ElemProto[method]){return method;}}})();function match(elem,selector){return elem[matchesMethod](selector);}
function checkParent(elem){if(elem.parentNode){return;}
var fragment=document.createDocumentFragment();fragment.appendChild(elem);}
function query(elem,selector){checkParent(elem);var elems=elem.parentNode.querySelectorAll(selector);for(var i=0,len=elems.length;i<len;i++){if(elems[i]===elem){return true;}}
return false;}
function matchChild(elem,selector){checkParent(elem);return match(elem,selector);}
var matchesSelector;if(matchesMethod){var div=document.createElement('div');var supportsOrphans=match(div,'div');matchesSelector=supportsOrphans?match:matchChild;}else{matchesSelector=query;}
if(typeof define==='function'&&define.amd){define(function(){return matchesSelector;});}else if(typeof exports==='object'){module.exports=matchesSelector;}
else{window.matchesSelector=matchesSelector;}})(Element.prototype);(function(window){var slice=Array.prototype.slice;function noop(){}
function defineBridget($){if(!$){return;}
function addOptionMethod(PluginClass){if(PluginClass.prototype.option){return;}
PluginClass.prototype.option=function(opts){if(!$.isPlainObject(opts)){return;}
this.options=$.extend(true,this.options,opts);};}
var logError=typeof console==='undefined'?noop:function(message){console.error(message);};function bridge(namespace,PluginClass){$.fn[namespace]=function(options){if(typeof options==='string'){var args=slice.call(arguments,1);for(var i=0,len=this.length;i<len;i++){var elem=this[i];var instance=$.data(elem,namespace);if(!instance){logError("cannot call methods on "+namespace+" prior to initialization; "+"attempted to call '"+options+"'");continue;}
if(!$.isFunction(instance[options])||options.charAt(0)==='_'){logError("no such method '"+options+"' for "+namespace+" instance");continue;}
var returnValue=instance[options].apply(instance,args);if(returnValue!==undefined){return returnValue;}}
return this;}else{return this.each(function(){var instance=$.data(this,namespace);if(instance){instance.option(options);instance._init();}else{instance=new PluginClass(this,options);$.data(this,namespace,instance);}});}};}
$.bridget=function(namespace,PluginClass){addOptionMethod(PluginClass);bridge(namespace,PluginClass);};return $.bridget;}
if(typeof define==='function'&&define.amd){define('jquery-bridget/jquery.bridget',['jquery'],defineBridget);}else if(typeof exports==='object'){defineBridget(require('jquery'));}else{defineBridget(window.jQuery);}})(window);(function(window){var docElem=document.documentElement;var bind=function(){};function getIEEvent(obj){var event=window.event;event.target=event.target||event.srcElement||obj;return event;}
if(docElem.addEventListener){bind=function(obj,type,fn){obj.addEventListener(type,fn,false);};}else if(docElem.attachEvent){bind=function(obj,type,fn){obj[type+fn]=fn.handleEvent?function(){var event=getIEEvent(obj);fn.handleEvent.call(fn,event);}:function(){var event=getIEEvent(obj);fn.call(obj,event);};obj.attachEvent("on"+type,obj[type+fn]);};}
var unbind=function(){};if(docElem.removeEventListener){unbind=function(obj,type,fn){obj.removeEventListener(type,fn,false);};}else if(docElem.detachEvent){unbind=function(obj,type,fn){obj.detachEvent("on"+type,obj[type+fn]);try{delete obj[type+fn];}catch(err){obj[type+fn]=undefined;}};}
var eventie={bind:bind,unbind:unbind};if(typeof define==='function'&&define.amd){define('eventie/eventie',eventie);}else if(typeof exports==='object'){module.exports=eventie;}else{window.eventie=eventie;}})(window);;(function(){function EventEmitter(){}
var proto=EventEmitter.prototype;var exports=this;var originalGlobalValue=exports.EventEmitter;function indexOfListener(listeners,listener){var i=listeners.length;while(i--){if(listeners[i].listener===listener){return i;}}
return-1;}
function alias(name){return function aliasClosure(){return this[name].apply(this,arguments);};}
proto.getListeners=function getListeners(evt){var events=this._getEvents();var response;var key;if(evt instanceof RegExp){response={};for(key in events){if(events.hasOwnProperty(key)&&evt.test(key)){response[key]=events[key];}}}
else{response=events[evt]||(events[evt]=[]);}
return response;};proto.flattenListeners=function flattenListeners(listeners){var flatListeners=[];var i;for(i=0;i<listeners.length;i+=1){flatListeners.push(listeners[i].listener);}
return flatListeners;};proto.getListenersAsObject=function getListenersAsObject(evt){var listeners=this.getListeners(evt);var response;if(listeners instanceof Array){response={};response[evt]=listeners;}
return response||listeners;};proto.addListener=function addListener(evt,listener){var listeners=this.getListenersAsObject(evt);var listenerIsWrapped=typeof listener==='object';var key;for(key in listeners){if(listeners.hasOwnProperty(key)&&indexOfListener(listeners[key],listener)===-1){listeners[key].push(listenerIsWrapped?listener:{listener:listener,once:false});}}
return this;};proto.on=alias('addListener');proto.addOnceListener=function addOnceListener(evt,listener){return this.addListener(evt,{listener:listener,once:true});};proto.once=alias('addOnceListener');proto.defineEvent=function defineEvent(evt){this.getListeners(evt);return this;};proto.defineEvents=function defineEvents(evts){for(var i=0;i<evts.length;i+=1){this.defineEvent(evts[i]);}
return this;};proto.removeListener=function removeListener(evt,listener){var listeners=this.getListenersAsObject(evt);var index;var key;for(key in listeners){if(listeners.hasOwnProperty(key)){index=indexOfListener(listeners[key],listener);if(index!==-1){listeners[key].splice(index,1);}}}
return this;};proto.off=alias('removeListener');proto.addListeners=function addListeners(evt,listeners){return this.manipulateListeners(false,evt,listeners);};proto.removeListeners=function removeListeners(evt,listeners){return this.manipulateListeners(true,evt,listeners);};proto.manipulateListeners=function manipulateListeners(remove,evt,listeners){var i;var value;var single=remove?this.removeListener:this.addListener;var multiple=remove?this.removeListeners:this.addListeners;if(typeof evt==='object'&&!(evt instanceof RegExp)){for(i in evt){if(evt.hasOwnProperty(i)&&(value=evt[i])){if(typeof value==='function'){single.call(this,i,value);}
else{multiple.call(this,i,value);}}}}
else{i=listeners.length;while(i--){single.call(this,evt,listeners[i]);}}
return this;};proto.removeEvent=function removeEvent(evt){var type=typeof evt;var events=this._getEvents();var key;if(type==='string'){delete events[evt];}
else if(evt instanceof RegExp){for(key in events){if(events.hasOwnProperty(key)&&evt.test(key)){delete events[key];}}}
else{delete this._events;}
return this;};proto.removeAllListeners=alias('removeEvent');proto.emitEvent=function emitEvent(evt,args){var listeners=this.getListenersAsObject(evt);var listener;var i;var key;var response;for(key in listeners){if(listeners.hasOwnProperty(key)){i=listeners[key].length;while(i--){listener=listeners[key][i];if(listener.once===true){this.removeListener(evt,listener.listener);}
response=listener.listener.apply(this,args||[]);if(response===this._getOnceReturnValue()){this.removeListener(evt,listener.listener);}}}}
return this;};proto.trigger=alias('emitEvent');proto.emit=function emit(evt){var args=Array.prototype.slice.call(arguments,1);return this.emitEvent(evt,args);};proto.setOnceReturnValue=function setOnceReturnValue(value){this._onceReturnValue=value;return this;};proto._getOnceReturnValue=function _getOnceReturnValue(){if(this.hasOwnProperty('_onceReturnValue')){return this._onceReturnValue;}
else{return true;}};proto._getEvents=function _getEvents(){return this._events||(this._events={});};EventEmitter.noConflict=function noConflict(){exports.EventEmitter=originalGlobalValue;return EventEmitter;};if(typeof define==='function'&&define.amd){define('eventEmitter/EventEmitter',[],function(){return EventEmitter;});}
else if(typeof module==='object'&&module.exports){module.exports=EventEmitter;}
else{exports.EventEmitter=EventEmitter;}}.call(this));(function(window){var prefixes='Webkit Moz ms Ms O'.split(' ');var docElemStyle=document.documentElement.style;function getStyleProperty(propName){if(!propName){return;}
if(typeof docElemStyle[propName]==='string'){return propName;}
propName=propName.charAt(0).toUpperCase()+propName.slice(1);var prefixed;for(var i=0,len=prefixes.length;i<len;i++){prefixed=prefixes[i]+propName;if(typeof docElemStyle[prefixed]==='string'){return prefixed;}}}
if(typeof define==='function'&&define.amd){define('get-style-property/get-style-property',[],function(){return getStyleProperty;});}else if(typeof exports==='object'){module.exports=getStyleProperty;}else{window.getStyleProperty=getStyleProperty;}})(window);(function(window,undefined){function getStyleSize(value){var num=parseFloat(value);var isValid=value.indexOf('%')===-1&&!isNaN(num);return isValid&&num;}
function noop(){}
var logError=typeof console==='undefined'?noop:function(message){console.error(message);};var measurements=['paddingLeft','paddingRight','paddingTop','paddingBottom','marginLeft','marginRight','marginTop','marginBottom','borderLeftWidth','borderRightWidth','borderTopWidth','borderBottomWidth'];function getZeroSize(){var size={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0};for(var i=0,len=measurements.length;i<len;i++){var measurement=measurements[i];size[measurement]=0;}
return size;}
function defineGetSize(getStyleProperty){var isSetup=false;var getStyle,boxSizingProp,isBoxSizeOuter;function setup(){if(isSetup){return;}
isSetup=true;var getComputedStyle=window.getComputedStyle;getStyle=(function(){var getStyleFn=getComputedStyle?function(elem){return getComputedStyle(elem,null);}:function(elem){return elem.currentStyle;};return function getStyle(elem){var style=getStyleFn(elem);if(!style){logError('Style returned '+style+'. Are you running this code in a hidden iframe on Firefox? '+'See http://bit.ly/getsizebug1');}
return style;};})();boxSizingProp=getStyleProperty('boxSizing');if(boxSizingProp){var div=document.createElement('div');div.style.width='200px';div.style.padding='1px 2px 3px 4px';div.style.borderStyle='solid';div.style.borderWidth='1px 2px 3px 4px';div.style[boxSizingProp]='border-box';var body=document.body||document.documentElement;body.appendChild(div);var style=getStyle(div);isBoxSizeOuter=getStyleSize(style.width)===200;body.removeChild(div);}}
function getSize(elem){setup();if(typeof elem==='string'){elem=document.querySelector(elem);}
if(!elem||typeof elem!=='object'||!elem.nodeType){return;}
var style=getStyle(elem);if(style.display==='none'){return getZeroSize();}
var size={};size.width=elem.offsetWidth;size.height=elem.offsetHeight;var isBorderBox=size.isBorderBox=!!(boxSizingProp&&style[boxSizingProp]&&style[boxSizingProp]==='border-box');for(var i=0,len=measurements.length;i<len;i++){var measurement=measurements[i];var value=style[measurement];value=mungeNonPixel(elem,value);var num=parseFloat(value);size[measurement]=!isNaN(num)?num:0;}
var paddingWidth=size.paddingLeft+size.paddingRight;var paddingHeight=size.paddingTop+size.paddingBottom;var marginWidth=size.marginLeft+size.marginRight;var marginHeight=size.marginTop+size.marginBottom;var borderWidth=size.borderLeftWidth+size.borderRightWidth;var borderHeight=size.borderTopWidth+size.borderBottomWidth;var isBorderBoxSizeOuter=isBorderBox&&isBoxSizeOuter;var styleWidth=getStyleSize(style.width);if(styleWidth!==false){size.width=styleWidth+
(isBorderBoxSizeOuter?0:paddingWidth+borderWidth);}
var styleHeight=getStyleSize(style.height);if(styleHeight!==false){size.height=styleHeight+
(isBorderBoxSizeOuter?0:paddingHeight+borderHeight);}
size.innerWidth=size.width-(paddingWidth+borderWidth);size.innerHeight=size.height-(paddingHeight+borderHeight);size.outerWidth=size.width+marginWidth;size.outerHeight=size.height+marginHeight;return size;}
function mungeNonPixel(elem,value){if(window.getComputedStyle||value.indexOf('%')===-1){return value;}
var style=elem.style;var left=style.left;var rs=elem.runtimeStyle;var rsLeft=rs&&rs.left;if(rsLeft){rs.left=elem.currentStyle.left;}
style.left=value;value=style.pixelLeft;style.left=left;if(rsLeft){rs.left=rsLeft;}
return value;}
return getSize;}
if(typeof define==='function'&&define.amd){define('get-size/get-size',['get-style-property/get-style-property'],defineGetSize);}else if(typeof exports==='object'){module.exports=defineGetSize(require('desandro-get-style-property'));}else{window.getSize=defineGetSize(window.getStyleProperty);}})(window);(function(window){var document=window.document;var queue=[];function docReady(fn){if(typeof fn!=='function'){return;}
if(docReady.isReady){fn();}else{queue.push(fn);}}
docReady.isReady=false;function onReady(event){var isIE8NotReady=event.type==='readystatechange'&&document.readyState!=='complete';if(docReady.isReady||isIE8NotReady){return;}
trigger();}
function trigger(){docReady.isReady=true;for(var i=0,len=queue.length;i<len;i++){var fn=queue[i];fn();}}
function defineDocReady(eventie){if(document.readyState==='complete'){trigger();}else{eventie.bind(document,'DOMContentLoaded',onReady);eventie.bind(document,'readystatechange',onReady);eventie.bind(window,'load',onReady);}
return docReady;}
if(typeof define==='function'&&define.amd){define('doc-ready/doc-ready',['eventie/eventie'],defineDocReady);}else if(typeof exports==='object'){module.exports=defineDocReady(require('eventie'));}else{window.docReady=defineDocReady(window.eventie);}})(window);(function(ElemProto){var matchesMethod=(function(){if(ElemProto.matches){return'matches';}
if(ElemProto.matchesSelector){return'matchesSelector';}
var prefixes=['webkit','moz','ms','o'];for(var i=0,len=prefixes.length;i<len;i++){var prefix=prefixes[i];var method=prefix+'MatchesSelector';if(ElemProto[method]){return method;}}})();function match(elem,selector){return elem[matchesMethod](selector);}
function checkParent(elem){if(elem.parentNode){return;}
var fragment=document.createDocumentFragment();fragment.appendChild(elem);}
function query(elem,selector){checkParent(elem);var elems=elem.parentNode.querySelectorAll(selector);for(var i=0,len=elems.length;i<len;i++){if(elems[i]===elem){return true;}}
return false;}
function matchChild(elem,selector){checkParent(elem);return match(elem,selector);}
var matchesSelector;if(matchesMethod){var div=document.createElement('div');var supportsOrphans=match(div,'div');matchesSelector=supportsOrphans?match:matchChild;}else{matchesSelector=query;}
if(typeof define==='function'&&define.amd){define('matches-selector/matches-selector',[],function(){return matchesSelector;});}else if(typeof exports==='object'){module.exports=matchesSelector;}
else{window.matchesSelector=matchesSelector;}})(Element.prototype);(function(window,factory){if(typeof define=='function'&&define.amd){define('fizzy-ui-utils/utils',['doc-ready/doc-ready','matches-selector/matches-selector'],function(docReady,matchesSelector){return factory(window,docReady,matchesSelector);});}else if(typeof exports=='object'){module.exports=factory(window,require('doc-ready'),require('desandro-matches-selector'));}else{window.fizzyUIUtils=factory(window,window.docReady,window.matchesSelector);}}(window,function factory(window,docReady,matchesSelector){var utils={};utils.extend=function(a,b){for(var prop in b){a[prop]=b[prop];}
return a;};utils.modulo=function(num,div){return((num%div)+div)%div;};var objToString=Object.prototype.toString;utils.isArray=function(obj){return objToString.call(obj)=='[object Array]';};utils.makeArray=function(obj){var ary=[];if(utils.isArray(obj)){ary=obj;}else if(obj&&typeof obj.length=='number'){for(var i=0,len=obj.length;i<len;i++){ary.push(obj[i]);}}else{ary.push(obj);}
return ary;};utils.indexOf=Array.prototype.indexOf?function(ary,obj){return ary.indexOf(obj);}:function(ary,obj){for(var i=0,len=ary.length;i<len;i++){if(ary[i]===obj){return i;}}
return-1;};utils.removeFrom=function(ary,obj){var index=utils.indexOf(ary,obj);if(index!=-1){ary.splice(index,1);}};utils.isElement=(typeof HTMLElement=='function'||typeof HTMLElement=='object')?function isElementDOM2(obj){return obj instanceof HTMLElement;}:function isElementQuirky(obj){return obj&&typeof obj=='object'&&obj.nodeType==1&&typeof obj.nodeName=='string';};utils.setText=(function(){var setTextProperty;function setText(elem,text){setTextProperty=setTextProperty||(document.documentElement.textContent!==undefined?'textContent':'innerText');elem[setTextProperty]=text;}
return setText;})();utils.getParent=function(elem,selector){while(elem!=document.body){elem=elem.parentNode;if(matchesSelector(elem,selector)){return elem;}}};utils.getQueryElement=function(elem){if(typeof elem=='string'){return document.querySelector(elem);}
return elem;};utils.handleEvent=function(event){var method='on'+event.type;if(this[method]){this[method](event);}};utils.filterFindElements=function(elems,selector){elems=utils.makeArray(elems);var ffElems=[];for(var i=0,len=elems.length;i<len;i++){var elem=elems[i];if(!utils.isElement(elem)){continue;}
if(selector){if(matchesSelector(elem,selector)){ffElems.push(elem);}
var childElems=elem.querySelectorAll(selector);for(var j=0,jLen=childElems.length;j<jLen;j++){ffElems.push(childElems[j]);}}else{ffElems.push(elem);}}
return ffElems;};utils.debounceMethod=function(_class,methodName,threshold){var method=_class.prototype[methodName];var timeoutName=methodName+'Timeout';_class.prototype[methodName]=function(){var timeout=this[timeoutName];if(timeout){clearTimeout(timeout);}
var args=arguments;var _this=this;this[timeoutName]=setTimeout(function(){method.apply(_this,args);delete _this[timeoutName];},threshold||100);};};utils.toDashed=function(str){return str.replace(/(.)([A-Z])/g,function(match,$1,$2){return $1+'-'+$2;}).toLowerCase();};var console=window.console;utils.htmlInit=function(WidgetClass,namespace){docReady(function(){var dashedNamespace=utils.toDashed(namespace);var elems=document.querySelectorAll('.js-'+dashedNamespace);var dataAttr='data-'+dashedNamespace+'-options';for(var i=0,len=elems.length;i<len;i++){var elem=elems[i];var attr=elem.getAttribute(dataAttr);var options;try{options=attr&&JSON.parse(attr);}catch(error){if(console){console.error('Error parsing '+dataAttr+' on '+
elem.nodeName.toLowerCase()+(elem.id?'#'+elem.id:'')+': '+
error);}
continue;}
var instance=new WidgetClass(elem,options);var jQuery=window.jQuery;if(jQuery){jQuery.data(elem,namespace,instance);}}});};return utils;}));(function(window,factory){if(typeof define==='function'&&define.amd){define('outlayer/item',['eventEmitter/EventEmitter','get-size/get-size','get-style-property/get-style-property','fizzy-ui-utils/utils'],function(EventEmitter,getSize,getStyleProperty,utils){return factory(window,EventEmitter,getSize,getStyleProperty,utils);});}else if(typeof exports==='object'){module.exports=factory(window,require('wolfy87-eventemitter'),require('get-size'),require('desandro-get-style-property'),require('fizzy-ui-utils'));}else{window.Outlayer={};window.Outlayer.Item=factory(window,window.EventEmitter,window.getSize,window.getStyleProperty,window.fizzyUIUtils);}}(window,function factory(window,EventEmitter,getSize,getStyleProperty,utils){var getComputedStyle=window.getComputedStyle;var getStyle=getComputedStyle?function(elem){return getComputedStyle(elem,null);}:function(elem){return elem.currentStyle;};function isEmptyObj(obj){for(var prop in obj){return false;}
prop=null;return true;}
var transitionProperty=getStyleProperty('transition');var transformProperty=getStyleProperty('transform');var supportsCSS3=transitionProperty&&transformProperty;var is3d=!!getStyleProperty('perspective');var transitionEndEvent={WebkitTransition:'webkitTransitionEnd',MozTransition:'transitionend',OTransition:'otransitionend',transition:'transitionend'}[transitionProperty];var prefixableProperties=['transform','transition','transitionDuration','transitionProperty'];var vendorProperties=(function(){var cache={};for(var i=0,len=prefixableProperties.length;i<len;i++){var prop=prefixableProperties[i];var supportedProp=getStyleProperty(prop);if(supportedProp&&supportedProp!==prop){cache[prop]=supportedProp;}}
return cache;})();function Item(element,layout){if(!element){return;}
this.element=element;this.layout=layout;this.position={x:0,y:0};this._create();}
utils.extend(Item.prototype,EventEmitter.prototype);Item.prototype._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}};this.css({position:'absolute'});};Item.prototype.handleEvent=function(event){var method='on'+event.type;if(this[method]){this[method](event);}};Item.prototype.getSize=function(){this.size=getSize(this.element);};Item.prototype.css=function(style){var elemStyle=this.element.style;for(var prop in style){var supportedProp=vendorProperties[prop]||prop;elemStyle[supportedProp]=style[prop];}};Item.prototype.getPosition=function(){var style=getStyle(this.element);var layoutOptions=this.layout.options;var isOriginLeft=layoutOptions.isOriginLeft;var isOriginTop=layoutOptions.isOriginTop;var xValue=style[isOriginLeft?'left':'right'];var yValue=style[isOriginTop?'top':'bottom'];var layoutSize=this.layout.size;var x=xValue.indexOf('%')!=-1?(parseFloat(xValue)/100)*layoutSize.width:parseInt(xValue,10);var y=yValue.indexOf('%')!=-1?(parseFloat(yValue)/100)*layoutSize.height:parseInt(yValue,10);x=isNaN(x)?0:x;y=isNaN(y)?0:y;x-=isOriginLeft?layoutSize.paddingLeft:layoutSize.paddingRight;y-=isOriginTop?layoutSize.paddingTop:layoutSize.paddingBottom;this.position.x=x;this.position.y=y;};Item.prototype.layoutPosition=function(visible){var layoutSize=this.layout.size;var layoutOptions=this.layout.options;var style={};var xPadding=layoutOptions.isOriginLeft?'paddingLeft':'paddingRight';var xProperty=layoutOptions.isOriginLeft?'left':'right';var xResetProperty=layoutOptions.isOriginLeft?'right':'left';var x=this.position.x+layoutSize[xPadding];style[xProperty]=this.getXValue(x);style[xResetProperty]='';var yPadding=layoutOptions.isOriginTop?'paddingTop':'paddingBottom';var yProperty=layoutOptions.isOriginTop?'top':'bottom';var yResetProperty=layoutOptions.isOriginTop?'bottom':'top';var y=this.position.y+layoutSize[yPadding];style[yProperty]=this.getYValue(y);style[yResetProperty]='';style['opacity']=1;if(typeof visible!=="undefined"&&!visible){style['opacity']=0;}
this.css(style);this.emitEvent('layout',[this]);};Item.prototype.getXValue=function(x){var layoutOptions=this.layout.options;return layoutOptions.percentPosition&&!layoutOptions.isHorizontal?((x/this.layout.size.width)*100)+'%':x+'px';};Item.prototype.getYValue=function(y){var layoutOptions=this.layout.options;return layoutOptions.percentPosition&&layoutOptions.isHorizontal?((y/this.layout.size.height)*100)+'%':y+'px';};Item.prototype._transitionTo=function(x,y){this.getPosition();var curX=this.position.x;var curY=this.position.y;var compareX=parseInt(x,10);var compareY=parseInt(y,10);var didNotMove=compareX===this.position.x&&compareY===this.position.y;this.setPosition(x,y);if(didNotMove&&!this.isTransitioning){this.layoutPosition();return;}
var transX=x-curX;var transY=y-curY;var transitionStyle={};transitionStyle.transform=this.getTranslate(transX,transY);this.transition({to:transitionStyle,onTransitionEnd:{transform:this.layoutPosition},isCleaning:true});};Item.prototype.getTranslate=function(x,y){var layoutOptions=this.layout.options;x=layoutOptions.isOriginLeft?x:-x;y=layoutOptions.isOriginTop?y:-y;if(is3d){return'translate3d('+x+'px, '+y+'px, 0)';}
return'translate('+x+'px, '+y+'px)';};Item.prototype.goTo=function(x,y){this.setPosition(x,y);this.layoutPosition(false);};Item.prototype.moveTo=supportsCSS3?Item.prototype._transitionTo:Item.prototype.goTo;Item.prototype.setPosition=function(x,y){this.position.x=parseInt(x,10);this.position.y=parseInt(y,10);};Item.prototype._nonTransition=function(args){this.css(args.to);if(args.isCleaning){this._removeStyles(args.to);}
for(var prop in args.onTransitionEnd){args.onTransitionEnd[prop].call(this);}};Item.prototype._transition=function(args){if(!parseFloat(this.layout.options.transitionDuration)){this._nonTransition(args);return;}
var _transition=this._transn;for(var prop in args.onTransitionEnd){_transition.onEnd[prop]=args.onTransitionEnd[prop];}
for(prop in args.to){_transition.ingProperties[prop]=true;if(args.isCleaning){_transition.clean[prop]=true;}}
if(args.from){this.css(args.from);var h=this.element.offsetHeight;h=null;}
this.enableTransition(args.to);this.css(args.to);this.isTransitioning=true;};function toDashedAll(str){return str.replace(/([A-Z])/g,function($1){return'-'+$1.toLowerCase();});}
var transitionProps='opacity,'+
toDashedAll(vendorProperties.transform||'transform');Item.prototype.enableTransition=function(){if(this.isTransitioning){return;}
this.css({transitionProperty:transitionProps,transitionDuration:this.layout.options.transitionDuration});this.element.addEventListener(transitionEndEvent,this,false);};Item.prototype.transition=Item.prototype[transitionProperty?'_transition':'_nonTransition'];Item.prototype.onwebkitTransitionEnd=function(event){this.ontransitionend(event);};Item.prototype.onotransitionend=function(event){this.ontransitionend(event);};var dashedVendorProperties={'-webkit-transform':'transform','-moz-transform':'transform','-o-transform':'transform'};Item.prototype.ontransitionend=function(event){if(event.target!==this.element){return;}
var _transition=this._transn;var propertyName=dashedVendorProperties[event.propertyName]||event.propertyName;delete _transition.ingProperties[propertyName];if(isEmptyObj(_transition.ingProperties)){this.disableTransition();}
if(propertyName in _transition.clean){this.element.style[event.propertyName]='';delete _transition.clean[propertyName];}
if(propertyName in _transition.onEnd){var onTransitionEnd=_transition.onEnd[propertyName];onTransitionEnd.call(this);delete _transition.onEnd[propertyName];}
this.emitEvent('transitionEnd',[this]);};Item.prototype.disableTransition=function(){this.removeTransitionStyles();this.element.removeEventListener(transitionEndEvent,this,false);this.isTransitioning=false;};Item.prototype._removeStyles=function(style){var cleanStyle={};for(var prop in style){cleanStyle[prop]='';}
this.css(cleanStyle);};var cleanTransitionStyle={transitionProperty:'',transitionDuration:''};Item.prototype.removeTransitionStyles=function(){this.css(cleanTransitionStyle);};Item.prototype.removeElem=function(){this.element.parentNode.removeChild(this.element);this.css({display:''});this.emitEvent('remove',[this]);};Item.prototype.remove=function(){if(!transitionProperty||!parseFloat(this.layout.options.transitionDuration)){this.removeElem();return;}
var _this=this;this.once('transitionEnd',function(){_this.removeElem();});this.hide();};Item.prototype.reveal=function(){delete this.isHidden;this.css({display:''});var options=this.layout.options;var onTransitionEnd={};var transitionEndProperty=this.getHideRevealTransitionEndProperty('visibleStyle');onTransitionEnd[transitionEndProperty]=this.onRevealTransitionEnd;this.transition({from:options.hiddenStyle,to:options.visibleStyle,isCleaning:true,onTransitionEnd:onTransitionEnd});};Item.prototype.onRevealTransitionEnd=function(){if(!this.isHidden){this.emitEvent('reveal');}};Item.prototype.getHideRevealTransitionEndProperty=function(styleProperty){var optionStyle=this.layout.options[styleProperty];if(optionStyle.opacity){return'opacity';}
for(var prop in optionStyle){return prop;}};Item.prototype.hide=function(){this.isHidden=true;this.css({display:''});var options=this.layout.options;var onTransitionEnd={};var transitionEndProperty=this.getHideRevealTransitionEndProperty('hiddenStyle');onTransitionEnd[transitionEndProperty]=this.onHideTransitionEnd;this.transition({from:options.visibleStyle,to:options.hiddenStyle,isCleaning:true,onTransitionEnd:onTransitionEnd});};Item.prototype.onHideTransitionEnd=function(){if(this.isHidden){this.css({display:'none'});this.emitEvent('hide');}};Item.prototype.destroy=function(){this.css({position:'',left:'',right:'',top:'',bottom:'',transition:'',transform:''});};return Item;}));(function(window,factory){if(typeof define=='function'&&define.amd){define('outlayer/outlayer',['eventie/eventie','eventEmitter/EventEmitter','get-size/get-size','fizzy-ui-utils/utils','./item'],function(eventie,EventEmitter,getSize,utils,Item){return factory(window,eventie,EventEmitter,getSize,utils,Item);});}else if(typeof exports=='object'){module.exports=factory(window,require('eventie'),require('wolfy87-eventemitter'),require('get-size'),require('fizzy-ui-utils'),require('./item'));}else{window.Outlayer=factory(window,window.eventie,window.EventEmitter,window.getSize,window.fizzyUIUtils,window.Outlayer.Item);}}(window,function factory(window,eventie,EventEmitter,getSize,utils,Item){var console=window.console;var jQuery=window.jQuery;var noop=function(){};var GUID=0;var instances={};function Outlayer(element,options){var queryElement=utils.getQueryElement(element);if(!queryElement){if(console){console.error('Bad element for '+this.constructor.namespace+': '+(queryElement||element));}
return;}
this.element=queryElement;if(jQuery){this.$element=jQuery(this.element);}
this.options=utils.extend({},this.constructor.defaults);this.option(options);var id=++GUID;this.element.outlayerGUID=id;instances[id]=this;this._create();if(this.options.isInitLayout){this.layout();}}
Outlayer.namespace='outlayer';Outlayer.Item=Item;Outlayer.defaults={containerStyle:{position:'relative'},isInitLayout:true,isOriginLeft:true,isOriginTop:true,isResizeBound:true,isResizingContainer:true,transitionDuration:'0.4s',hiddenStyle:{opacity:0,transform:'scale(0.001)'},visibleStyle:{opacity:1,transform:'scale(1)'}};utils.extend(Outlayer.prototype,EventEmitter.prototype);Outlayer.prototype.option=function(opts){utils.extend(this.options,opts);};Outlayer.prototype._create=function(){this.reloadItems();this.stamps=[];this.stamp(this.options.stamp);utils.extend(this.element.style,this.options.containerStyle);if(this.options.isResizeBound){this.bindResize();}};Outlayer.prototype.reloadItems=function(){this.items=this._itemize(this.element.children);};Outlayer.prototype._itemize=function(elems){var itemElems=this._filterFindItemElements(elems);var Item=this.constructor.Item;var items=[];for(var i=0,len=itemElems.length;i<len;i++){var elem=itemElems[i];var item=new Item(elem,this);items.push(item);}
return items;};Outlayer.prototype._filterFindItemElements=function(elems){return utils.filterFindElements(elems,this.options.itemSelector);};Outlayer.prototype.getItemElements=function(){var elems=[];for(var i=0,len=this.items.length;i<len;i++){elems.push(this.items[i].element);}
return elems;};Outlayer.prototype.layout=function(){this._resetLayout();this._manageStamps();var isInstant=this.options.isLayoutInstant!==undefined?this.options.isLayoutInstant:!this._isLayoutInited;this.layoutItems(this.items,isInstant);this._isLayoutInited=true;};Outlayer.prototype._init=Outlayer.prototype.layout;Outlayer.prototype._resetLayout=function(){this.getSize();};Outlayer.prototype.getSize=function(){this.size=getSize(this.element);};Outlayer.prototype._getMeasurement=function(measurement,size){var option=this.options[measurement];var elem;if(!option){this[measurement]=0;}else{if(typeof option==='string'){elem=this.element.querySelector(option);}else if(utils.isElement(option)){elem=option;}
this[measurement]=elem?getSize(elem)[size]:option;}};Outlayer.prototype.layoutItems=function(items,isInstant){items=this._getItemsForLayout(items);this._layoutItems(items,isInstant);this._postLayout();};Outlayer.prototype._getItemsForLayout=function(items){var layoutItems=[];for(var i=0,len=items.length;i<len;i++){var item=items[i];if(!item.isIgnored){layoutItems.push(item);}}
return layoutItems;};Outlayer.prototype._layoutItems=function(items,isInstant){this._emitCompleteOnItems('layout',items);if(!items||!items.length){return;}
var queue=[];for(var i=0,len=items.length;i<len;i++){var item=items[i];var position=this._getItemLayoutPosition(item);position.item=item;position.isInstant=isInstant||item.isLayoutInstant;queue.push(position);}
this._processLayoutQueue(queue);};Outlayer.prototype._getItemLayoutPosition=function(){return{x:0,y:0};};Outlayer.prototype._processLayoutQueue=function(queue){for(var i=0,len=queue.length;i<len;i++){var obj=queue[i];this._positionItem(obj.item,obj.x,obj.y,obj.isInstant);}};Outlayer.prototype._positionItem=function(item,x,y,isInstant){if(isInstant){item.goTo(x,y);}else{item.moveTo(x,y);}};Outlayer.prototype._postLayout=function(){this.resizeContainer();};Outlayer.prototype.resizeContainer=function(){if(!this.options.isResizingContainer){return;}
var size=this._getContainerSize();if(size){this._setContainerMeasure(size.width,true);this._setContainerMeasure(size.height,false);}};Outlayer.prototype._getContainerSize=noop;Outlayer.prototype._setContainerMeasure=function(measure,isWidth){if(measure===undefined){return;}
var elemSize=this.size;if(elemSize.isBorderBox){measure+=isWidth?elemSize.paddingLeft+elemSize.paddingRight+
elemSize.borderLeftWidth+elemSize.borderRightWidth:elemSize.paddingBottom+elemSize.paddingTop+
elemSize.borderTopWidth+elemSize.borderBottomWidth;}
measure=Math.max(measure,0);this.element.style[isWidth?'width':'height']=measure+'px';};Outlayer.prototype._emitCompleteOnItems=function(eventName,items){var _this=this;function onComplete(){_this.dispatchEvent(eventName+'Complete',null,[items]);}
var count=items.length;if(!items||!count){onComplete();return;}
var doneCount=0;function tick(){doneCount++;if(doneCount===count){onComplete();}}
for(var i=0,len=items.length;i<len;i++){var item=items[i];item.once(eventName,tick);}};Outlayer.prototype.dispatchEvent=function(type,event,args){var emitArgs=event?[event].concat(args):args;this.emitEvent(type,emitArgs);if(jQuery){this.$element=this.$element||jQuery(this.element);if(event){var $event=jQuery.Event(event);$event.type=type;this.$element.trigger($event,args);}else{this.$element.trigger(type,args);}}};Outlayer.prototype.ignore=function(elem){var item=this.getItem(elem);if(item){item.isIgnored=true;}};Outlayer.prototype.unignore=function(elem){var item=this.getItem(elem);if(item){delete item.isIgnored;}};Outlayer.prototype.stamp=function(elems){elems=this._find(elems);if(!elems){return;}
this.stamps=this.stamps.concat(elems);for(var i=0,len=elems.length;i<len;i++){var elem=elems[i];this.ignore(elem);}};Outlayer.prototype.unstamp=function(elems){elems=this._find(elems);if(!elems){return;}
for(var i=0,len=elems.length;i<len;i++){var elem=elems[i];utils.removeFrom(this.stamps,elem);this.unignore(elem);}};Outlayer.prototype._find=function(elems){if(!elems){return;}
if(typeof elems==='string'){elems=this.element.querySelectorAll(elems);}
elems=utils.makeArray(elems);return elems;};Outlayer.prototype._manageStamps=function(){if(!this.stamps||!this.stamps.length){return;}
this._getBoundingRect();for(var i=0,len=this.stamps.length;i<len;i++){var stamp=this.stamps[i];this._manageStamp(stamp);}};Outlayer.prototype._getBoundingRect=function(){var boundingRect=this.element.getBoundingClientRect();var size=this.size;this._boundingRect={left:boundingRect.left+size.paddingLeft+size.borderLeftWidth,top:boundingRect.top+size.paddingTop+size.borderTopWidth,right:boundingRect.right-(size.paddingRight+size.borderRightWidth),bottom:boundingRect.bottom-(size.paddingBottom+size.borderBottomWidth)};};Outlayer.prototype._manageStamp=noop;Outlayer.prototype._getElementOffset=function(elem){var boundingRect=elem.getBoundingClientRect();var thisRect=this._boundingRect;var size=getSize(elem);var offset={left:boundingRect.left-thisRect.left-size.marginLeft,top:boundingRect.top-thisRect.top-size.marginTop,right:thisRect.right-boundingRect.right-size.marginRight,bottom:thisRect.bottom-boundingRect.bottom-size.marginBottom};return offset;};Outlayer.prototype.handleEvent=function(event){var method='on'+event.type;if(this[method]){this[method](event);}};Outlayer.prototype.bindResize=function(){if(this.isResizeBound){return;}
eventie.bind(window,'resize',this);this.isResizeBound=true;};Outlayer.prototype.unbindResize=function(){if(this.isResizeBound){eventie.unbind(window,'resize',this);}
this.isResizeBound=false;};Outlayer.prototype.onresize=function(){if(this.resizeTimeout){clearTimeout(this.resizeTimeout);}
var _this=this;function delayed(){_this.resize();delete _this.resizeTimeout;}
this.resizeTimeout=setTimeout(delayed,100);};Outlayer.prototype.resize=function(){if(!this.isResizeBound||!this.needsResizeLayout()){return;}
this.layout();};Outlayer.prototype.needsResizeLayout=function(){var size=getSize(this.element);var hasSizes=this.size&&size;return hasSizes&&size.innerWidth!==this.size.innerWidth;};Outlayer.prototype.addItems=function(elems){var items=this._itemize(elems);if(items.length){this.items=this.items.concat(items);}
return items;};Outlayer.prototype.appended=function(elems){var items=this.addItems(elems);if(!items.length){return;}
this.layoutItems(items,true);this.reveal(items);};Outlayer.prototype.prepended=function(elems){var items=this._itemize(elems);if(!items.length){return;}
var previousItems=this.items.slice(0);this.items=items.concat(previousItems);this._resetLayout();this._manageStamps();this.layoutItems(items,true);this.reveal(items);this.layoutItems(previousItems);};Outlayer.prototype.reveal=function(items){this._emitCompleteOnItems('reveal',items);var len=items&&items.length;for(var i=0;len&&i<len;i++){var item=items[i];item.reveal();}};Outlayer.prototype.hide=function(items){this._emitCompleteOnItems('hide',items);var len=items&&items.length;for(var i=0;len&&i<len;i++){var item=items[i];item.hide();}};Outlayer.prototype.revealItemElements=function(elems){var items=this.getItems(elems);this.reveal(items);};Outlayer.prototype.hideItemElements=function(elems){var items=this.getItems(elems);this.hide(items);};Outlayer.prototype.getItem=function(elem){for(var i=0,len=this.items.length;i<len;i++){var item=this.items[i];if(item.element===elem){return item;}}};Outlayer.prototype.getItems=function(elems){elems=utils.makeArray(elems);var items=[];for(var i=0,len=elems.length;i<len;i++){var elem=elems[i];var item=this.getItem(elem);if(item){items.push(item);}}
return items;};Outlayer.prototype.remove=function(elems){var removeItems=this.getItems(elems);this._emitCompleteOnItems('remove',removeItems);if(!removeItems||!removeItems.length){return;}
for(var i=0,len=removeItems.length;i<len;i++){var item=removeItems[i];item.remove();utils.removeFrom(this.items,item);}};Outlayer.prototype.destroy=function(){var style=this.element.style;style.height='';style.position='';style.width='';for(var i=0,len=this.items.length;i<len;i++){var item=this.items[i];item.destroy();}
this.unbindResize();var id=this.element.outlayerGUID;delete instances[id];delete this.element.outlayerGUID;if(jQuery){jQuery.removeData(this.element,this.constructor.namespace);}};Outlayer.data=function(elem){elem=utils.getQueryElement(elem);var id=elem&&elem.outlayerGUID;return id&&instances[id];};Outlayer.create=function(namespace,options){function Layout(){Outlayer.apply(this,arguments);}
if(Object.create){Layout.prototype=Object.create(Outlayer.prototype);}else{utils.extend(Layout.prototype,Outlayer.prototype);}
Layout.prototype.constructor=Layout;Layout.defaults=utils.extend({},Outlayer.defaults);utils.extend(Layout.defaults,options);Layout.prototype.settings={};Layout.namespace=namespace;Layout.data=Outlayer.data;Layout.Item=function LayoutItem(){Item.apply(this,arguments);};Layout.Item.prototype=new Item();utils.htmlInit(Layout,namespace);if(jQuery&&jQuery.bridget){jQuery.bridget(namespace,Layout);}
return Layout;};Outlayer.Item=Item;return Outlayer;}));(function(window,factory){if(typeof define==='function'&&define.amd){define(['outlayer/outlayer','get-size/get-size','fizzy-ui-utils/utils'],factory);}else if(typeof exports==='object'){module.exports=factory(require('outlayer'),require('get-size'),require('fizzy-ui-utils'));}else{window.Masonry=factory(window.Outlayer,window.getSize,window.fizzyUIUtils);}}(window,function factory(Outlayer,getSize,utils){var Masonry=Outlayer.create('masonry');Masonry.prototype._resetLayout=function(){this.getSize();this._getMeasurement('columnWidth','outerWidth');this._getMeasurement('gutter','outerWidth');this.measureColumns();var i=this.cols;this.colYs=[];while(i--){this.colYs.push(0);}
this.maxY=0;};Masonry.prototype.measureColumns=function(){this.getContainerWidth();if(!this.columnWidth){var firstItem=this.items[0];var firstItemElem=firstItem&&firstItem.element;this.columnWidth=firstItemElem&&getSize(firstItemElem).outerWidth||this.containerWidth;}
var columnWidth=this.columnWidth+=this.gutter;var containerWidth=this.containerWidth+this.gutter;var cols=containerWidth/columnWidth;var excess=columnWidth-containerWidth%columnWidth;var mathMethod=excess&&excess<1?'round':'floor';cols=Math[mathMethod](cols);this.cols=Math.max(cols,1);};Masonry.prototype.getContainerWidth=function(){var container=this.options.isFitWidth?this.element.parentNode:this.element;var size=getSize(container);this.containerWidth=size&&size.innerWidth;};Masonry.prototype._getItemLayoutPosition=function(item){item.getSize();var remainder=item.size.outerWidth%this.columnWidth;var mathMethod=remainder&&remainder<1?'round':'ceil';var colSpan=Math[mathMethod](item.size.outerWidth/this.columnWidth);colSpan=Math.min(colSpan,this.cols);var colGroup=this._getColGroup(colSpan);var minimumY=Math.min.apply(Math,colGroup);var shortColIndex=utils.indexOf(colGroup,minimumY);var position={x:this.columnWidth*shortColIndex,y:minimumY};var setHeight=minimumY+item.size.outerHeight;var setSpan=this.cols+1-colGroup.length;for(var i=0;i<setSpan;i++){this.colYs[shortColIndex+i]=setHeight;}
return position;};Masonry.prototype._getColGroup=function(colSpan){if(colSpan<2){return this.colYs;}
var colGroup=[];var groupCount=this.cols+1-colSpan;for(var i=0;i<groupCount;i++){var groupColYs=this.colYs.slice(i,i+colSpan);colGroup[i]=Math.max.apply(Math,groupColYs);}
return colGroup;};Masonry.prototype._manageStamp=function(stamp){var stampSize=getSize(stamp);var offset=this._getElementOffset(stamp);var firstX=this.options.isOriginLeft?offset.left:offset.right;var lastX=firstX+stampSize.outerWidth;var firstCol=Math.floor(firstX/this.columnWidth);firstCol=Math.max(0,firstCol);var lastCol=Math.floor(lastX/this.columnWidth);lastCol-=lastX%this.columnWidth?0:1;lastCol=Math.min(this.cols-1,lastCol);var stampMaxY=(this.options.isOriginTop?offset.top:offset.bottom)+
stampSize.outerHeight;for(var i=firstCol;i<=lastCol;i++){this.colYs[i]=Math.max(stampMaxY,this.colYs[i]);}};Masonry.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var size={height:this.maxY};if(this.options.isFitWidth){size.width=this._getContainerFitWidth();}
return size;};Masonry.prototype._getContainerFitWidth=function(){var unusedCols=0;var i=this.cols;while(--i){if(this.colYs[i]!==0){break;}
unusedCols++;}
return(this.cols-unusedCols)*this.columnWidth-this.gutter;};Masonry.prototype.needsResizeLayout=function(){var previousWidth=this.containerWidth;this.getContainerWidth();return previousWidth!==this.containerWidth;};return Masonry;}));(function(window,factory){'use strict';if(typeof define=='function'&&define.amd){define(['eventEmitter/EventEmitter','eventie/eventie'],function(EventEmitter,eventie){return factory(window,EventEmitter,eventie);});}else if(typeof module=='object'&&module.exports){module.exports=factory(window,require('wolfy87-eventemitter'),require('eventie'));}else{window.imagesLoaded=factory(window,window.EventEmitter,window.eventie);}})(window,function factory(window,EventEmitter,eventie){'use strict';var $=window.jQuery;var console=window.console;function extend(a,b){for(var prop in b){a[prop]=b[prop];}
return a;}
var objToString=Object.prototype.toString;function isArray(obj){return objToString.call(obj)=='[object Array]';}
function makeArray(obj){var ary=[];if(isArray(obj)){ary=obj;}else if(typeof obj.length=='number'){for(var i=0;i<obj.length;i++){ary.push(obj[i]);}}else{ary.push(obj);}
return ary;}
function ImagesLoaded(elem,options,onAlways){if(!(this instanceof ImagesLoaded)){return new ImagesLoaded(elem,options,onAlways);}
if(typeof elem=='string'){elem=document.querySelectorAll(elem);}
this.elements=makeArray(elem);this.options=extend({},this.options);if(typeof options=='function'){onAlways=options;}else{extend(this.options,options);}
if(onAlways){this.on('always',onAlways);}
this.getImages();if($){this.jqDeferred=new $.Deferred();}
var _this=this;setTimeout(function(){_this.check();});}
ImagesLoaded.prototype=new EventEmitter();ImagesLoaded.prototype.options={};ImagesLoaded.prototype.getImages=function(){this.images=[];for(var i=0;i<this.elements.length;i++){var elem=this.elements[i];this.addElementImages(elem);}};ImagesLoaded.prototype.addElementImages=function(elem){if(elem.nodeName=='IMG'){this.addImage(elem);}
if(this.options.background===true){this.addElementBackgroundImages(elem);}
var nodeType=elem.nodeType;if(!nodeType||!elementNodeTypes[nodeType]){return;}
var childImgs=elem.querySelectorAll('img');for(var i=0;i<childImgs.length;i++){var img=childImgs[i];this.addImage(img);}
if(typeof this.options.background=='string'){var children=elem.querySelectorAll(this.options.background);for(i=0;i<children.length;i++){var child=children[i];this.addElementBackgroundImages(child);}}};var elementNodeTypes={1:true,9:true,11:true};ImagesLoaded.prototype.addElementBackgroundImages=function(elem){var style=getStyle(elem);var reURL=/url\(['"]*([^'"\)]+)['"]*\)/gi;var matches=reURL.exec(style.backgroundImage);while(matches!==null){var url=matches&&matches[1];if(url){this.addBackground(url,elem);}
matches=reURL.exec(style.backgroundImage);}};var getStyle=window.getComputedStyle||function(elem){return elem.currentStyle;};ImagesLoaded.prototype.addImage=function(img){var loadingImage=new LoadingImage(img);this.images.push(loadingImage);};ImagesLoaded.prototype.addBackground=function(url,elem){var background=new Background(url,elem);this.images.push(background);};ImagesLoaded.prototype.check=function(){var _this=this;this.progressedCount=0;this.hasAnyBroken=false;if(!this.images.length){this.complete();return;}
function onProgress(image,elem,message){setTimeout(function(){_this.progress(image,elem,message);});}
for(var i=0;i<this.images.length;i++){var loadingImage=this.images[i];loadingImage.once('progress',onProgress);loadingImage.check();}};ImagesLoaded.prototype.progress=function(image,elem,message){this.progressedCount++;this.hasAnyBroken=this.hasAnyBroken||!image.isLoaded;this.emit('progress',this,image,elem);if(this.jqDeferred&&this.jqDeferred.notify){this.jqDeferred.notify(this,image);}
if(this.progressedCount==this.images.length){this.complete();}
if(this.options.debug&&console){console.log('progress: '+message,image,elem);}};ImagesLoaded.prototype.complete=function(){var eventName=this.hasAnyBroken?'fail':'done';this.isComplete=true;this.emit(eventName,this);this.emit('always',this);if(this.jqDeferred){var jqMethod=this.hasAnyBroken?'reject':'resolve';this.jqDeferred[jqMethod](this);}};function LoadingImage(img){this.img=img;}
LoadingImage.prototype=new EventEmitter();LoadingImage.prototype.check=function(){var isComplete=this.getIsImageComplete();if(isComplete){this.confirm(this.img.naturalWidth!==0,'naturalWidth');return;}
this.proxyImage=new Image();eventie.bind(this.proxyImage,'load',this);eventie.bind(this.proxyImage,'error',this);eventie.bind(this.img,'load',this);eventie.bind(this.img,'error',this);this.proxyImage.src=this.img.src;};LoadingImage.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth!==undefined;};LoadingImage.prototype.confirm=function(isLoaded,message){this.isLoaded=isLoaded;this.emit('progress',this,this.img,message);};LoadingImage.prototype.handleEvent=function(event){var method='on'+event.type;if(this[method]){this[method](event);}};LoadingImage.prototype.onload=function(){this.confirm(true,'onload');this.unbindEvents();};LoadingImage.prototype.onerror=function(){this.confirm(false,'onerror');this.unbindEvents();};LoadingImage.prototype.unbindEvents=function(){eventie.unbind(this.proxyImage,'load',this);eventie.unbind(this.proxyImage,'error',this);eventie.unbind(this.img,'load',this);eventie.unbind(this.img,'error',this);};function Background(url,element){this.url=url;this.element=element;this.img=new Image();}
Background.prototype=new LoadingImage();Background.prototype.check=function(){eventie.bind(this.img,'load',this);eventie.bind(this.img,'error',this);this.img.src=this.url;var isComplete=this.getIsImageComplete();if(isComplete){this.confirm(this.img.naturalWidth!==0,'naturalWidth');this.unbindEvents();}};Background.prototype.unbindEvents=function(){eventie.unbind(this.img,'load',this);eventie.unbind(this.img,'error',this);};Background.prototype.confirm=function(isLoaded,message){this.isLoaded=isLoaded;this.emit('progress',this,this.element,message);};ImagesLoaded.makeJQueryPlugin=function(jQuery){jQuery=jQuery||window.jQuery;if(!jQuery){return;}
$=jQuery;$.fn.imagesLoaded=function(options,callback){var instance=new ImagesLoaded(this,options,callback);return instance.jqDeferred.promise($(this));};};ImagesLoaded.makeJQueryPlugin();return ImagesLoaded;});(function(window,document,undefined){'use strict';function minErr(module,ErrorConstructor){ErrorConstructor=ErrorConstructor||Error;return function(){var SKIP_INDEXES=2;var templateArgs=arguments,code=templateArgs[0],message='['+(module?module+':':'')+code+'] ',template=templateArgs[1],paramPrefix,i;message+=template.replace(/\{\d+\}/g,function(match){var index=+match.slice(1,-1),shiftedIndex=index+SKIP_INDEXES;if(shiftedIndex<templateArgs.length){return toDebugString(templateArgs[shiftedIndex]);}
return match;});message+='\nhttp://errors.angularjs.org/1.4.7/'+
(module?module+'/':'')+code;for(i=SKIP_INDEXES,paramPrefix='?';i<templateArgs.length;i++,paramPrefix='&'){message+=paramPrefix+'p'+(i-SKIP_INDEXES)+'='+
encodeURIComponent(toDebugString(templateArgs[i]));}
return new ErrorConstructor(message);};}
var REGEX_STRING_REGEXP=/^\/(.+)\/([a-z]*)$/;var VALIDITY_STATE_PROPERTY='validity';var lowercase=function(string){return isString(string)?string.toLowerCase():string;};var hasOwnProperty=Object.prototype.hasOwnProperty;var uppercase=function(string){return isString(string)?string.toUpperCase():string;};var manualLowercase=function(s){return isString(s)?s.replace(/[A-Z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0)|32);}):s;};var manualUppercase=function(s){return isString(s)?s.replace(/[a-z]/g,function(ch){return String.fromCharCode(ch.charCodeAt(0)&~32);}):s;};if('i'!=='I'.toLowerCase()){lowercase=manualLowercase;uppercase=manualUppercase;}
var
msie,jqLite,jQuery,slice=[].slice,splice=[].splice,push=[].push,toString=Object.prototype.toString,getPrototypeOf=Object.getPrototypeOf,ngMinErr=minErr('ng'),angular=window.angular||(window.angular={}),angularModule,uid=0;msie=document.documentMode;function isArrayLike(obj){if(obj==null||isWindow(obj)){return false;}
var length="length"in Object(obj)&&obj.length;if(obj.nodeType===NODE_TYPE_ELEMENT&&length){return true;}
return isString(obj)||isArray(obj)||length===0||typeof length==='number'&&length>0&&(length-1)in obj;}
function forEach(obj,iterator,context){var key,length;if(obj){if(isFunction(obj)){for(key in obj){if(key!='prototype'&&key!='length'&&key!='name'&&(!obj.hasOwnProperty||obj.hasOwnProperty(key))){iterator.call(context,obj[key],key,obj);}}}else if(isArray(obj)||isArrayLike(obj)){var isPrimitive=typeof obj!=='object';for(key=0,length=obj.length;key<length;key++){if(isPrimitive||key in obj){iterator.call(context,obj[key],key,obj);}}}else if(obj.forEach&&obj.forEach!==forEach){obj.forEach(iterator,context,obj);}else if(isBlankObject(obj)){for(key in obj){iterator.call(context,obj[key],key,obj);}}else if(typeof obj.hasOwnProperty==='function'){for(key in obj){if(obj.hasOwnProperty(key)){iterator.call(context,obj[key],key,obj);}}}else{for(key in obj){if(hasOwnProperty.call(obj,key)){iterator.call(context,obj[key],key,obj);}}}}
return obj;}
function forEachSorted(obj,iterator,context){var keys=Object.keys(obj).sort();for(var i=0;i<keys.length;i++){iterator.call(context,obj[keys[i]],keys[i]);}
return keys;}
function reverseParams(iteratorFn){return function(value,key){iteratorFn(key,value);};}
function nextUid(){return++uid;}
function setHashKey(obj,h){if(h){obj.$$hashKey=h;}else{delete obj.$$hashKey;}}
function baseExtend(dst,objs,deep){var h=dst.$$hashKey;for(var i=0,ii=objs.length;i<ii;++i){var obj=objs[i];if(!isObject(obj)&&!isFunction(obj))continue;var keys=Object.keys(obj);for(var j=0,jj=keys.length;j<jj;j++){var key=keys[j];var src=obj[key];if(deep&&isObject(src)){if(isDate(src)){dst[key]=new Date(src.valueOf());}else if(isRegExp(src)){dst[key]=new RegExp(src);}else{if(!isObject(dst[key]))dst[key]=isArray(src)?[]:{};baseExtend(dst[key],[src],true);}}else{dst[key]=src;}}}
setHashKey(dst,h);return dst;}
function extend(dst){return baseExtend(dst,slice.call(arguments,1),false);}
function merge(dst){return baseExtend(dst,slice.call(arguments,1),true);}
function toInt(str){return parseInt(str,10);}
function inherit(parent,extra){return extend(Object.create(parent),extra);}
function noop(){}
noop.$inject=[];function identity($){return $;}
identity.$inject=[];function valueFn(value){return function(){return value;};}
function hasCustomToString(obj){return isFunction(obj.toString)&&obj.toString!==Object.prototype.toString;}
function isUndefined(value){return typeof value==='undefined';}
function isDefined(value){return typeof value!=='undefined';}
function isObject(value){return value!==null&&typeof value==='object';}
function isBlankObject(value){return value!==null&&typeof value==='object'&&!getPrototypeOf(value);}
function isString(value){return typeof value==='string';}
function isNumber(value){return typeof value==='number';}
function isDate(value){return toString.call(value)==='[object Date]';}
var isArray=Array.isArray;function isFunction(value){return typeof value==='function';}
function isRegExp(value){return toString.call(value)==='[object RegExp]';}
function isWindow(obj){return obj&&obj.window===obj;}
function isScope(obj){return obj&&obj.$evalAsync&&obj.$watch;}
function isFile(obj){return toString.call(obj)==='[object File]';}
function isFormData(obj){return toString.call(obj)==='[object FormData]';}
function isBlob(obj){return toString.call(obj)==='[object Blob]';}
function isBoolean(value){return typeof value==='boolean';}
function isPromiseLike(obj){return obj&&isFunction(obj.then);}
var TYPED_ARRAY_REGEXP=/^\[object (Uint8(Clamped)?)|(Uint16)|(Uint32)|(Int8)|(Int16)|(Int32)|(Float(32)|(64))Array\]$/;function isTypedArray(value){return TYPED_ARRAY_REGEXP.test(toString.call(value));}
var trim=function(value){return isString(value)?value.trim():value;};var escapeForRegexp=function(s){return s.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,'\\$1').replace(/\x08/g,'\\x08');};function isElement(node){return!!(node&&(node.nodeName||(node.prop&&node.attr&&node.find)));}
function makeMap(str){var obj={},items=str.split(","),i;for(i=0;i<items.length;i++){obj[items[i]]=true;}
return obj;}
function nodeName_(element){return lowercase(element.nodeName||(element[0]&&element[0].nodeName));}
function includes(array,obj){return Array.prototype.indexOf.call(array,obj)!=-1;}
function arrayRemove(array,value){var index=array.indexOf(value);if(index>=0){array.splice(index,1);}
return index;}
function copy(source,destination,stackSource,stackDest){if(isWindow(source)||isScope(source)){throw ngMinErr('cpws',"Can't copy! Making copies of Window or Scope instances is not supported.");}
if(isTypedArray(destination)){throw ngMinErr('cpta',"Can't copy! TypedArray destination cannot be mutated.");}
if(!destination){destination=source;if(isObject(source)){var index;if(stackSource&&(index=stackSource.indexOf(source))!==-1){return stackDest[index];}
if(isArray(source)){return copy(source,[],stackSource,stackDest);}else if(isTypedArray(source)){destination=new source.constructor(source);}else if(isDate(source)){destination=new Date(source.getTime());}else if(isRegExp(source)){destination=new RegExp(source.source,source.toString().match(/[^\/]*$/)[0]);destination.lastIndex=source.lastIndex;}else if(isFunction(source.cloneNode)){destination=source.cloneNode(true);}else{var emptyObject=Object.create(getPrototypeOf(source));return copy(source,emptyObject,stackSource,stackDest);}
if(stackDest){stackSource.push(source);stackDest.push(destination);}}}else{if(source===destination)throw ngMinErr('cpi',"Can't copy! Source and destination are identical.");stackSource=stackSource||[];stackDest=stackDest||[];if(isObject(source)){stackSource.push(source);stackDest.push(destination);}
var result,key;if(isArray(source)){destination.length=0;for(var i=0;i<source.length;i++){destination.push(copy(source[i],null,stackSource,stackDest));}}else{var h=destination.$$hashKey;if(isArray(destination)){destination.length=0;}else{forEach(destination,function(value,key){delete destination[key];});}
if(isBlankObject(source)){for(key in source){destination[key]=copy(source[key],null,stackSource,stackDest);}}else if(source&&typeof source.hasOwnProperty==='function'){for(key in source){if(source.hasOwnProperty(key)){destination[key]=copy(source[key],null,stackSource,stackDest);}}}else{for(key in source){if(hasOwnProperty.call(source,key)){destination[key]=copy(source[key],null,stackSource,stackDest);}}}
setHashKey(destination,h);}}
return destination;}
function shallowCopy(src,dst){if(isArray(src)){dst=dst||[];for(var i=0,ii=src.length;i<ii;i++){dst[i]=src[i];}}else if(isObject(src)){dst=dst||{};for(var key in src){if(!(key.charAt(0)==='$'&&key.charAt(1)==='$')){dst[key]=src[key];}}}
return dst||src;}
function equals(o1,o2){if(o1===o2)return true;if(o1===null||o2===null)return false;if(o1!==o1&&o2!==o2)return true;var t1=typeof o1,t2=typeof o2,length,key,keySet;if(t1==t2){if(t1=='object'){if(isArray(o1)){if(!isArray(o2))return false;if((length=o1.length)==o2.length){for(key=0;key<length;key++){if(!equals(o1[key],o2[key]))return false;}
return true;}}else if(isDate(o1)){if(!isDate(o2))return false;return equals(o1.getTime(),o2.getTime());}else if(isRegExp(o1)){return isRegExp(o2)?o1.toString()==o2.toString():false;}else{if(isScope(o1)||isScope(o2)||isWindow(o1)||isWindow(o2)||isArray(o2)||isDate(o2)||isRegExp(o2))return false;keySet=createMap();for(key in o1){if(key.charAt(0)==='$'||isFunction(o1[key]))continue;if(!equals(o1[key],o2[key]))return false;keySet[key]=true;}
for(key in o2){if(!(key in keySet)&&key.charAt(0)!=='$'&&isDefined(o2[key])&&!isFunction(o2[key]))return false;}
return true;}}}
return false;}
var csp=function(){if(!isDefined(csp.rules)){var ngCspElement=(document.querySelector('[ng-csp]')||document.querySelector('[data-ng-csp]'));if(ngCspElement){var ngCspAttribute=ngCspElement.getAttribute('ng-csp')||ngCspElement.getAttribute('data-ng-csp');csp.rules={noUnsafeEval:!ngCspAttribute||(ngCspAttribute.indexOf('no-unsafe-eval')!==-1),noInlineStyle:!ngCspAttribute||(ngCspAttribute.indexOf('no-inline-style')!==-1)};}else{csp.rules={noUnsafeEval:noUnsafeEval(),noInlineStyle:false};}}
return csp.rules;function noUnsafeEval(){try{new Function('');return false;}catch(e){return true;}}};var jq=function(){if(isDefined(jq.name_))return jq.name_;var el;var i,ii=ngAttrPrefixes.length,prefix,name;for(i=0;i<ii;++i){prefix=ngAttrPrefixes[i];if(el=document.querySelector('['+prefix.replace(':','\\:')+'jq]')){name=el.getAttribute(prefix+'jq');break;}}
return(jq.name_=name);};function concat(array1,array2,index){return array1.concat(slice.call(array2,index));}
function sliceArgs(args,startIndex){return slice.call(args,startIndex||0);}
function bind(self,fn){var curryArgs=arguments.length>2?sliceArgs(arguments,2):[];if(isFunction(fn)&&!(fn instanceof RegExp)){return curryArgs.length?function(){return arguments.length?fn.apply(self,concat(curryArgs,arguments,0)):fn.apply(self,curryArgs);}:function(){return arguments.length?fn.apply(self,arguments):fn.call(self);};}else{return fn;}}
function toJsonReplacer(key,value){var val=value;if(typeof key==='string'&&key.charAt(0)==='$'&&key.charAt(1)==='$'){val=undefined;}else if(isWindow(value)){val='$WINDOW';}else if(value&&document===value){val='$DOCUMENT';}else if(isScope(value)){val='$SCOPE';}
return val;}
function toJson(obj,pretty){if(typeof obj==='undefined')return undefined;if(!isNumber(pretty)){pretty=pretty?2:null;}
return JSON.stringify(obj,toJsonReplacer,pretty);}
function fromJson(json){return isString(json)?JSON.parse(json):json;}
function timezoneToOffset(timezone,fallback){var requestedTimezoneOffset=Date.parse('Jan 01, 1970 00:00:00 '+timezone)/60000;return isNaN(requestedTimezoneOffset)?fallback:requestedTimezoneOffset;}
function addDateMinutes(date,minutes){date=new Date(date.getTime());date.setMinutes(date.getMinutes()+minutes);return date;}
function convertTimezoneToLocal(date,timezone,reverse){reverse=reverse?-1:1;var timezoneOffset=timezoneToOffset(timezone,date.getTimezoneOffset());return addDateMinutes(date,reverse*(timezoneOffset-date.getTimezoneOffset()));}
function startingTag(element){element=jqLite(element).clone();try{element.empty();}catch(e){}
var elemHtml=jqLite('<div>').append(element).html();try{return element[0].nodeType===NODE_TYPE_TEXT?lowercase(elemHtml):elemHtml.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(match,nodeName){return'<'+lowercase(nodeName);});}catch(e){return lowercase(elemHtml);}}
function tryDecodeURIComponent(value){try{return decodeURIComponent(value);}catch(e){}}
function parseKeyValue(keyValue){var obj={};forEach((keyValue||"").split('&'),function(keyValue){var splitPoint,key,val;if(keyValue){key=keyValue=keyValue.replace(/\+/g,'%20');splitPoint=keyValue.indexOf('=');if(splitPoint!==-1){key=keyValue.substring(0,splitPoint);val=keyValue.substring(splitPoint+1);}
key=tryDecodeURIComponent(key);if(isDefined(key)){val=isDefined(val)?tryDecodeURIComponent(val):true;if(!hasOwnProperty.call(obj,key)){obj[key]=val;}else if(isArray(obj[key])){obj[key].push(val);}else{obj[key]=[obj[key],val];}}}});return obj;}
function toKeyValue(obj){var parts=[];forEach(obj,function(value,key){if(isArray(value)){forEach(value,function(arrayValue){parts.push(encodeUriQuery(key,true)+
(arrayValue===true?'':'='+encodeUriQuery(arrayValue,true)));});}else{parts.push(encodeUriQuery(key,true)+
(value===true?'':'='+encodeUriQuery(value,true)));}});return parts.length?parts.join('&'):'';}
function encodeUriSegment(val){return encodeUriQuery(val,true).replace(/%26/gi,'&').replace(/%3D/gi,'=').replace(/%2B/gi,'+');}
function encodeUriQuery(val,pctEncodeSpaces){return encodeURIComponent(val).replace(/%40/gi,'@').replace(/%3A/gi,':').replace(/%24/g,'$').replace(/%2C/gi,',').replace(/%3B/gi,';').replace(/%20/g,(pctEncodeSpaces?'%20':'+'));}
var ngAttrPrefixes=['ng-','data-ng-','ng:','x-ng-'];function getNgAttribute(element,ngAttr){var attr,i,ii=ngAttrPrefixes.length;for(i=0;i<ii;++i){attr=ngAttrPrefixes[i]+ngAttr;if(isString(attr=element.getAttribute(attr))){return attr;}}
return null;}
function angularInit(element,bootstrap){var appElement,module,config={};forEach(ngAttrPrefixes,function(prefix){var name=prefix+'app';if(!appElement&&element.hasAttribute&&element.hasAttribute(name)){appElement=element;module=element.getAttribute(name);}});forEach(ngAttrPrefixes,function(prefix){var name=prefix+'app';var candidate;if(!appElement&&(candidate=element.querySelector('['+name.replace(':','\\:')+']'))){appElement=candidate;module=candidate.getAttribute(name);}});if(appElement){config.strictDi=getNgAttribute(appElement,"strict-di")!==null;bootstrap(appElement,module?[module]:[],config);}}
function bootstrap(element,modules,config){if(!isObject(config))config={};var defaultConfig={strictDi:false};config=extend(defaultConfig,config);var doBootstrap=function(){element=jqLite(element);if(element.injector()){var tag=(element[0]===document)?'document':startingTag(element);throw ngMinErr('btstrpd',"App Already Bootstrapped with this Element '{0}'",tag.replace(/</,'&lt;').replace(/>/,'&gt;'));}
modules=modules||[];modules.unshift(['$provide',function($provide){$provide.value('$rootElement',element);}]);if(config.debugInfoEnabled){modules.push(['$compileProvider',function($compileProvider){$compileProvider.debugInfoEnabled(true);}]);}
modules.unshift('ng');var injector=createInjector(modules,config.strictDi);injector.invoke(['$rootScope','$rootElement','$compile','$injector',function bootstrapApply(scope,element,compile,injector){scope.$apply(function(){element.data('$injector',injector);compile(element)(scope);});}]);return injector;};var NG_ENABLE_DEBUG_INFO=/^NG_ENABLE_DEBUG_INFO!/;var NG_DEFER_BOOTSTRAP=/^NG_DEFER_BOOTSTRAP!/;if(window&&NG_ENABLE_DEBUG_INFO.test(window.name)){config.debugInfoEnabled=true;window.name=window.name.replace(NG_ENABLE_DEBUG_INFO,'');}
if(window&&!NG_DEFER_BOOTSTRAP.test(window.name)){return doBootstrap();}
window.name=window.name.replace(NG_DEFER_BOOTSTRAP,'');angular.resumeBootstrap=function(extraModules){forEach(extraModules,function(module){modules.push(module);});return doBootstrap();};if(isFunction(angular.resumeDeferredBootstrap)){angular.resumeDeferredBootstrap();}}
function reloadWithDebugInfo(){window.name='NG_ENABLE_DEBUG_INFO!'+window.name;window.location.reload();}
function getTestability(rootElement){var injector=angular.element(rootElement).injector();if(!injector){throw ngMinErr('test','no injector found for element argument to getTestability');}
return injector.get('$$testability');}
var SNAKE_CASE_REGEXP=/[A-Z]/g;function snake_case(name,separator){separator=separator||'_';return name.replace(SNAKE_CASE_REGEXP,function(letter,pos){return(pos?separator:'')+letter.toLowerCase();});}
var bindJQueryFired=false;var skipDestroyOnNextJQueryCleanData;function bindJQuery(){var originalCleanData;if(bindJQueryFired){return;}
var jqName=jq();jQuery=isUndefined(jqName)?window.jQuery:!jqName?undefined:window[jqName];if(jQuery&&jQuery.fn.on){jqLite=jQuery;extend(jQuery.fn,{scope:JQLitePrototype.scope,isolateScope:JQLitePrototype.isolateScope,controller:JQLitePrototype.controller,injector:JQLitePrototype.injector,inheritedData:JQLitePrototype.inheritedData});originalCleanData=jQuery.cleanData;jQuery.cleanData=function(elems){var events;if(!skipDestroyOnNextJQueryCleanData){for(var i=0,elem;(elem=elems[i])!=null;i++){events=jQuery._data(elem,"events");if(events&&events.$destroy){jQuery(elem).triggerHandler('$destroy');}}}else{skipDestroyOnNextJQueryCleanData=false;}
originalCleanData(elems);};}else{jqLite=JQLite;}
angular.element=jqLite;bindJQueryFired=true;}
function assertArg(arg,name,reason){if(!arg){throw ngMinErr('areq',"Argument '{0}' is {1}",(name||'?'),(reason||"required"));}
return arg;}
function assertArgFn(arg,name,acceptArrayAnnotation){if(acceptArrayAnnotation&&isArray(arg)){arg=arg[arg.length-1];}
assertArg(isFunction(arg),name,'not a function, got '+
(arg&&typeof arg==='object'?arg.constructor.name||'Object':typeof arg));return arg;}
function assertNotHasOwnProperty(name,context){if(name==='hasOwnProperty'){throw ngMinErr('badname',"hasOwnProperty is not a valid {0} name",context);}}
function getter(obj,path,bindFnToScope){if(!path)return obj;var keys=path.split('.');var key;var lastInstance=obj;var len=keys.length;for(var i=0;i<len;i++){key=keys[i];if(obj){obj=(lastInstance=obj)[key];}}
if(!bindFnToScope&&isFunction(obj)){return bind(lastInstance,obj);}
return obj;}
function getBlockNodes(nodes){var node=nodes[0];var endNode=nodes[nodes.length-1];var blockNodes;for(var i=1;node!==endNode&&(node=node.nextSibling);i++){if(blockNodes||nodes[i]!==node){if(!blockNodes){blockNodes=jqLite(slice.call(nodes,0,i));}
blockNodes.push(node);}}
return blockNodes||nodes;}
function createMap(){return Object.create(null);}
var NODE_TYPE_ELEMENT=1;var NODE_TYPE_ATTRIBUTE=2;var NODE_TYPE_TEXT=3;var NODE_TYPE_COMMENT=8;var NODE_TYPE_DOCUMENT=9;var NODE_TYPE_DOCUMENT_FRAGMENT=11;function setupModuleLoader(window){var $injectorMinErr=minErr('$injector');var ngMinErr=minErr('ng');function ensure(obj,name,factory){return obj[name]||(obj[name]=factory());}
var angular=ensure(window,'angular',Object);angular.$$minErr=angular.$$minErr||minErr;return ensure(angular,'module',function(){var modules={};return function module(name,requires,configFn){var assertNotHasOwnProperty=function(name,context){if(name==='hasOwnProperty'){throw ngMinErr('badname','hasOwnProperty is not a valid {0} name',context);}};assertNotHasOwnProperty(name,'module');if(requires&&modules.hasOwnProperty(name)){modules[name]=null;}
return ensure(modules,name,function(){if(!requires){throw $injectorMinErr('nomod',"Module '{0}' is not available! You either misspelled "+"the module name or forgot to load it. If registering a module ensure that you "+"specify the dependencies as the second argument.",name);}
var invokeQueue=[];var configBlocks=[];var runBlocks=[];var config=invokeLater('$injector','invoke','push',configBlocks);var moduleInstance={_invokeQueue:invokeQueue,_configBlocks:configBlocks,_runBlocks:runBlocks,requires:requires,name:name,provider:invokeLaterAndSetModuleName('$provide','provider'),factory:invokeLaterAndSetModuleName('$provide','factory'),service:invokeLaterAndSetModuleName('$provide','service'),value:invokeLater('$provide','value'),constant:invokeLater('$provide','constant','unshift'),decorator:invokeLaterAndSetModuleName('$provide','decorator'),animation:invokeLaterAndSetModuleName('$animateProvider','register'),filter:invokeLaterAndSetModuleName('$filterProvider','register'),controller:invokeLaterAndSetModuleName('$controllerProvider','register'),directive:invokeLaterAndSetModuleName('$compileProvider','directive'),config:config,run:function(block){runBlocks.push(block);return this;}};if(configFn){config(configFn);}
return moduleInstance;function invokeLater(provider,method,insertMethod,queue){if(!queue)queue=invokeQueue;return function(){queue[insertMethod||'push']([provider,method,arguments]);return moduleInstance;};}
function invokeLaterAndSetModuleName(provider,method){return function(recipeName,factoryFunction){if(factoryFunction&&isFunction(factoryFunction))factoryFunction.$$moduleName=name;invokeQueue.push([provider,method,arguments]);return moduleInstance;};}});};});}
function serializeObject(obj){var seen=[];return JSON.stringify(obj,function(key,val){val=toJsonReplacer(key,val);if(isObject(val)){if(seen.indexOf(val)>=0)return'...';seen.push(val);}
return val;});}
function toDebugString(obj){if(typeof obj==='function'){return obj.toString().replace(/ \{[\s\S]*$/,'');}else if(isUndefined(obj)){return'undefined';}else if(typeof obj!=='string'){return serializeObject(obj);}
return obj;}
var version={full:'1.4.7',major:1,minor:4,dot:7,codeName:'dark-luminescence'};function publishExternalAPI(angular){extend(angular,{'bootstrap':bootstrap,'copy':copy,'extend':extend,'merge':merge,'equals':equals,'element':jqLite,'forEach':forEach,'injector':createInjector,'noop':noop,'bind':bind,'toJson':toJson,'fromJson':fromJson,'identity':identity,'isUndefined':isUndefined,'isDefined':isDefined,'isString':isString,'isFunction':isFunction,'isObject':isObject,'isNumber':isNumber,'isElement':isElement,'isArray':isArray,'version':version,'isDate':isDate,'lowercase':lowercase,'uppercase':uppercase,'callbacks':{counter:0},'getTestability':getTestability,'$$minErr':minErr,'$$csp':csp,'reloadWithDebugInfo':reloadWithDebugInfo});angularModule=setupModuleLoader(window);angularModule('ng',['ngLocale'],['$provide',function ngModule($provide){$provide.provider({$$sanitizeUri:$$SanitizeUriProvider});$provide.provider('$compile',$CompileProvider).directive({a:htmlAnchorDirective,input:inputDirective,textarea:inputDirective,form:formDirective,script:scriptDirective,select:selectDirective,style:styleDirective,option:optionDirective,ngBind:ngBindDirective,ngBindHtml:ngBindHtmlDirective,ngBindTemplate:ngBindTemplateDirective,ngClass:ngClassDirective,ngClassEven:ngClassEvenDirective,ngClassOdd:ngClassOddDirective,ngCloak:ngCloakDirective,ngController:ngControllerDirective,ngForm:ngFormDirective,ngHide:ngHideDirective,ngIf:ngIfDirective,ngInclude:ngIncludeDirective,ngInit:ngInitDirective,ngNonBindable:ngNonBindableDirective,ngPluralize:ngPluralizeDirective,ngRepeat:ngRepeatDirective,ngShow:ngShowDirective,ngStyle:ngStyleDirective,ngSwitch:ngSwitchDirective,ngSwitchWhen:ngSwitchWhenDirective,ngSwitchDefault:ngSwitchDefaultDirective,ngOptions:ngOptionsDirective,ngTransclude:ngTranscludeDirective,ngModel:ngModelDirective,ngList:ngListDirective,ngChange:ngChangeDirective,pattern:patternDirective,ngPattern:patternDirective,required:requiredDirective,ngRequired:requiredDirective,minlength:minlengthDirective,ngMinlength:minlengthDirective,maxlength:maxlengthDirective,ngMaxlength:maxlengthDirective,ngValue:ngValueDirective,ngModelOptions:ngModelOptionsDirective}).directive({ngInclude:ngIncludeFillContentDirective}).directive(ngAttributeAliasDirectives).directive(ngEventDirectives);$provide.provider({$anchorScroll:$AnchorScrollProvider,$animate:$AnimateProvider,$animateCss:$CoreAnimateCssProvider,$$animateQueue:$$CoreAnimateQueueProvider,$$AnimateRunner:$$CoreAnimateRunnerProvider,$browser:$BrowserProvider,$cacheFactory:$CacheFactoryProvider,$controller:$ControllerProvider,$document:$DocumentProvider,$exceptionHandler:$ExceptionHandlerProvider,$filter:$FilterProvider,$$forceReflow:$$ForceReflowProvider,$interpolate:$InterpolateProvider,$interval:$IntervalProvider,$http:$HttpProvider,$httpParamSerializer:$HttpParamSerializerProvider,$httpParamSerializerJQLike:$HttpParamSerializerJQLikeProvider,$httpBackend:$HttpBackendProvider,$xhrFactory:$xhrFactoryProvider,$location:$LocationProvider,$log:$LogProvider,$parse:$ParseProvider,$rootScope:$RootScopeProvider,$q:$QProvider,$$q:$$QProvider,$sce:$SceProvider,$sceDelegate:$SceDelegateProvider,$sniffer:$SnifferProvider,$templateCache:$TemplateCacheProvider,$templateRequest:$TemplateRequestProvider,$$testability:$$TestabilityProvider,$timeout:$TimeoutProvider,$window:$WindowProvider,$$rAF:$$RAFProvider,$$jqLite:$$jqLiteProvider,$$HashMap:$$HashMapProvider,$$cookieReader:$$CookieReaderProvider});}]);}
JQLite.expando='ng339';var jqCache=JQLite.cache={},jqId=1,addEventListenerFn=function(element,type,fn){element.addEventListener(type,fn,false);},removeEventListenerFn=function(element,type,fn){element.removeEventListener(type,fn,false);};JQLite._data=function(node){return this.cache[node[this.expando]]||{};};function jqNextId(){return++jqId;}
var SPECIAL_CHARS_REGEXP=/([\:\-\_]+(.))/g;var MOZ_HACK_REGEXP=/^moz([A-Z])/;var MOUSE_EVENT_MAP={mouseleave:"mouseout",mouseenter:"mouseover"};var jqLiteMinErr=minErr('jqLite');function camelCase(name){return name.replace(SPECIAL_CHARS_REGEXP,function(_,separator,letter,offset){return offset?letter.toUpperCase():letter;}).replace(MOZ_HACK_REGEXP,'Moz$1');}
var SINGLE_TAG_REGEXP=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/;var HTML_REGEXP=/<|&#?\w+;/;var TAG_NAME_REGEXP=/<([\w:-]+)/;var XHTML_TAG_REGEXP=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi;var wrapMap={'option':[1,'<select multiple="multiple">','</select>'],'thead':[1,'<table>','</table>'],'col':[2,'<table><colgroup>','</colgroup></table>'],'tr':[2,'<table><tbody>','</tbody></table>'],'td':[3,'<table><tbody><tr>','</tr></tbody></table>'],'_default':[0,"",""]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;function jqLiteIsTextNode(html){return!HTML_REGEXP.test(html);}
function jqLiteAcceptsData(node){var nodeType=node.nodeType;return nodeType===NODE_TYPE_ELEMENT||!nodeType||nodeType===NODE_TYPE_DOCUMENT;}
function jqLiteHasData(node){for(var key in jqCache[node.ng339]){return true;}
return false;}
function jqLiteBuildFragment(html,context){var tmp,tag,wrap,fragment=context.createDocumentFragment(),nodes=[],i;if(jqLiteIsTextNode(html)){nodes.push(context.createTextNode(html));}else{tmp=tmp||fragment.appendChild(context.createElement("div"));tag=(TAG_NAME_REGEXP.exec(html)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+html.replace(XHTML_TAG_REGEXP,"<$1></$2>")+wrap[2];i=wrap[0];while(i--){tmp=tmp.lastChild;}
nodes=concat(nodes,tmp.childNodes);tmp=fragment.firstChild;tmp.textContent="";}
fragment.textContent="";fragment.innerHTML="";forEach(nodes,function(node){fragment.appendChild(node);});return fragment;}
function jqLiteParseHTML(html,context){context=context||document;var parsed;if((parsed=SINGLE_TAG_REGEXP.exec(html))){return[context.createElement(parsed[1])];}
if((parsed=jqLiteBuildFragment(html,context))){return parsed.childNodes;}
return[];}
function JQLite(element){if(element instanceof JQLite){return element;}
var argIsString;if(isString(element)){element=trim(element);argIsString=true;}
if(!(this instanceof JQLite)){if(argIsString&&element.charAt(0)!='<'){throw jqLiteMinErr('nosel','Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element');}
return new JQLite(element);}
if(argIsString){jqLiteAddNodes(this,jqLiteParseHTML(element));}else{jqLiteAddNodes(this,element);}}
function jqLiteClone(element){return element.cloneNode(true);}
function jqLiteDealoc(element,onlyDescendants){if(!onlyDescendants)jqLiteRemoveData(element);if(element.querySelectorAll){var descendants=element.querySelectorAll('*');for(var i=0,l=descendants.length;i<l;i++){jqLiteRemoveData(descendants[i]);}}}
function jqLiteOff(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr('offargs','jqLite#off() does not support the `selector` argument');var expandoStore=jqLiteExpandoStore(element);var events=expandoStore&&expandoStore.events;var handle=expandoStore&&expandoStore.handle;if(!handle)return;if(!type){for(type in events){if(type!=='$destroy'){removeEventListenerFn(element,type,handle);}
delete events[type];}}else{forEach(type.split(' '),function(type){if(isDefined(fn)){var listenerFns=events[type];arrayRemove(listenerFns||[],fn);if(listenerFns&&listenerFns.length>0){return;}}
removeEventListenerFn(element,type,handle);delete events[type];});}}
function jqLiteRemoveData(element,name){var expandoId=element.ng339;var expandoStore=expandoId&&jqCache[expandoId];if(expandoStore){if(name){delete expandoStore.data[name];return;}
if(expandoStore.handle){if(expandoStore.events.$destroy){expandoStore.handle({},'$destroy');}
jqLiteOff(element);}
delete jqCache[expandoId];element.ng339=undefined;}}
function jqLiteExpandoStore(element,createIfNecessary){var expandoId=element.ng339,expandoStore=expandoId&&jqCache[expandoId];if(createIfNecessary&&!expandoStore){element.ng339=expandoId=jqNextId();expandoStore=jqCache[expandoId]={events:{},data:{},handle:undefined};}
return expandoStore;}
function jqLiteData(element,key,value){if(jqLiteAcceptsData(element)){var isSimpleSetter=isDefined(value);var isSimpleGetter=!isSimpleSetter&&key&&!isObject(key);var massGetter=!key;var expandoStore=jqLiteExpandoStore(element,!isSimpleGetter);var data=expandoStore&&expandoStore.data;if(isSimpleSetter){data[key]=value;}else{if(massGetter){return data;}else{if(isSimpleGetter){return data&&data[key];}else{extend(data,key);}}}}}
function jqLiteHasClass(element,selector){if(!element.getAttribute)return false;return((" "+(element.getAttribute('class')||'')+" ").replace(/[\n\t]/g," ").indexOf(" "+selector+" ")>-1);}
function jqLiteRemoveClass(element,cssClasses){if(cssClasses&&element.setAttribute){forEach(cssClasses.split(' '),function(cssClass){element.setAttribute('class',trim((" "+(element.getAttribute('class')||'')+" ").replace(/[\n\t]/g," ").replace(" "+trim(cssClass)+" "," ")));});}}
function jqLiteAddClass(element,cssClasses){if(cssClasses&&element.setAttribute){var existingClasses=(' '+(element.getAttribute('class')||'')+' ').replace(/[\n\t]/g," ");forEach(cssClasses.split(' '),function(cssClass){cssClass=trim(cssClass);if(existingClasses.indexOf(' '+cssClass+' ')===-1){existingClasses+=cssClass+' ';}});element.setAttribute('class',trim(existingClasses));}}
function jqLiteAddNodes(root,elements){if(elements){if(elements.nodeType){root[root.length++]=elements;}else{var length=elements.length;if(typeof length==='number'&&elements.window!==elements){if(length){for(var i=0;i<length;i++){root[root.length++]=elements[i];}}}else{root[root.length++]=elements;}}}}
function jqLiteController(element,name){return jqLiteInheritedData(element,'$'+(name||'ngController')+'Controller');}
function jqLiteInheritedData(element,name,value){if(element.nodeType==NODE_TYPE_DOCUMENT){element=element.documentElement;}
var names=isArray(name)?name:[name];while(element){for(var i=0,ii=names.length;i<ii;i++){if(isDefined(value=jqLite.data(element,names[i])))return value;}
element=element.parentNode||(element.nodeType===NODE_TYPE_DOCUMENT_FRAGMENT&&element.host);}}
function jqLiteEmpty(element){jqLiteDealoc(element,true);while(element.firstChild){element.removeChild(element.firstChild);}}
function jqLiteRemove(element,keepData){if(!keepData)jqLiteDealoc(element);var parent=element.parentNode;if(parent)parent.removeChild(element);}
function jqLiteDocumentLoaded(action,win){win=win||window;if(win.document.readyState==='complete'){win.setTimeout(action);}else{jqLite(win).on('load',action);}}
var JQLitePrototype=JQLite.prototype={ready:function(fn){var fired=false;function trigger(){if(fired)return;fired=true;fn();}
if(document.readyState==='complete'){setTimeout(trigger);}else{this.on('DOMContentLoaded',trigger);JQLite(window).on('load',trigger);}},toString:function(){var value=[];forEach(this,function(e){value.push(''+e);});return'['+value.join(', ')+']';},eq:function(index){return(index>=0)?jqLite(this[index]):jqLite(this[this.length+index]);},length:0,push:push,sort:[].sort,splice:[].splice};var BOOLEAN_ATTR={};forEach('multiple,selected,checked,disabled,readOnly,required,open'.split(','),function(value){BOOLEAN_ATTR[lowercase(value)]=value;});var BOOLEAN_ELEMENTS={};forEach('input,select,option,textarea,button,form,details'.split(','),function(value){BOOLEAN_ELEMENTS[value]=true;});var ALIASED_ATTR={'ngMinlength':'minlength','ngMaxlength':'maxlength','ngMin':'min','ngMax':'max','ngPattern':'pattern'};function getBooleanAttrName(element,name){var booleanAttr=BOOLEAN_ATTR[name.toLowerCase()];return booleanAttr&&BOOLEAN_ELEMENTS[nodeName_(element)]&&booleanAttr;}
function getAliasedAttrName(name){return ALIASED_ATTR[name];}
forEach({data:jqLiteData,removeData:jqLiteRemoveData,hasData:jqLiteHasData},function(fn,name){JQLite[name]=fn;});forEach({data:jqLiteData,inheritedData:jqLiteInheritedData,scope:function(element){return jqLite.data(element,'$scope')||jqLiteInheritedData(element.parentNode||element,['$isolateScope','$scope']);},isolateScope:function(element){return jqLite.data(element,'$isolateScope')||jqLite.data(element,'$isolateScopeNoTemplate');},controller:jqLiteController,injector:function(element){return jqLiteInheritedData(element,'$injector');},removeAttr:function(element,name){element.removeAttribute(name);},hasClass:jqLiteHasClass,css:function(element,name,value){name=camelCase(name);if(isDefined(value)){element.style[name]=value;}else{return element.style[name];}},attr:function(element,name,value){var nodeType=element.nodeType;if(nodeType===NODE_TYPE_TEXT||nodeType===NODE_TYPE_ATTRIBUTE||nodeType===NODE_TYPE_COMMENT){return;}
var lowercasedName=lowercase(name);if(BOOLEAN_ATTR[lowercasedName]){if(isDefined(value)){if(!!value){element[name]=true;element.setAttribute(name,lowercasedName);}else{element[name]=false;element.removeAttribute(lowercasedName);}}else{return(element[name]||(element.attributes.getNamedItem(name)||noop).specified)?lowercasedName:undefined;}}else if(isDefined(value)){element.setAttribute(name,value);}else if(element.getAttribute){var ret=element.getAttribute(name,2);return ret===null?undefined:ret;}},prop:function(element,name,value){if(isDefined(value)){element[name]=value;}else{return element[name];}},text:(function(){getText.$dv='';return getText;function getText(element,value){if(isUndefined(value)){var nodeType=element.nodeType;return(nodeType===NODE_TYPE_ELEMENT||nodeType===NODE_TYPE_TEXT)?element.textContent:'';}
element.textContent=value;}})(),val:function(element,value){if(isUndefined(value)){if(element.multiple&&nodeName_(element)==='select'){var result=[];forEach(element.options,function(option){if(option.selected){result.push(option.value||option.text);}});return result.length===0?null:result;}
return element.value;}
element.value=value;},html:function(element,value){if(isUndefined(value)){return element.innerHTML;}
jqLiteDealoc(element,true);element.innerHTML=value;},empty:jqLiteEmpty},function(fn,name){JQLite.prototype[name]=function(arg1,arg2){var i,key;var nodeCount=this.length;if(fn!==jqLiteEmpty&&(isUndefined((fn.length==2&&(fn!==jqLiteHasClass&&fn!==jqLiteController))?arg1:arg2))){if(isObject(arg1)){for(i=0;i<nodeCount;i++){if(fn===jqLiteData){fn(this[i],arg1);}else{for(key in arg1){fn(this[i],key,arg1[key]);}}}
return this;}else{var value=fn.$dv;var jj=(isUndefined(value))?Math.min(nodeCount,1):nodeCount;for(var j=0;j<jj;j++){var nodeValue=fn(this[j],arg1,arg2);value=value?value+nodeValue:nodeValue;}
return value;}}else{for(i=0;i<nodeCount;i++){fn(this[i],arg1,arg2);}
return this;}};});function createEventHandler(element,events){var eventHandler=function(event,type){event.isDefaultPrevented=function(){return event.defaultPrevented;};var eventFns=events[type||event.type];var eventFnsLength=eventFns?eventFns.length:0;if(!eventFnsLength)return;if(isUndefined(event.immediatePropagationStopped)){var originalStopImmediatePropagation=event.stopImmediatePropagation;event.stopImmediatePropagation=function(){event.immediatePropagationStopped=true;if(event.stopPropagation){event.stopPropagation();}
if(originalStopImmediatePropagation){originalStopImmediatePropagation.call(event);}};}
event.isImmediatePropagationStopped=function(){return event.immediatePropagationStopped===true;};if((eventFnsLength>1)){eventFns=shallowCopy(eventFns);}
for(var i=0;i<eventFnsLength;i++){if(!event.isImmediatePropagationStopped()){eventFns[i].call(element,event);}}};eventHandler.elem=element;return eventHandler;}
forEach({removeData:jqLiteRemoveData,on:function jqLiteOn(element,type,fn,unsupported){if(isDefined(unsupported))throw jqLiteMinErr('onargs','jqLite#on() does not support the `selector` or `eventData` parameters');if(!jqLiteAcceptsData(element)){return;}
var expandoStore=jqLiteExpandoStore(element,true);var events=expandoStore.events;var handle=expandoStore.handle;if(!handle){handle=expandoStore.handle=createEventHandler(element,events);}
var types=type.indexOf(' ')>=0?type.split(' '):[type];var i=types.length;while(i--){type=types[i];var eventFns=events[type];if(!eventFns){events[type]=[];if(type==='mouseenter'||type==='mouseleave'){jqLiteOn(element,MOUSE_EVENT_MAP[type],function(event){var target=this,related=event.relatedTarget;if(!related||(related!==target&&!target.contains(related))){handle(event,type);}});}else{if(type!=='$destroy'){addEventListenerFn(element,type,handle);}}
eventFns=events[type];}
eventFns.push(fn);}},off:jqLiteOff,one:function(element,type,fn){element=jqLite(element);element.on(type,function onFn(){element.off(type,fn);element.off(type,onFn);});element.on(type,fn);},replaceWith:function(element,replaceNode){var index,parent=element.parentNode;jqLiteDealoc(element);forEach(new JQLite(replaceNode),function(node){if(index){parent.insertBefore(node,index.nextSibling);}else{parent.replaceChild(node,element);}
index=node;});},children:function(element){var children=[];forEach(element.childNodes,function(element){if(element.nodeType===NODE_TYPE_ELEMENT){children.push(element);}});return children;},contents:function(element){return element.contentDocument||element.childNodes||[];},append:function(element,node){var nodeType=element.nodeType;if(nodeType!==NODE_TYPE_ELEMENT&&nodeType!==NODE_TYPE_DOCUMENT_FRAGMENT)return;node=new JQLite(node);for(var i=0,ii=node.length;i<ii;i++){var child=node[i];element.appendChild(child);}},prepend:function(element,node){if(element.nodeType===NODE_TYPE_ELEMENT){var index=element.firstChild;forEach(new JQLite(node),function(child){element.insertBefore(child,index);});}},wrap:function(element,wrapNode){wrapNode=jqLite(wrapNode).eq(0).clone()[0];var parent=element.parentNode;if(parent){parent.replaceChild(wrapNode,element);}
wrapNode.appendChild(element);},remove:jqLiteRemove,detach:function(element){jqLiteRemove(element,true);},after:function(element,newElement){var index=element,parent=element.parentNode;newElement=new JQLite(newElement);for(var i=0,ii=newElement.length;i<ii;i++){var node=newElement[i];parent.insertBefore(node,index.nextSibling);index=node;}},addClass:jqLiteAddClass,removeClass:jqLiteRemoveClass,toggleClass:function(element,selector,condition){if(selector){forEach(selector.split(' '),function(className){var classCondition=condition;if(isUndefined(classCondition)){classCondition=!jqLiteHasClass(element,className);}
(classCondition?jqLiteAddClass:jqLiteRemoveClass)(element,className);});}},parent:function(element){var parent=element.parentNode;return parent&&parent.nodeType!==NODE_TYPE_DOCUMENT_FRAGMENT?parent:null;},next:function(element){return element.nextElementSibling;},find:function(element,selector){if(element.getElementsByTagName){return element.getElementsByTagName(selector);}else{return[];}},clone:jqLiteClone,triggerHandler:function(element,event,extraParameters){var dummyEvent,eventFnsCopy,handlerArgs;var eventName=event.type||event;var expandoStore=jqLiteExpandoStore(element);var events=expandoStore&&expandoStore.events;var eventFns=events&&events[eventName];if(eventFns){dummyEvent={preventDefault:function(){this.defaultPrevented=true;},isDefaultPrevented:function(){return this.defaultPrevented===true;},stopImmediatePropagation:function(){this.immediatePropagationStopped=true;},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===true;},stopPropagation:noop,type:eventName,target:element};if(event.type){dummyEvent=extend(dummyEvent,event);}
eventFnsCopy=shallowCopy(eventFns);handlerArgs=extraParameters?[dummyEvent].concat(extraParameters):[dummyEvent];forEach(eventFnsCopy,function(fn){if(!dummyEvent.isImmediatePropagationStopped()){fn.apply(element,handlerArgs);}});}}},function(fn,name){JQLite.prototype[name]=function(arg1,arg2,arg3){var value;for(var i=0,ii=this.length;i<ii;i++){if(isUndefined(value)){value=fn(this[i],arg1,arg2,arg3);if(isDefined(value)){value=jqLite(value);}}else{jqLiteAddNodes(value,fn(this[i],arg1,arg2,arg3));}}
return isDefined(value)?value:this;};JQLite.prototype.bind=JQLite.prototype.on;JQLite.prototype.unbind=JQLite.prototype.off;});function $$jqLiteProvider(){this.$get=function $$jqLite(){return extend(JQLite,{hasClass:function(node,classes){if(node.attr)node=node[0];return jqLiteHasClass(node,classes);},addClass:function(node,classes){if(node.attr)node=node[0];return jqLiteAddClass(node,classes);},removeClass:function(node,classes){if(node.attr)node=node[0];return jqLiteRemoveClass(node,classes);}});};}
function hashKey(obj,nextUidFn){var key=obj&&obj.$$hashKey;if(key){if(typeof key==='function'){key=obj.$$hashKey();}
return key;}
var objType=typeof obj;if(objType=='function'||(objType=='object'&&obj!==null)){key=obj.$$hashKey=objType+':'+(nextUidFn||nextUid)();}else{key=objType+':'+obj;}
return key;}
function HashMap(array,isolatedUid){if(isolatedUid){var uid=0;this.nextUid=function(){return++uid;};}
forEach(array,this.put,this);}
HashMap.prototype={put:function(key,value){this[hashKey(key,this.nextUid)]=value;},get:function(key){return this[hashKey(key,this.nextUid)];},remove:function(key){var value=this[key=hashKey(key,this.nextUid)];delete this[key];return value;}};var $$HashMapProvider=[function(){this.$get=[function(){return HashMap;}];}];var FN_ARGS=/^[^\(]*\(\s*([^\)]*)\)/m;var FN_ARG_SPLIT=/,/;var FN_ARG=/^\s*(_?)(\S+?)\1\s*$/;var STRIP_COMMENTS=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;var $injectorMinErr=minErr('$injector');function anonFn(fn){var fnText=fn.toString().replace(STRIP_COMMENTS,''),args=fnText.match(FN_ARGS);if(args){return'function('+(args[1]||'').replace(/[\s\r\n]+/,' ')+')';}
return'fn';}
function annotate(fn,strictDi,name){var $inject,fnText,argDecl,last;if(typeof fn==='function'){if(!($inject=fn.$inject)){$inject=[];if(fn.length){if(strictDi){if(!isString(name)||!name){name=fn.name||anonFn(fn);}
throw $injectorMinErr('strictdi','{0} is not using explicit annotation and cannot be invoked in strict mode',name);}
fnText=fn.toString().replace(STRIP_COMMENTS,'');argDecl=fnText.match(FN_ARGS);forEach(argDecl[1].split(FN_ARG_SPLIT),function(arg){arg.replace(FN_ARG,function(all,underscore,name){$inject.push(name);});});}
fn.$inject=$inject;}}else if(isArray(fn)){last=fn.length-1;assertArgFn(fn[last],'fn');$inject=fn.slice(0,last);}else{assertArgFn(fn,'fn',true);}
return $inject;}
function createInjector(modulesToLoad,strictDi){strictDi=(strictDi===true);var INSTANTIATING={},providerSuffix='Provider',path=[],loadedModules=new HashMap([],true),providerCache={$provide:{provider:supportObject(provider),factory:supportObject(factory),service:supportObject(service),value:supportObject(value),constant:supportObject(constant),decorator:decorator}},providerInjector=(providerCache.$injector=createInternalInjector(providerCache,function(serviceName,caller){if(angular.isString(caller)){path.push(caller);}
throw $injectorMinErr('unpr',"Unknown provider: {0}",path.join(' <- '));})),instanceCache={},instanceInjector=(instanceCache.$injector=createInternalInjector(instanceCache,function(serviceName,caller){var provider=providerInjector.get(serviceName+providerSuffix,caller);return instanceInjector.invoke(provider.$get,provider,undefined,serviceName);}));forEach(loadModules(modulesToLoad),function(fn){if(fn)instanceInjector.invoke(fn);});return instanceInjector;function supportObject(delegate){return function(key,value){if(isObject(key)){forEach(key,reverseParams(delegate));}else{return delegate(key,value);}};}
function provider(name,provider_){assertNotHasOwnProperty(name,'service');if(isFunction(provider_)||isArray(provider_)){provider_=providerInjector.instantiate(provider_);}
if(!provider_.$get){throw $injectorMinErr('pget',"Provider '{0}' must define $get factory method.",name);}
return providerCache[name+providerSuffix]=provider_;}
function enforceReturnValue(name,factory){return function enforcedReturnValue(){var result=instanceInjector.invoke(factory,this);if(isUndefined(result)){throw $injectorMinErr('undef',"Provider '{0}' must return a value from $get factory method.",name);}
return result;};}
function factory(name,factoryFn,enforce){return provider(name,{$get:enforce!==false?enforceReturnValue(name,factoryFn):factoryFn});}
function service(name,constructor){return factory(name,['$injector',function($injector){return $injector.instantiate(constructor);}]);}
function value(name,val){return factory(name,valueFn(val),false);}
function constant(name,value){assertNotHasOwnProperty(name,'constant');providerCache[name]=value;instanceCache[name]=value;}
function decorator(serviceName,decorFn){var origProvider=providerInjector.get(serviceName+providerSuffix),orig$get=origProvider.$get;origProvider.$get=function(){var origInstance=instanceInjector.invoke(orig$get,origProvider);return instanceInjector.invoke(decorFn,null,{$delegate:origInstance});};}
function loadModules(modulesToLoad){assertArg(isUndefined(modulesToLoad)||isArray(modulesToLoad),'modulesToLoad','not an array');var runBlocks=[],moduleFn;forEach(modulesToLoad,function(module){if(loadedModules.get(module))return;loadedModules.put(module,true);function runInvokeQueue(queue){var i,ii;for(i=0,ii=queue.length;i<ii;i++){var invokeArgs=queue[i],provider=providerInjector.get(invokeArgs[0]);provider[invokeArgs[1]].apply(provider,invokeArgs[2]);}}
try{if(isString(module)){moduleFn=angularModule(module);runBlocks=runBlocks.concat(loadModules(moduleFn.requires)).concat(moduleFn._runBlocks);runInvokeQueue(moduleFn._invokeQueue);runInvokeQueue(moduleFn._configBlocks);}else if(isFunction(module)){runBlocks.push(providerInjector.invoke(module));}else if(isArray(module)){runBlocks.push(providerInjector.invoke(module));}else{assertArgFn(module,'module');}}catch(e){if(isArray(module)){module=module[module.length-1];}
if(e.message&&e.stack&&e.stack.indexOf(e.message)==-1){e=e.message+'\n'+e.stack;}
throw $injectorMinErr('modulerr',"Failed to instantiate module {0} due to:\n{1}",module,e.stack||e.message||e);}});return runBlocks;}
function createInternalInjector(cache,factory){function getService(serviceName,caller){if(cache.hasOwnProperty(serviceName)){if(cache[serviceName]===INSTANTIATING){throw $injectorMinErr('cdep','Circular dependency found: {0}',serviceName+' <- '+path.join(' <- '));}
return cache[serviceName];}else{try{path.unshift(serviceName);cache[serviceName]=INSTANTIATING;return cache[serviceName]=factory(serviceName,caller);}catch(err){if(cache[serviceName]===INSTANTIATING){delete cache[serviceName];}
throw err;}finally{path.shift();}}}
function invoke(fn,self,locals,serviceName){if(typeof locals==='string'){serviceName=locals;locals=null;}
var args=[],$inject=createInjector.$$annotate(fn,strictDi,serviceName),length,i,key;for(i=0,length=$inject.length;i<length;i++){key=$inject[i];if(typeof key!=='string'){throw $injectorMinErr('itkn','Incorrect injection token! Expected service name as string, got {0}',key);}
args.push(locals&&locals.hasOwnProperty(key)?locals[key]:getService(key,serviceName));}
if(isArray(fn)){fn=fn[length];}
return fn.apply(self,args);}
function instantiate(Type,locals,serviceName){var instance=Object.create((isArray(Type)?Type[Type.length-1]:Type).prototype||null);var returnedValue=invoke(Type,instance,locals,serviceName);return isObject(returnedValue)||isFunction(returnedValue)?returnedValue:instance;}
return{invoke:invoke,instantiate:instantiate,get:getService,annotate:createInjector.$$annotate,has:function(name){return providerCache.hasOwnProperty(name+providerSuffix)||cache.hasOwnProperty(name);}};}}
createInjector.$$annotate=annotate;function $AnchorScrollProvider(){var autoScrollingEnabled=true;this.disableAutoScrolling=function(){autoScrollingEnabled=false;};this.$get=['$window','$location','$rootScope',function($window,$location,$rootScope){var document=$window.document;function getFirstAnchor(list){var result=null;Array.prototype.some.call(list,function(element){if(nodeName_(element)==='a'){result=element;return true;}});return result;}
function getYOffset(){var offset=scroll.yOffset;if(isFunction(offset)){offset=offset();}else if(isElement(offset)){var elem=offset[0];var style=$window.getComputedStyle(elem);if(style.position!=='fixed'){offset=0;}else{offset=elem.getBoundingClientRect().bottom;}}else if(!isNumber(offset)){offset=0;}
return offset;}
function scrollTo(elem){if(elem){elem.scrollIntoView();var offset=getYOffset();if(offset){var elemTop=elem.getBoundingClientRect().top;$window.scrollBy(0,elemTop-offset);}}else{$window.scrollTo(0,0);}}
function scroll(hash){hash=isString(hash)?hash:$location.hash();var elm;if(!hash)scrollTo(null);else if((elm=document.getElementById(hash)))scrollTo(elm);else if((elm=getFirstAnchor(document.getElementsByName(hash))))scrollTo(elm);else if(hash==='top')scrollTo(null);}
if(autoScrollingEnabled){$rootScope.$watch(function autoScrollWatch(){return $location.hash();},function autoScrollWatchAction(newVal,oldVal){if(newVal===oldVal&&newVal==='')return;jqLiteDocumentLoaded(function(){$rootScope.$evalAsync(scroll);});});}
return scroll;}];}
var $animateMinErr=minErr('$animate');var ELEMENT_NODE=1;var NG_ANIMATE_CLASSNAME='ng-animate';function mergeClasses(a,b){if(!a&&!b)return'';if(!a)return b;if(!b)return a;if(isArray(a))a=a.join(' ');if(isArray(b))b=b.join(' ');return a+' '+b;}
function extractElementNode(element){for(var i=0;i<element.length;i++){var elm=element[i];if(elm.nodeType===ELEMENT_NODE){return elm;}}}
function splitClasses(classes){if(isString(classes)){classes=classes.split(' ');}
var obj=createMap();forEach(classes,function(klass){if(klass.length){obj[klass]=true;}});return obj;}
function prepareAnimateOptions(options){return isObject(options)?options:{};}
var $$CoreAnimateRunnerProvider=function(){this.$get=['$q','$$rAF',function($q,$$rAF){function AnimateRunner(){}
AnimateRunner.all=noop;AnimateRunner.chain=noop;AnimateRunner.prototype={end:noop,cancel:noop,resume:noop,pause:noop,complete:noop,then:function(pass,fail){return $q(function(resolve){$$rAF(function(){resolve();});}).then(pass,fail);}};return AnimateRunner;}];};var $$CoreAnimateQueueProvider=function(){var postDigestQueue=new HashMap();var postDigestElements=[];this.$get=['$$AnimateRunner','$rootScope',function($$AnimateRunner,$rootScope){return{enabled:noop,on:noop,off:noop,pin:noop,push:function(element,event,options,domOperation){domOperation&&domOperation();options=options||{};options.from&&element.css(options.from);options.to&&element.css(options.to);if(options.addClass||options.removeClass){addRemoveClassesPostDigest(element,options.addClass,options.removeClass);}
return new $$AnimateRunner();}};function updateData(data,classes,value){var changed=false;if(classes){classes=isString(classes)?classes.split(' '):isArray(classes)?classes:[];forEach(classes,function(className){if(className){changed=true;data[className]=value;}});}
return changed;}
function handleCSSClassChanges(){forEach(postDigestElements,function(element){var data=postDigestQueue.get(element);if(data){var existing=splitClasses(element.attr('class'));var toAdd='';var toRemove='';forEach(data,function(status,className){var hasClass=!!existing[className];if(status!==hasClass){if(status){toAdd+=(toAdd.length?' ':'')+className;}else{toRemove+=(toRemove.length?' ':'')+className;}}});forEach(element,function(elm){toAdd&&jqLiteAddClass(elm,toAdd);toRemove&&jqLiteRemoveClass(elm,toRemove);});postDigestQueue.remove(element);}});postDigestElements.length=0;}
function addRemoveClassesPostDigest(element,add,remove){var data=postDigestQueue.get(element)||{};var classesAdded=updateData(data,add,true);var classesRemoved=updateData(data,remove,false);if(classesAdded||classesRemoved){postDigestQueue.put(element,data);postDigestElements.push(element);if(postDigestElements.length===1){$rootScope.$$postDigest(handleCSSClassChanges);}}}}];};var $AnimateProvider=['$provide',function($provide){var provider=this;this.$$registeredAnimations=Object.create(null);this.register=function(name,factory){if(name&&name.charAt(0)!=='.'){throw $animateMinErr('notcsel',"Expecting class selector starting with '.' got '{0}'.",name);}
var key=name+'-animation';provider.$$registeredAnimations[name.substr(1)]=key;$provide.factory(key,factory);};this.classNameFilter=function(expression){if(arguments.length===1){this.$$classNameFilter=(expression instanceof RegExp)?expression:null;if(this.$$classNameFilter){var reservedRegex=new RegExp("(\\s+|\\/)"+NG_ANIMATE_CLASSNAME+"(\\s+|\\/)");if(reservedRegex.test(this.$$classNameFilter.toString())){throw $animateMinErr('nongcls','$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',NG_ANIMATE_CLASSNAME);}}}
return this.$$classNameFilter;};this.$get=['$$animateQueue',function($$animateQueue){function domInsert(element,parentElement,afterElement){if(afterElement){var afterNode=extractElementNode(afterElement);if(afterNode&&!afterNode.parentNode&&!afterNode.previousElementSibling){afterElement=null;}}
afterElement?afterElement.after(element):parentElement.prepend(element);}
return{on:$$animateQueue.on,off:$$animateQueue.off,pin:$$animateQueue.pin,enabled:$$animateQueue.enabled,cancel:function(runner){runner.end&&runner.end();},enter:function(element,parent,after,options){parent=parent&&jqLite(parent);after=after&&jqLite(after);parent=parent||after.parent();domInsert(element,parent,after);return $$animateQueue.push(element,'enter',prepareAnimateOptions(options));},move:function(element,parent,after,options){parent=parent&&jqLite(parent);after=after&&jqLite(after);parent=parent||after.parent();domInsert(element,parent,after);return $$animateQueue.push(element,'move',prepareAnimateOptions(options));},leave:function(element,options){return $$animateQueue.push(element,'leave',prepareAnimateOptions(options),function(){element.remove();});},addClass:function(element,className,options){options=prepareAnimateOptions(options);options.addClass=mergeClasses(options.addclass,className);return $$animateQueue.push(element,'addClass',options);},removeClass:function(element,className,options){options=prepareAnimateOptions(options);options.removeClass=mergeClasses(options.removeClass,className);return $$animateQueue.push(element,'removeClass',options);},setClass:function(element,add,remove,options){options=prepareAnimateOptions(options);options.addClass=mergeClasses(options.addClass,add);options.removeClass=mergeClasses(options.removeClass,remove);return $$animateQueue.push(element,'setClass',options);},animate:function(element,from,to,className,options){options=prepareAnimateOptions(options);options.from=options.from?extend(options.from,from):from;options.to=options.to?extend(options.to,to):to;className=className||'ng-inline-animate';options.tempClasses=mergeClasses(options.tempClasses,className);return $$animateQueue.push(element,'animate',options);}};}];}];var $CoreAnimateCssProvider=function(){this.$get=['$$rAF','$q',function($$rAF,$q){var RAFPromise=function(){};RAFPromise.prototype={done:function(cancel){this.defer&&this.defer[cancel===true?'reject':'resolve']();},end:function(){this.done();},cancel:function(){this.done(true);},getPromise:function(){if(!this.defer){this.defer=$q.defer();}
return this.defer.promise;},then:function(f1,f2){return this.getPromise().then(f1,f2);},'catch':function(f1){return this.getPromise()['catch'](f1);},'finally':function(f1){return this.getPromise()['finally'](f1);}};return function(element,options){if(options.cleanupStyles){options.from=options.to=null;}
if(options.from){element.css(options.from);options.from=null;}
var closed,runner=new RAFPromise();return{start:run,end:run};function run(){$$rAF(function(){close();if(!closed){runner.done();}
closed=true;});return runner;}
function close(){if(options.addClass){element.addClass(options.addClass);options.addClass=null;}
if(options.removeClass){element.removeClass(options.removeClass);options.removeClass=null;}
if(options.to){element.css(options.to);options.to=null;}}};}];};function Browser(window,document,$log,$sniffer){var self=this,rawDocument=document[0],location=window.location,history=window.history,setTimeout=window.setTimeout,clearTimeout=window.clearTimeout,pendingDeferIds={};self.isMock=false;var outstandingRequestCount=0;var outstandingRequestCallbacks=[];self.$$completeOutstandingRequest=completeOutstandingRequest;self.$$incOutstandingRequestCount=function(){outstandingRequestCount++;};function completeOutstandingRequest(fn){try{fn.apply(null,sliceArgs(arguments,1));}finally{outstandingRequestCount--;if(outstandingRequestCount===0){while(outstandingRequestCallbacks.length){try{outstandingRequestCallbacks.pop()();}catch(e){$log.error(e);}}}}}
function getHash(url){var index=url.indexOf('#');return index===-1?'':url.substr(index);}
self.notifyWhenNoOutstandingRequests=function(callback){if(outstandingRequestCount===0){callback();}else{outstandingRequestCallbacks.push(callback);}};var cachedState,lastHistoryState,lastBrowserUrl=location.href,baseElement=document.find('base'),pendingLocation=null;cacheState();lastHistoryState=cachedState;self.url=function(url,replace,state){if(isUndefined(state)){state=null;}
if(location!==window.location)location=window.location;if(history!==window.history)history=window.history;if(url){var sameState=lastHistoryState===state;if(lastBrowserUrl===url&&(!$sniffer.history||sameState)){return self;}
var sameBase=lastBrowserUrl&&stripHash(lastBrowserUrl)===stripHash(url);lastBrowserUrl=url;lastHistoryState=state;if($sniffer.history&&(!sameBase||!sameState)){history[replace?'replaceState':'pushState'](state,'',url);cacheState();lastHistoryState=cachedState;}else{if(!sameBase||pendingLocation){pendingLocation=url;}
if(replace){location.replace(url);}else if(!sameBase){location.href=url;}else{location.hash=getHash(url);}
if(location.href!==url){pendingLocation=url;}}
return self;}else{return pendingLocation||location.href.replace(/%27/g,"'");}};self.state=function(){return cachedState;};var urlChangeListeners=[],urlChangeInit=false;function cacheStateAndFireUrlChange(){pendingLocation=null;cacheState();fireUrlChange();}
function getCurrentState(){try{return history.state;}catch(e){}}
var lastCachedState=null;function cacheState(){cachedState=getCurrentState();cachedState=isUndefined(cachedState)?null:cachedState;if(equals(cachedState,lastCachedState)){cachedState=lastCachedState;}
lastCachedState=cachedState;}
function fireUrlChange(){if(lastBrowserUrl===self.url()&&lastHistoryState===cachedState){return;}
lastBrowserUrl=self.url();lastHistoryState=cachedState;forEach(urlChangeListeners,function(listener){listener(self.url(),cachedState);});}
self.onUrlChange=function(callback){if(!urlChangeInit){if($sniffer.history)jqLite(window).on('popstate',cacheStateAndFireUrlChange);jqLite(window).on('hashchange',cacheStateAndFireUrlChange);urlChangeInit=true;}
urlChangeListeners.push(callback);return callback;};self.$$applicationDestroyed=function(){jqLite(window).off('hashchange popstate',cacheStateAndFireUrlChange);};self.$$checkUrlChange=fireUrlChange;self.baseHref=function(){var href=baseElement.attr('href');return href?href.replace(/^(https?\:)?\/\/[^\/]*/,''):'';};self.defer=function(fn,delay){var timeoutId;outstandingRequestCount++;timeoutId=setTimeout(function(){delete pendingDeferIds[timeoutId];completeOutstandingRequest(fn);},delay||0);pendingDeferIds[timeoutId]=true;return timeoutId;};self.defer.cancel=function(deferId){if(pendingDeferIds[deferId]){delete pendingDeferIds[deferId];clearTimeout(deferId);completeOutstandingRequest(noop);return true;}
return false;};}
function $BrowserProvider(){this.$get=['$window','$log','$sniffer','$document',function($window,$log,$sniffer,$document){return new Browser($window,$document,$log,$sniffer);}];}
function $CacheFactoryProvider(){this.$get=function(){var caches={};function cacheFactory(cacheId,options){if(cacheId in caches){throw minErr('$cacheFactory')('iid',"CacheId '{0}' is already taken!",cacheId);}
var size=0,stats=extend({},options,{id:cacheId}),data={},capacity=(options&&options.capacity)||Number.MAX_VALUE,lruHash={},freshEnd=null,staleEnd=null;return caches[cacheId]={put:function(key,value){if(isUndefined(value))return;if(capacity<Number.MAX_VALUE){var lruEntry=lruHash[key]||(lruHash[key]={key:key});refresh(lruEntry);}
if(!(key in data))size++;data[key]=value;if(size>capacity){this.remove(staleEnd.key);}
return value;},get:function(key){if(capacity<Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;refresh(lruEntry);}
return data[key];},remove:function(key){if(capacity<Number.MAX_VALUE){var lruEntry=lruHash[key];if(!lruEntry)return;if(lruEntry==freshEnd)freshEnd=lruEntry.p;if(lruEntry==staleEnd)staleEnd=lruEntry.n;link(lruEntry.n,lruEntry.p);delete lruHash[key];}
delete data[key];size--;},removeAll:function(){data={};size=0;lruHash={};freshEnd=staleEnd=null;},destroy:function(){data=null;stats=null;lruHash=null;delete caches[cacheId];},info:function(){return extend({},stats,{size:size});}};function refresh(entry){if(entry!=freshEnd){if(!staleEnd){staleEnd=entry;}else if(staleEnd==entry){staleEnd=entry.n;}
link(entry.n,entry.p);link(entry,freshEnd);freshEnd=entry;freshEnd.n=null;}}
function link(nextEntry,prevEntry){if(nextEntry!=prevEntry){if(nextEntry)nextEntry.p=prevEntry;if(prevEntry)prevEntry.n=nextEntry;}}}
cacheFactory.info=function(){var info={};forEach(caches,function(cache,cacheId){info[cacheId]=cache.info();});return info;};cacheFactory.get=function(cacheId){return caches[cacheId];};return cacheFactory;};}
function $TemplateCacheProvider(){this.$get=['$cacheFactory',function($cacheFactory){return $cacheFactory('templates');}];}
var $compileMinErr=minErr('$compile');$CompileProvider.$inject=['$provide','$$sanitizeUriProvider'];function $CompileProvider($provide,$$sanitizeUriProvider){var hasDirectives={},Suffix='Directive',COMMENT_DIRECTIVE_REGEXP=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,CLASS_DIRECTIVE_REGEXP=/(([\w\-]+)(?:\:([^;]+))?;?)/,ALL_OR_NOTHING_ATTRS=makeMap('ngSrc,ngSrcset,src,srcset'),REQUIRE_PREFIX_REGEXP=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/;var EVENT_HANDLER_ATTR_REGEXP=/^(on[a-z]+|formaction)$/;function parseIsolateBindings(scope,directiveName,isController){var LOCAL_REGEXP=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/;var bindings={};forEach(scope,function(definition,scopeName){var match=definition.match(LOCAL_REGEXP);if(!match){throw $compileMinErr('iscp',"Invalid {3} for directive '{0}'."+" Definition: {... {1}: '{2}' ...}",directiveName,scopeName,definition,(isController?"controller bindings definition":"isolate scope definition"));}
bindings[scopeName]={mode:match[1][0],collection:match[2]==='*',optional:match[3]==='?',attrName:match[4]||scopeName};});return bindings;}
function parseDirectiveBindings(directive,directiveName){var bindings={isolateScope:null,bindToController:null};if(isObject(directive.scope)){if(directive.bindToController===true){bindings.bindToController=parseIsolateBindings(directive.scope,directiveName,true);bindings.isolateScope={};}else{bindings.isolateScope=parseIsolateBindings(directive.scope,directiveName,false);}}
if(isObject(directive.bindToController)){bindings.bindToController=parseIsolateBindings(directive.bindToController,directiveName,true);}
if(isObject(bindings.bindToController)){var controller=directive.controller;var controllerAs=directive.controllerAs;if(!controller){throw $compileMinErr('noctrl',"Cannot bind to controller without directive '{0}'s controller.",directiveName);}else if(!identifierForController(controller,controllerAs)){throw $compileMinErr('noident',"Cannot bind to controller without identifier for directive '{0}'.",directiveName);}}
return bindings;}
function assertValidDirectiveName(name){var letter=name.charAt(0);if(!letter||letter!==lowercase(letter)){throw $compileMinErr('baddir',"Directive name '{0}' is invalid. The first character must be a lowercase letter",name);}
if(name!==name.trim()){throw $compileMinErr('baddir',"Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces",name);}}
this.directive=function registerDirective(name,directiveFactory){assertNotHasOwnProperty(name,'directive');if(isString(name)){assertValidDirectiveName(name);assertArg(directiveFactory,'directiveFactory');if(!hasDirectives.hasOwnProperty(name)){hasDirectives[name]=[];$provide.factory(name+Suffix,['$injector','$exceptionHandler',function($injector,$exceptionHandler){var directives=[];forEach(hasDirectives[name],function(directiveFactory,index){try{var directive=$injector.invoke(directiveFactory);if(isFunction(directive)){directive={compile:valueFn(directive)};}else if(!directive.compile&&directive.link){directive.compile=valueFn(directive.link);}
directive.priority=directive.priority||0;directive.index=index;directive.name=directive.name||name;directive.require=directive.require||(directive.controller&&directive.name);directive.restrict=directive.restrict||'EA';var bindings=directive.$$bindings=parseDirectiveBindings(directive,directive.name);if(isObject(bindings.isolateScope)){directive.$$isolateBindings=bindings.isolateScope;}
directive.$$moduleName=directiveFactory.$$moduleName;directives.push(directive);}catch(e){$exceptionHandler(e);}});return directives;}]);}
hasDirectives[name].push(directiveFactory);}else{forEach(name,reverseParams(registerDirective));}
return this;};this.aHrefSanitizationWhitelist=function(regexp){if(isDefined(regexp)){$$sanitizeUriProvider.aHrefSanitizationWhitelist(regexp);return this;}else{return $$sanitizeUriProvider.aHrefSanitizationWhitelist();}};this.imgSrcSanitizationWhitelist=function(regexp){if(isDefined(regexp)){$$sanitizeUriProvider.imgSrcSanitizationWhitelist(regexp);return this;}else{return $$sanitizeUriProvider.imgSrcSanitizationWhitelist();}};var debugInfoEnabled=true;this.debugInfoEnabled=function(enabled){if(isDefined(enabled)){debugInfoEnabled=enabled;return this;}
return debugInfoEnabled;};this.$get=['$injector','$interpolate','$exceptionHandler','$templateRequest','$parse','$controller','$rootScope','$document','$sce','$animate','$$sanitizeUri',function($injector,$interpolate,$exceptionHandler,$templateRequest,$parse,$controller,$rootScope,$document,$sce,$animate,$$sanitizeUri){var Attributes=function(element,attributesToCopy){if(attributesToCopy){var keys=Object.keys(attributesToCopy);var i,l,key;for(i=0,l=keys.length;i<l;i++){key=keys[i];this[key]=attributesToCopy[key];}}else{this.$attr={};}
this.$$element=element;};Attributes.prototype={$normalize:directiveNormalize,$addClass:function(classVal){if(classVal&&classVal.length>0){$animate.addClass(this.$$element,classVal);}},$removeClass:function(classVal){if(classVal&&classVal.length>0){$animate.removeClass(this.$$element,classVal);}},$updateClass:function(newClasses,oldClasses){var toAdd=tokenDifference(newClasses,oldClasses);if(toAdd&&toAdd.length){$animate.addClass(this.$$element,toAdd);}
var toRemove=tokenDifference(oldClasses,newClasses);if(toRemove&&toRemove.length){$animate.removeClass(this.$$element,toRemove);}},$set:function(key,value,writeAttr,attrName){var node=this.$$element[0],booleanKey=getBooleanAttrName(node,key),aliasedKey=getAliasedAttrName(key),observer=key,nodeName;if(booleanKey){this.$$element.prop(key,value);attrName=booleanKey;}else if(aliasedKey){this[aliasedKey]=value;observer=aliasedKey;}
this[key]=value;if(attrName){this.$attr[key]=attrName;}else{attrName=this.$attr[key];if(!attrName){this.$attr[key]=attrName=snake_case(key,'-');}}
nodeName=nodeName_(this.$$element);if((nodeName==='a'&&key==='href')||(nodeName==='img'&&key==='src')){this[key]=value=$$sanitizeUri(value,key==='src');}else if(nodeName==='img'&&key==='srcset'){var result="";var trimmedSrcset=trim(value);var srcPattern=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/;var pattern=/\s/.test(trimmedSrcset)?srcPattern:/(,)/;var rawUris=trimmedSrcset.split(pattern);var nbrUrisWith2parts=Math.floor(rawUris.length/2);for(var i=0;i<nbrUrisWith2parts;i++){var innerIdx=i*2;result+=$$sanitizeUri(trim(rawUris[innerIdx]),true);result+=(" "+trim(rawUris[innerIdx+1]));}
var lastTuple=trim(rawUris[i*2]).split(/\s/);result+=$$sanitizeUri(trim(lastTuple[0]),true);if(lastTuple.length===2){result+=(" "+trim(lastTuple[1]));}
this[key]=value=result;}
if(writeAttr!==false){if(value===null||isUndefined(value)){this.$$element.removeAttr(attrName);}else{this.$$element.attr(attrName,value);}}
var $$observers=this.$$observers;$$observers&&forEach($$observers[observer],function(fn){try{fn(value);}catch(e){$exceptionHandler(e);}});},$observe:function(key,fn){var attrs=this,$$observers=(attrs.$$observers||(attrs.$$observers=createMap())),listeners=($$observers[key]||($$observers[key]=[]));listeners.push(fn);$rootScope.$evalAsync(function(){if(!listeners.$$inter&&attrs.hasOwnProperty(key)&&!isUndefined(attrs[key])){fn(attrs[key]);}});return function(){arrayRemove(listeners,fn);};}};function safeAddClass($element,className){try{$element.addClass(className);}catch(e){}}
var startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),denormalizeTemplate=(startSymbol=='{{'||endSymbol=='}}')?identity:function denormalizeTemplate(template){return template.replace(/\{\{/g,startSymbol).replace(/}}/g,endSymbol);},NG_ATTR_BINDING=/^ngAttr[A-Z]/;compile.$$addBindingInfo=debugInfoEnabled?function $$addBindingInfo($element,binding){var bindings=$element.data('$binding')||[];if(isArray(binding)){bindings=bindings.concat(binding);}else{bindings.push(binding);}
$element.data('$binding',bindings);}:noop;compile.$$addBindingClass=debugInfoEnabled?function $$addBindingClass($element){safeAddClass($element,'ng-binding');}:noop;compile.$$addScopeInfo=debugInfoEnabled?function $$addScopeInfo($element,scope,isolated,noTemplate){var dataName=isolated?(noTemplate?'$isolateScopeNoTemplate':'$isolateScope'):'$scope';$element.data(dataName,scope);}:noop;compile.$$addScopeClass=debugInfoEnabled?function $$addScopeClass($element,isolated){safeAddClass($element,isolated?'ng-isolate-scope':'ng-scope');}:noop;return compile;function compile($compileNodes,transcludeFn,maxPriority,ignoreDirective,previousCompileContext){if(!($compileNodes instanceof jqLite)){$compileNodes=jqLite($compileNodes);}
forEach($compileNodes,function(node,index){if(node.nodeType==NODE_TYPE_TEXT&&node.nodeValue.match(/\S+/)){$compileNodes[index]=jqLite(node).wrap('<span></span>').parent()[0];}});var compositeLinkFn=compileNodes($compileNodes,transcludeFn,$compileNodes,maxPriority,ignoreDirective,previousCompileContext);compile.$$addScopeClass($compileNodes);var namespace=null;return function publicLinkFn(scope,cloneConnectFn,options){assertArg(scope,'scope');options=options||{};var parentBoundTranscludeFn=options.parentBoundTranscludeFn,transcludeControllers=options.transcludeControllers,futureParentElement=options.futureParentElement;if(parentBoundTranscludeFn&&parentBoundTranscludeFn.$$boundTransclude){parentBoundTranscludeFn=parentBoundTranscludeFn.$$boundTransclude;}
if(!namespace){namespace=detectNamespaceForChildElements(futureParentElement);}
var $linkNode;if(namespace!=='html'){$linkNode=jqLite(wrapTemplate(namespace,jqLite('<div>').append($compileNodes).html()));}else if(cloneConnectFn){$linkNode=JQLitePrototype.clone.call($compileNodes);}else{$linkNode=$compileNodes;}
if(transcludeControllers){for(var controllerName in transcludeControllers){$linkNode.data('$'+controllerName+'Controller',transcludeControllers[controllerName].instance);}}
compile.$$addScopeInfo($linkNode,scope);if(cloneConnectFn)cloneConnectFn($linkNode,scope);if(compositeLinkFn)compositeLinkFn(scope,$linkNode,$linkNode,parentBoundTranscludeFn);return $linkNode;};}
function detectNamespaceForChildElements(parentElement){var node=parentElement&&parentElement[0];if(!node){return'html';}else{return nodeName_(node)!=='foreignobject'&&node.toString().match(/SVG/)?'svg':'html';}}
function compileNodes(nodeList,transcludeFn,$rootElement,maxPriority,ignoreDirective,previousCompileContext){var linkFns=[],attrs,directives,nodeLinkFn,childNodes,childLinkFn,linkFnFound,nodeLinkFnFound;for(var i=0;i<nodeList.length;i++){attrs=new Attributes();directives=collectDirectives(nodeList[i],[],attrs,i===0?maxPriority:undefined,ignoreDirective);nodeLinkFn=(directives.length)?applyDirectivesToNode(directives,nodeList[i],attrs,transcludeFn,$rootElement,null,[],[],previousCompileContext):null;if(nodeLinkFn&&nodeLinkFn.scope){compile.$$addScopeClass(attrs.$$element);}
childLinkFn=(nodeLinkFn&&nodeLinkFn.terminal||!(childNodes=nodeList[i].childNodes)||!childNodes.length)?null:compileNodes(childNodes,nodeLinkFn?((nodeLinkFn.transcludeOnThisElement||!nodeLinkFn.templateOnThisElement)&&nodeLinkFn.transclude):transcludeFn);if(nodeLinkFn||childLinkFn){linkFns.push(i,nodeLinkFn,childLinkFn);linkFnFound=true;nodeLinkFnFound=nodeLinkFnFound||nodeLinkFn;}
previousCompileContext=null;}
return linkFnFound?compositeLinkFn:null;function compositeLinkFn(scope,nodeList,$rootElement,parentBoundTranscludeFn){var nodeLinkFn,childLinkFn,node,childScope,i,ii,idx,childBoundTranscludeFn;var stableNodeList;if(nodeLinkFnFound){var nodeListLength=nodeList.length;stableNodeList=new Array(nodeListLength);for(i=0;i<linkFns.length;i+=3){idx=linkFns[i];stableNodeList[idx]=nodeList[idx];}}else{stableNodeList=nodeList;}
for(i=0,ii=linkFns.length;i<ii;){node=stableNodeList[linkFns[i++]];nodeLinkFn=linkFns[i++];childLinkFn=linkFns[i++];if(nodeLinkFn){if(nodeLinkFn.scope){childScope=scope.$new();compile.$$addScopeInfo(jqLite(node),childScope);var destroyBindings=nodeLinkFn.$$destroyBindings;if(destroyBindings){nodeLinkFn.$$destroyBindings=null;childScope.$on('$destroyed',destroyBindings);}}else{childScope=scope;}
if(nodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn=createBoundTranscludeFn(scope,nodeLinkFn.transclude,parentBoundTranscludeFn);}else if(!nodeLinkFn.templateOnThisElement&&parentBoundTranscludeFn){childBoundTranscludeFn=parentBoundTranscludeFn;}else if(!parentBoundTranscludeFn&&transcludeFn){childBoundTranscludeFn=createBoundTranscludeFn(scope,transcludeFn);}else{childBoundTranscludeFn=null;}
nodeLinkFn(childLinkFn,childScope,node,$rootElement,childBoundTranscludeFn,nodeLinkFn);}else if(childLinkFn){childLinkFn(scope,node.childNodes,undefined,parentBoundTranscludeFn);}}}}
function createBoundTranscludeFn(scope,transcludeFn,previousBoundTranscludeFn){var boundTranscludeFn=function(transcludedScope,cloneFn,controllers,futureParentElement,containingScope){if(!transcludedScope){transcludedScope=scope.$new(false,containingScope);transcludedScope.$$transcluded=true;}
return transcludeFn(transcludedScope,cloneFn,{parentBoundTranscludeFn:previousBoundTranscludeFn,transcludeControllers:controllers,futureParentElement:futureParentElement});};return boundTranscludeFn;}
function collectDirectives(node,directives,attrs,maxPriority,ignoreDirective){var nodeType=node.nodeType,attrsMap=attrs.$attr,match,className;switch(nodeType){case NODE_TYPE_ELEMENT:addDirective(directives,directiveNormalize(nodeName_(node)),'E',maxPriority,ignoreDirective);for(var attr,name,nName,ngAttrName,value,isNgAttr,nAttrs=node.attributes,j=0,jj=nAttrs&&nAttrs.length;j<jj;j++){var attrStartName=false;var attrEndName=false;attr=nAttrs[j];name=attr.name;value=trim(attr.value);ngAttrName=directiveNormalize(name);if(isNgAttr=NG_ATTR_BINDING.test(ngAttrName)){name=name.replace(PREFIX_REGEXP,'').substr(8).replace(/_(.)/g,function(match,letter){return letter.toUpperCase();});}
var directiveNName=ngAttrName.replace(/(Start|End)$/,'');if(directiveIsMultiElement(directiveNName)){if(ngAttrName===directiveNName+'Start'){attrStartName=name;attrEndName=name.substr(0,name.length-5)+'end';name=name.substr(0,name.length-6);}}
nName=directiveNormalize(name.toLowerCase());attrsMap[nName]=name;if(isNgAttr||!attrs.hasOwnProperty(nName)){attrs[nName]=value;if(getBooleanAttrName(node,nName)){attrs[nName]=true;}}
addAttrInterpolateDirective(node,directives,value,nName,isNgAttr);addDirective(directives,nName,'A',maxPriority,ignoreDirective,attrStartName,attrEndName);}
className=node.className;if(isObject(className)){className=className.animVal;}
if(isString(className)&&className!==''){while(match=CLASS_DIRECTIVE_REGEXP.exec(className)){nName=directiveNormalize(match[2]);if(addDirective(directives,nName,'C',maxPriority,ignoreDirective)){attrs[nName]=trim(match[3]);}
className=className.substr(match.index+match[0].length);}}
break;case NODE_TYPE_TEXT:if(msie===11){while(node.parentNode&&node.nextSibling&&node.nextSibling.nodeType===NODE_TYPE_TEXT){node.nodeValue=node.nodeValue+node.nextSibling.nodeValue;node.parentNode.removeChild(node.nextSibling);}}
addTextInterpolateDirective(directives,node.nodeValue);break;case NODE_TYPE_COMMENT:try{match=COMMENT_DIRECTIVE_REGEXP.exec(node.nodeValue);if(match){nName=directiveNormalize(match[1]);if(addDirective(directives,nName,'M',maxPriority,ignoreDirective)){attrs[nName]=trim(match[2]);}}}catch(e){}
break;}
directives.sort(byPriority);return directives;}
function groupScan(node,attrStart,attrEnd){var nodes=[];var depth=0;if(attrStart&&node.hasAttribute&&node.hasAttribute(attrStart)){do{if(!node){throw $compileMinErr('uterdir',"Unterminated attribute, found '{0}' but no matching '{1}' found.",attrStart,attrEnd);}
if(node.nodeType==NODE_TYPE_ELEMENT){if(node.hasAttribute(attrStart))depth++;if(node.hasAttribute(attrEnd))depth--;}
nodes.push(node);node=node.nextSibling;}while(depth>0);}else{nodes.push(node);}
return jqLite(nodes);}
function groupElementsLinkFnWrapper(linkFn,attrStart,attrEnd){return function(scope,element,attrs,controllers,transcludeFn){element=groupScan(element[0],attrStart,attrEnd);return linkFn(scope,element,attrs,controllers,transcludeFn);};}
function applyDirectivesToNode(directives,compileNode,templateAttrs,transcludeFn,jqCollection,originalReplaceDirective,preLinkFns,postLinkFns,previousCompileContext){previousCompileContext=previousCompileContext||{};var terminalPriority=-Number.MAX_VALUE,newScopeDirective=previousCompileContext.newScopeDirective,controllerDirectives=previousCompileContext.controllerDirectives,newIsolateScopeDirective=previousCompileContext.newIsolateScopeDirective,templateDirective=previousCompileContext.templateDirective,nonTlbTranscludeDirective=previousCompileContext.nonTlbTranscludeDirective,hasTranscludeDirective=false,hasTemplate=false,hasElementTranscludeDirective=previousCompileContext.hasElementTranscludeDirective,$compileNode=templateAttrs.$$element=jqLite(compileNode),directive,directiveName,$template,replaceDirective=originalReplaceDirective,childTranscludeFn=transcludeFn,linkFn,directiveValue;for(var i=0,ii=directives.length;i<ii;i++){directive=directives[i];var attrStart=directive.$$start;var attrEnd=directive.$$end;if(attrStart){$compileNode=groupScan(compileNode,attrStart,attrEnd);}
$template=undefined;if(terminalPriority>directive.priority){break;}
if(directiveValue=directive.scope){if(!directive.templateUrl){if(isObject(directiveValue)){assertNoDuplicate('new/isolated scope',newIsolateScopeDirective||newScopeDirective,directive,$compileNode);newIsolateScopeDirective=directive;}else{assertNoDuplicate('new/isolated scope',newIsolateScopeDirective,directive,$compileNode);}}
newScopeDirective=newScopeDirective||directive;}
directiveName=directive.name;if(!directive.templateUrl&&directive.controller){directiveValue=directive.controller;controllerDirectives=controllerDirectives||createMap();assertNoDuplicate("'"+directiveName+"' controller",controllerDirectives[directiveName],directive,$compileNode);controllerDirectives[directiveName]=directive;}
if(directiveValue=directive.transclude){hasTranscludeDirective=true;if(!directive.$$tlb){assertNoDuplicate('transclusion',nonTlbTranscludeDirective,directive,$compileNode);nonTlbTranscludeDirective=directive;}
if(directiveValue=='element'){hasElementTranscludeDirective=true;terminalPriority=directive.priority;$template=$compileNode;$compileNode=templateAttrs.$$element=jqLite(document.createComment(' '+directiveName+': '+
templateAttrs[directiveName]+' '));compileNode=$compileNode[0];replaceWith(jqCollection,sliceArgs($template),compileNode);childTranscludeFn=compile($template,transcludeFn,terminalPriority,replaceDirective&&replaceDirective.name,{nonTlbTranscludeDirective:nonTlbTranscludeDirective});}else{$template=jqLite(jqLiteClone(compileNode)).contents();$compileNode.empty();childTranscludeFn=compile($template,transcludeFn);}}
if(directive.template){hasTemplate=true;assertNoDuplicate('template',templateDirective,directive,$compileNode);templateDirective=directive;directiveValue=(isFunction(directive.template))?directive.template($compileNode,templateAttrs):directive.template;directiveValue=denormalizeTemplate(directiveValue);if(directive.replace){replaceDirective=directive;if(jqLiteIsTextNode(directiveValue)){$template=[];}else{$template=removeComments(wrapTemplate(directive.templateNamespace,trim(directiveValue)));}
compileNode=$template[0];if($template.length!=1||compileNode.nodeType!==NODE_TYPE_ELEMENT){throw $compileMinErr('tplrt',"Template for directive '{0}' must have exactly one root element. {1}",directiveName,'');}
replaceWith(jqCollection,$compileNode,compileNode);var newTemplateAttrs={$attr:{}};var templateDirectives=collectDirectives(compileNode,[],newTemplateAttrs);var unprocessedDirectives=directives.splice(i+1,directives.length-(i+1));if(newIsolateScopeDirective){markDirectivesAsIsolate(templateDirectives);}
directives=directives.concat(templateDirectives).concat(unprocessedDirectives);mergeTemplateAttributes(templateAttrs,newTemplateAttrs);ii=directives.length;}else{$compileNode.html(directiveValue);}}
if(directive.templateUrl){hasTemplate=true;assertNoDuplicate('template',templateDirective,directive,$compileNode);templateDirective=directive;if(directive.replace){replaceDirective=directive;}
nodeLinkFn=compileTemplateUrl(directives.splice(i,directives.length-i),$compileNode,templateAttrs,jqCollection,hasTranscludeDirective&&childTranscludeFn,preLinkFns,postLinkFns,{controllerDirectives:controllerDirectives,newScopeDirective:(newScopeDirective!==directive)&&newScopeDirective,newIsolateScopeDirective:newIsolateScopeDirective,templateDirective:templateDirective,nonTlbTranscludeDirective:nonTlbTranscludeDirective});ii=directives.length;}else if(directive.compile){try{linkFn=directive.compile($compileNode,templateAttrs,childTranscludeFn);if(isFunction(linkFn)){addLinkFns(null,linkFn,attrStart,attrEnd);}else if(linkFn){addLinkFns(linkFn.pre,linkFn.post,attrStart,attrEnd);}}catch(e){$exceptionHandler(e,startingTag($compileNode));}}
if(directive.terminal){nodeLinkFn.terminal=true;terminalPriority=Math.max(terminalPriority,directive.priority);}}
nodeLinkFn.scope=newScopeDirective&&newScopeDirective.scope===true;nodeLinkFn.transcludeOnThisElement=hasTranscludeDirective;nodeLinkFn.templateOnThisElement=hasTemplate;nodeLinkFn.transclude=childTranscludeFn;previousCompileContext.hasElementTranscludeDirective=hasElementTranscludeDirective;return nodeLinkFn;function addLinkFns(pre,post,attrStart,attrEnd){if(pre){if(attrStart)pre=groupElementsLinkFnWrapper(pre,attrStart,attrEnd);pre.require=directive.require;pre.directiveName=directiveName;if(newIsolateScopeDirective===directive||directive.$$isolateScope){pre=cloneAndAnnotateFn(pre,{isolateScope:true});}
preLinkFns.push(pre);}
if(post){if(attrStart)post=groupElementsLinkFnWrapper(post,attrStart,attrEnd);post.require=directive.require;post.directiveName=directiveName;if(newIsolateScopeDirective===directive||directive.$$isolateScope){post=cloneAndAnnotateFn(post,{isolateScope:true});}
postLinkFns.push(post);}}
function getControllers(directiveName,require,$element,elementControllers){var value;if(isString(require)){var match=require.match(REQUIRE_PREFIX_REGEXP);var name=require.substring(match[0].length);var inheritType=match[1]||match[3];var optional=match[2]==='?';if(inheritType==='^^'){$element=$element.parent();}else{value=elementControllers&&elementControllers[name];value=value&&value.instance;}
if(!value){var dataName='$'+name+'Controller';value=inheritType?$element.inheritedData(dataName):$element.data(dataName);}
if(!value&&!optional){throw $compileMinErr('ctreq',"Controller '{0}', required by directive '{1}', can't be found!",name,directiveName);}}else if(isArray(require)){value=[];for(var i=0,ii=require.length;i<ii;i++){value[i]=getControllers(directiveName,require[i],$element,elementControllers);}}
return value||null;}
function setupControllers($element,attrs,transcludeFn,controllerDirectives,isolateScope,scope){var elementControllers=createMap();for(var controllerKey in controllerDirectives){var directive=controllerDirectives[controllerKey];var locals={$scope:directive===newIsolateScopeDirective||directive.$$isolateScope?isolateScope:scope,$element:$element,$attrs:attrs,$transclude:transcludeFn};var controller=directive.controller;if(controller=='@'){controller=attrs[directive.name];}
var controllerInstance=$controller(controller,locals,true,directive.controllerAs);elementControllers[directive.name]=controllerInstance;if(!hasElementTranscludeDirective){$element.data('$'+directive.name+'Controller',controllerInstance.instance);}}
return elementControllers;}
function nodeLinkFn(childLinkFn,scope,linkNode,$rootElement,boundTranscludeFn,thisLinkFn){var i,ii,linkFn,controller,isolateScope,elementControllers,transcludeFn,$element,attrs;if(compileNode===linkNode){attrs=templateAttrs;$element=templateAttrs.$$element;}else{$element=jqLite(linkNode);attrs=new Attributes($element,templateAttrs);}
if(newIsolateScopeDirective){isolateScope=scope.$new(true);}
if(boundTranscludeFn){transcludeFn=controllersBoundTransclude;transcludeFn.$$boundTransclude=boundTranscludeFn;}
if(controllerDirectives){elementControllers=setupControllers($element,attrs,transcludeFn,controllerDirectives,isolateScope,scope);}
if(newIsolateScopeDirective){compile.$$addScopeInfo($element,isolateScope,true,!(templateDirective&&(templateDirective===newIsolateScopeDirective||templateDirective===newIsolateScopeDirective.$$originalDirective)));compile.$$addScopeClass($element,true);isolateScope.$$isolateBindings=newIsolateScopeDirective.$$isolateBindings;initializeDirectiveBindings(scope,attrs,isolateScope,isolateScope.$$isolateBindings,newIsolateScopeDirective,isolateScope);}
if(elementControllers){var scopeDirective=newIsolateScopeDirective||newScopeDirective;var bindings;var controllerForBindings;if(scopeDirective&&elementControllers[scopeDirective.name]){bindings=scopeDirective.$$bindings.bindToController;controller=elementControllers[scopeDirective.name];if(controller&&controller.identifier&&bindings){controllerForBindings=controller;thisLinkFn.$$destroyBindings=initializeDirectiveBindings(scope,attrs,controller.instance,bindings,scopeDirective);}}
for(i in elementControllers){controller=elementControllers[i];var controllerResult=controller();if(controllerResult!==controller.instance){controller.instance=controllerResult;$element.data('$'+i+'Controller',controllerResult);if(controller===controllerForBindings){thisLinkFn.$$destroyBindings();thisLinkFn.$$destroyBindings=initializeDirectiveBindings(scope,attrs,controllerResult,bindings,scopeDirective);}}}}
for(i=0,ii=preLinkFns.length;i<ii;i++){linkFn=preLinkFns[i];invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require&&getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn);}
var scopeToChild=scope;if(newIsolateScopeDirective&&(newIsolateScopeDirective.template||newIsolateScopeDirective.templateUrl===null)){scopeToChild=isolateScope;}
childLinkFn&&childLinkFn(scopeToChild,linkNode.childNodes,undefined,boundTranscludeFn);for(i=postLinkFns.length-1;i>=0;i--){linkFn=postLinkFns[i];invokeLinkFn(linkFn,linkFn.isolateScope?isolateScope:scope,$element,attrs,linkFn.require&&getControllers(linkFn.directiveName,linkFn.require,$element,elementControllers),transcludeFn);}
function controllersBoundTransclude(scope,cloneAttachFn,futureParentElement){var transcludeControllers;if(!isScope(scope)){futureParentElement=cloneAttachFn;cloneAttachFn=scope;scope=undefined;}
if(hasElementTranscludeDirective){transcludeControllers=elementControllers;}
if(!futureParentElement){futureParentElement=hasElementTranscludeDirective?$element.parent():$element;}
return boundTranscludeFn(scope,cloneAttachFn,transcludeControllers,futureParentElement,scopeToChild);}}}
function markDirectivesAsIsolate(directives){for(var j=0,jj=directives.length;j<jj;j++){directives[j]=inherit(directives[j],{$$isolateScope:true});}}
function addDirective(tDirectives,name,location,maxPriority,ignoreDirective,startAttrName,endAttrName){if(name===ignoreDirective)return null;var match=null;if(hasDirectives.hasOwnProperty(name)){for(var directive,directives=$injector.get(name+Suffix),i=0,ii=directives.length;i<ii;i++){try{directive=directives[i];if((isUndefined(maxPriority)||maxPriority>directive.priority)&&directive.restrict.indexOf(location)!=-1){if(startAttrName){directive=inherit(directive,{$$start:startAttrName,$$end:endAttrName});}
tDirectives.push(directive);match=directive;}}catch(e){$exceptionHandler(e);}}}
return match;}
function directiveIsMultiElement(name){if(hasDirectives.hasOwnProperty(name)){for(var directive,directives=$injector.get(name+Suffix),i=0,ii=directives.length;i<ii;i++){directive=directives[i];if(directive.multiElement){return true;}}}
return false;}
function mergeTemplateAttributes(dst,src){var srcAttr=src.$attr,dstAttr=dst.$attr,$element=dst.$$element;forEach(dst,function(value,key){if(key.charAt(0)!='$'){if(src[key]&&src[key]!==value){value+=(key==='style'?';':' ')+src[key];}
dst.$set(key,value,true,srcAttr[key]);}});forEach(src,function(value,key){if(key=='class'){safeAddClass($element,value);dst['class']=(dst['class']?dst['class']+' ':'')+value;}else if(key=='style'){$element.attr('style',$element.attr('style')+';'+value);dst['style']=(dst['style']?dst['style']+';':'')+value;}else if(key.charAt(0)!='$'&&!dst.hasOwnProperty(key)){dst[key]=value;dstAttr[key]=srcAttr[key];}});}
function compileTemplateUrl(directives,$compileNode,tAttrs,$rootElement,childTranscludeFn,preLinkFns,postLinkFns,previousCompileContext){var linkQueue=[],afterTemplateNodeLinkFn,afterTemplateChildLinkFn,beforeTemplateCompileNode=$compileNode[0],origAsyncDirective=directives.shift(),derivedSyncDirective=inherit(origAsyncDirective,{templateUrl:null,transclude:null,replace:null,$$originalDirective:origAsyncDirective}),templateUrl=(isFunction(origAsyncDirective.templateUrl))?origAsyncDirective.templateUrl($compileNode,tAttrs):origAsyncDirective.templateUrl,templateNamespace=origAsyncDirective.templateNamespace;$compileNode.empty();$templateRequest(templateUrl).then(function(content){var compileNode,tempTemplateAttrs,$template,childBoundTranscludeFn;content=denormalizeTemplate(content);if(origAsyncDirective.replace){if(jqLiteIsTextNode(content)){$template=[];}else{$template=removeComments(wrapTemplate(templateNamespace,trim(content)));}
compileNode=$template[0];if($template.length!=1||compileNode.nodeType!==NODE_TYPE_ELEMENT){throw $compileMinErr('tplrt',"Template for directive '{0}' must have exactly one root element. {1}",origAsyncDirective.name,templateUrl);}
tempTemplateAttrs={$attr:{}};replaceWith($rootElement,$compileNode,compileNode);var templateDirectives=collectDirectives(compileNode,[],tempTemplateAttrs);if(isObject(origAsyncDirective.scope)){markDirectivesAsIsolate(templateDirectives);}
directives=templateDirectives.concat(directives);mergeTemplateAttributes(tAttrs,tempTemplateAttrs);}else{compileNode=beforeTemplateCompileNode;$compileNode.html(content);}
directives.unshift(derivedSyncDirective);afterTemplateNodeLinkFn=applyDirectivesToNode(directives,compileNode,tAttrs,childTranscludeFn,$compileNode,origAsyncDirective,preLinkFns,postLinkFns,previousCompileContext);forEach($rootElement,function(node,i){if(node==compileNode){$rootElement[i]=$compileNode[0];}});afterTemplateChildLinkFn=compileNodes($compileNode[0].childNodes,childTranscludeFn);while(linkQueue.length){var scope=linkQueue.shift(),beforeTemplateLinkNode=linkQueue.shift(),linkRootElement=linkQueue.shift(),boundTranscludeFn=linkQueue.shift(),linkNode=$compileNode[0];if(scope.$$destroyed)continue;if(beforeTemplateLinkNode!==beforeTemplateCompileNode){var oldClasses=beforeTemplateLinkNode.className;if(!(previousCompileContext.hasElementTranscludeDirective&&origAsyncDirective.replace)){linkNode=jqLiteClone(compileNode);}
replaceWith(linkRootElement,jqLite(beforeTemplateLinkNode),linkNode);safeAddClass(jqLite(linkNode),oldClasses);}
if(afterTemplateNodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn=createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn);}else{childBoundTranscludeFn=boundTranscludeFn;}
afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,linkNode,$rootElement,childBoundTranscludeFn,afterTemplateNodeLinkFn);}
linkQueue=null;});return function delayedNodeLinkFn(ignoreChildLinkFn,scope,node,rootElement,boundTranscludeFn){var childBoundTranscludeFn=boundTranscludeFn;if(scope.$$destroyed)return;if(linkQueue){linkQueue.push(scope,node,rootElement,childBoundTranscludeFn);}else{if(afterTemplateNodeLinkFn.transcludeOnThisElement){childBoundTranscludeFn=createBoundTranscludeFn(scope,afterTemplateNodeLinkFn.transclude,boundTranscludeFn);}
afterTemplateNodeLinkFn(afterTemplateChildLinkFn,scope,node,rootElement,childBoundTranscludeFn,afterTemplateNodeLinkFn);}};}
function byPriority(a,b){var diff=b.priority-a.priority;if(diff!==0)return diff;if(a.name!==b.name)return(a.name<b.name)?-1:1;return a.index-b.index;}
function assertNoDuplicate(what,previousDirective,directive,element){function wrapModuleNameIfDefined(moduleName){return moduleName?(' (module: '+moduleName+')'):'';}
if(previousDirective){throw $compileMinErr('multidir','Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}',previousDirective.name,wrapModuleNameIfDefined(previousDirective.$$moduleName),directive.name,wrapModuleNameIfDefined(directive.$$moduleName),what,startingTag(element));}}
function addTextInterpolateDirective(directives,text){var interpolateFn=$interpolate(text,true);if(interpolateFn){directives.push({priority:0,compile:function textInterpolateCompileFn(templateNode){var templateNodeParent=templateNode.parent(),hasCompileParent=!!templateNodeParent.length;if(hasCompileParent)compile.$$addBindingClass(templateNodeParent);return function textInterpolateLinkFn(scope,node){var parent=node.parent();if(!hasCompileParent)compile.$$addBindingClass(parent);compile.$$addBindingInfo(parent,interpolateFn.expressions);scope.$watch(interpolateFn,function interpolateFnWatchAction(value){node[0].nodeValue=value;});};}});}}
function wrapTemplate(type,template){type=lowercase(type||'html');switch(type){case'svg':case'math':var wrapper=document.createElement('div');wrapper.innerHTML='<'+type+'>'+template+'</'+type+'>';return wrapper.childNodes[0].childNodes;default:return template;}}
function getTrustedContext(node,attrNormalizedName){if(attrNormalizedName=="srcdoc"){return $sce.HTML;}
var tag=nodeName_(node);if(attrNormalizedName=="xlinkHref"||(tag=="form"&&attrNormalizedName=="action")||(tag!="img"&&(attrNormalizedName=="src"||attrNormalizedName=="ngSrc"))){return $sce.RESOURCE_URL;}}
function addAttrInterpolateDirective(node,directives,value,name,allOrNothing){var trustedContext=getTrustedContext(node,name);allOrNothing=ALL_OR_NOTHING_ATTRS[name]||allOrNothing;var interpolateFn=$interpolate(value,true,trustedContext,allOrNothing);if(!interpolateFn)return;if(name==="multiple"&&nodeName_(node)==="select"){throw $compileMinErr("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",startingTag(node));}
directives.push({priority:100,compile:function(){return{pre:function attrInterpolatePreLinkFn(scope,element,attr){var $$observers=(attr.$$observers||(attr.$$observers=createMap()));if(EVENT_HANDLER_ATTR_REGEXP.test(name)){throw $compileMinErr('nodomevents',"Interpolations for HTML DOM event attributes are disallowed.  Please use the "+"ng- versions (such as ng-click instead of onclick) instead.");}
var newValue=attr[name];if(newValue!==value){interpolateFn=newValue&&$interpolate(newValue,true,trustedContext,allOrNothing);value=newValue;}
if(!interpolateFn)return;attr[name]=interpolateFn(scope);($$observers[name]||($$observers[name]=[])).$$inter=true;(attr.$$observers&&attr.$$observers[name].$$scope||scope).$watch(interpolateFn,function interpolateFnWatchAction(newValue,oldValue){if(name==='class'&&newValue!=oldValue){attr.$updateClass(newValue,oldValue);}else{attr.$set(name,newValue);}});}};}});}
function replaceWith($rootElement,elementsToRemove,newNode){var firstElementToRemove=elementsToRemove[0],removeCount=elementsToRemove.length,parent=firstElementToRemove.parentNode,i,ii;if($rootElement){for(i=0,ii=$rootElement.length;i<ii;i++){if($rootElement[i]==firstElementToRemove){$rootElement[i++]=newNode;for(var j=i,j2=j+removeCount-1,jj=$rootElement.length;j<jj;j++,j2++){if(j2<jj){$rootElement[j]=$rootElement[j2];}else{delete $rootElement[j];}}
$rootElement.length-=removeCount-1;if($rootElement.context===firstElementToRemove){$rootElement.context=newNode;}
break;}}}
if(parent){parent.replaceChild(newNode,firstElementToRemove);}
var fragment=document.createDocumentFragment();fragment.appendChild(firstElementToRemove);if(jqLite.hasData(firstElementToRemove)){jqLite(newNode).data(jqLite(firstElementToRemove).data());if(!jQuery){delete jqLite.cache[firstElementToRemove[jqLite.expando]];}else{skipDestroyOnNextJQueryCleanData=true;jQuery.cleanData([firstElementToRemove]);}}
for(var k=1,kk=elementsToRemove.length;k<kk;k++){var element=elementsToRemove[k];jqLite(element).remove();fragment.appendChild(element);delete elementsToRemove[k];}
elementsToRemove[0]=newNode;elementsToRemove.length=1;}
function cloneAndAnnotateFn(fn,annotation){return extend(function(){return fn.apply(null,arguments);},fn,annotation);}
function invokeLinkFn(linkFn,scope,$element,attrs,controllers,transcludeFn){try{linkFn(scope,$element,attrs,controllers,transcludeFn);}catch(e){$exceptionHandler(e,startingTag($element));}}
function initializeDirectiveBindings(scope,attrs,destination,bindings,directive,newScope){var onNewScopeDestroyed;forEach(bindings,function(definition,scopeName){var attrName=definition.attrName,optional=definition.optional,mode=definition.mode,lastValue,parentGet,parentSet,compare;switch(mode){case'@':if(!optional&&!hasOwnProperty.call(attrs,attrName)){destination[scopeName]=attrs[attrName]=void 0;}
attrs.$observe(attrName,function(value){if(isString(value)){destination[scopeName]=value;}});attrs.$$observers[attrName].$$scope=scope;if(isString(attrs[attrName])){destination[scopeName]=$interpolate(attrs[attrName])(scope);}
break;case'=':if(!hasOwnProperty.call(attrs,attrName)){if(optional)break;attrs[attrName]=void 0;}
if(optional&&!attrs[attrName])break;parentGet=$parse(attrs[attrName]);if(parentGet.literal){compare=equals;}else{compare=function(a,b){return a===b||(a!==a&&b!==b);};}
parentSet=parentGet.assign||function(){lastValue=destination[scopeName]=parentGet(scope);throw $compileMinErr('nonassign',"Expression '{0}' used with directive '{1}' is non-assignable!",attrs[attrName],directive.name);};lastValue=destination[scopeName]=parentGet(scope);var parentValueWatch=function parentValueWatch(parentValue){if(!compare(parentValue,destination[scopeName])){if(!compare(parentValue,lastValue)){destination[scopeName]=parentValue;}else{parentSet(scope,parentValue=destination[scopeName]);}}
return lastValue=parentValue;};parentValueWatch.$stateful=true;var unwatch;if(definition.collection){unwatch=scope.$watchCollection(attrs[attrName],parentValueWatch);}else{unwatch=scope.$watch($parse(attrs[attrName],parentValueWatch),null,parentGet.literal);}
onNewScopeDestroyed=(onNewScopeDestroyed||[]);onNewScopeDestroyed.push(unwatch);break;case'&':parentGet=attrs.hasOwnProperty(attrName)?$parse(attrs[attrName]):noop;if(parentGet===noop&&optional)break;destination[scopeName]=function(locals){return parentGet(scope,locals);};break;}});var destroyBindings=onNewScopeDestroyed?function destroyBindings(){for(var i=0,ii=onNewScopeDestroyed.length;i<ii;++i){onNewScopeDestroyed[i]();}}:noop;if(newScope&&destroyBindings!==noop){newScope.$on('$destroy',destroyBindings);return noop;}
return destroyBindings;}}];}
var PREFIX_REGEXP=/^((?:x|data)[\:\-_])/i;function directiveNormalize(name){return camelCase(name.replace(PREFIX_REGEXP,''));}
function nodesetLinkingFn(scope,nodeList,rootElement,boundTranscludeFn){}
function directiveLinkingFn(nodesetLinkingFn,scope,node,rootElement,boundTranscludeFn){}
function tokenDifference(str1,str2){var values='',tokens1=str1.split(/\s+/),tokens2=str2.split(/\s+/);outer:for(var i=0;i<tokens1.length;i++){var token=tokens1[i];for(var j=0;j<tokens2.length;j++){if(token==tokens2[j])continue outer;}
values+=(values.length>0?' ':'')+token;}
return values;}
function removeComments(jqNodes){jqNodes=jqLite(jqNodes);var i=jqNodes.length;if(i<=1){return jqNodes;}
while(i--){var node=jqNodes[i];if(node.nodeType===NODE_TYPE_COMMENT){splice.call(jqNodes,i,1);}}
return jqNodes;}
var $controllerMinErr=minErr('$controller');var CNTRL_REG=/^(\S+)(\s+as\s+(\w+))?$/;function identifierForController(controller,ident){if(ident&&isString(ident))return ident;if(isString(controller)){var match=CNTRL_REG.exec(controller);if(match)return match[3];}}
function $ControllerProvider(){var controllers={},globals=false;this.register=function(name,constructor){assertNotHasOwnProperty(name,'controller');if(isObject(name)){extend(controllers,name);}else{controllers[name]=constructor;}};this.allowGlobals=function(){globals=true;};this.$get=['$injector','$window',function($injector,$window){return function(expression,locals,later,ident){var instance,match,constructor,identifier;later=later===true;if(ident&&isString(ident)){identifier=ident;}
if(isString(expression)){match=expression.match(CNTRL_REG);if(!match){throw $controllerMinErr('ctrlfmt',"Badly formed controller string '{0}'. "+"Must match `__name__ as __id__` or `__name__`.",expression);}
constructor=match[1],identifier=identifier||match[3];expression=controllers.hasOwnProperty(constructor)?controllers[constructor]:getter(locals.$scope,constructor,true)||(globals?getter($window,constructor,true):undefined);assertArgFn(expression,constructor,true);}
if(later){var controllerPrototype=(isArray(expression)?expression[expression.length-1]:expression).prototype;instance=Object.create(controllerPrototype||null);if(identifier){addIdentifier(locals,identifier,instance,constructor||expression.name);}
var instantiate;return instantiate=extend(function(){var result=$injector.invoke(expression,instance,locals,constructor);if(result!==instance&&(isObject(result)||isFunction(result))){instance=result;if(identifier){addIdentifier(locals,identifier,instance,constructor||expression.name);}}
return instance;},{instance:instance,identifier:identifier});}
instance=$injector.instantiate(expression,locals,constructor);if(identifier){addIdentifier(locals,identifier,instance,constructor||expression.name);}
return instance;};function addIdentifier(locals,identifier,instance,name){if(!(locals&&isObject(locals.$scope))){throw minErr('$controller')('noscp',"Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",name,identifier);}
locals.$scope[identifier]=instance;}}];}
function $DocumentProvider(){this.$get=['$window',function(window){return jqLite(window.document);}];}
function $ExceptionHandlerProvider(){this.$get=['$log',function($log){return function(exception,cause){$log.error.apply($log,arguments);};}];}
var $$ForceReflowProvider=function(){this.$get=['$document',function($document){return function(domNode){if(domNode){if(!domNode.nodeType&&domNode instanceof jqLite){domNode=domNode[0];}}else{domNode=$document[0].body;}
return domNode.offsetWidth+1;};}];};var APPLICATION_JSON='application/json';var CONTENT_TYPE_APPLICATION_JSON={'Content-Type':APPLICATION_JSON+';charset=utf-8'};var JSON_START=/^\[|^\{(?!\{)/;var JSON_ENDS={'[':/]$/,'{':/}$/};var JSON_PROTECTION_PREFIX=/^\)\]\}',?\n/;var $httpMinErr=minErr('$http');var $httpMinErrLegacyFn=function(method){return function(){throw $httpMinErr('legacy','The method `{0}` on the promise returned from `$http` has been disabled.',method);};};function serializeValue(v){if(isObject(v)){return isDate(v)?v.toISOString():toJson(v);}
return v;}
function $HttpParamSerializerProvider(){this.$get=function(){return function ngParamSerializer(params){if(!params)return'';var parts=[];forEachSorted(params,function(value,key){if(value===null||isUndefined(value))return;if(isArray(value)){forEach(value,function(v,k){parts.push(encodeUriQuery(key)+'='+encodeUriQuery(serializeValue(v)));});}else{parts.push(encodeUriQuery(key)+'='+encodeUriQuery(serializeValue(value)));}});return parts.join('&');};};}
function $HttpParamSerializerJQLikeProvider(){this.$get=function(){return function jQueryLikeParamSerializer(params){if(!params)return'';var parts=[];serialize(params,'',true);return parts.join('&');function serialize(toSerialize,prefix,topLevel){if(toSerialize===null||isUndefined(toSerialize))return;if(isArray(toSerialize)){forEach(toSerialize,function(value,index){serialize(value,prefix+'['+(isObject(value)?index:'')+']');});}else if(isObject(toSerialize)&&!isDate(toSerialize)){forEachSorted(toSerialize,function(value,key){serialize(value,prefix+
(topLevel?'':'[')+
key+
(topLevel?'':']'));});}else{parts.push(encodeUriQuery(prefix)+'='+encodeUriQuery(serializeValue(toSerialize)));}}};};}
function defaultHttpResponseTransform(data,headers){if(isString(data)){var tempData=data.replace(JSON_PROTECTION_PREFIX,'').trim();if(tempData){var contentType=headers('Content-Type');if((contentType&&(contentType.indexOf(APPLICATION_JSON)===0))||isJsonLike(tempData)){data=fromJson(tempData);}}}
return data;}
function isJsonLike(str){var jsonStart=str.match(JSON_START);return jsonStart&&JSON_ENDS[jsonStart[0]].test(str);}
function parseHeaders(headers){var parsed=createMap(),i;function fillInParsed(key,val){if(key){parsed[key]=parsed[key]?parsed[key]+', '+val:val;}}
if(isString(headers)){forEach(headers.split('\n'),function(line){i=line.indexOf(':');fillInParsed(lowercase(trim(line.substr(0,i))),trim(line.substr(i+1)));});}else if(isObject(headers)){forEach(headers,function(headerVal,headerKey){fillInParsed(lowercase(headerKey),trim(headerVal));});}
return parsed;}
function headersGetter(headers){var headersObj;return function(name){if(!headersObj)headersObj=parseHeaders(headers);if(name){var value=headersObj[lowercase(name)];if(value===void 0){value=null;}
return value;}
return headersObj;};}
function transformData(data,headers,status,fns){if(isFunction(fns)){return fns(data,headers,status);}
forEach(fns,function(fn){data=fn(data,headers,status);});return data;}
function isSuccess(status){return 200<=status&&status<300;}
function $HttpProvider(){var defaults=this.defaults={transformResponse:[defaultHttpResponseTransform],transformRequest:[function(d){return isObject(d)&&!isFile(d)&&!isBlob(d)&&!isFormData(d)?toJson(d):d;}],headers:{common:{'Accept':'application/json, text/plain, */*'},post:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),put:shallowCopy(CONTENT_TYPE_APPLICATION_JSON),patch:shallowCopy(CONTENT_TYPE_APPLICATION_JSON)},xsrfCookieName:'XSRF-TOKEN',xsrfHeaderName:'X-XSRF-TOKEN',paramSerializer:'$httpParamSerializer'};var useApplyAsync=false;this.useApplyAsync=function(value){if(isDefined(value)){useApplyAsync=!!value;return this;}
return useApplyAsync;};var useLegacyPromise=true;this.useLegacyPromiseExtensions=function(value){if(isDefined(value)){useLegacyPromise=!!value;return this;}
return useLegacyPromise;};var interceptorFactories=this.interceptors=[];this.$get=['$httpBackend','$$cookieReader','$cacheFactory','$rootScope','$q','$injector',function($httpBackend,$$cookieReader,$cacheFactory,$rootScope,$q,$injector){var defaultCache=$cacheFactory('$http');defaults.paramSerializer=isString(defaults.paramSerializer)?$injector.get(defaults.paramSerializer):defaults.paramSerializer;var reversedInterceptors=[];forEach(interceptorFactories,function(interceptorFactory){reversedInterceptors.unshift(isString(interceptorFactory)?$injector.get(interceptorFactory):$injector.invoke(interceptorFactory));});function $http(requestConfig){if(!angular.isObject(requestConfig)){throw minErr('$http')('badreq','Http request configuration must be an object.  Received: {0}',requestConfig);}
var config=extend({method:'get',transformRequest:defaults.transformRequest,transformResponse:defaults.transformResponse,paramSerializer:defaults.paramSerializer},requestConfig);config.headers=mergeHeaders(requestConfig);config.method=uppercase(config.method);config.paramSerializer=isString(config.paramSerializer)?$injector.get(config.paramSerializer):config.paramSerializer;var serverRequest=function(config){var headers=config.headers;var reqData=transformData(config.data,headersGetter(headers),undefined,config.transformRequest);if(isUndefined(reqData)){forEach(headers,function(value,header){if(lowercase(header)==='content-type'){delete headers[header];}});}
if(isUndefined(config.withCredentials)&&!isUndefined(defaults.withCredentials)){config.withCredentials=defaults.withCredentials;}
return sendReq(config,reqData).then(transformResponse,transformResponse);};var chain=[serverRequest,undefined];var promise=$q.when(config);forEach(reversedInterceptors,function(interceptor){if(interceptor.request||interceptor.requestError){chain.unshift(interceptor.request,interceptor.requestError);}
if(interceptor.response||interceptor.responseError){chain.push(interceptor.response,interceptor.responseError);}});while(chain.length){var thenFn=chain.shift();var rejectFn=chain.shift();promise=promise.then(thenFn,rejectFn);}
if(useLegacyPromise){promise.success=function(fn){assertArgFn(fn,'fn');promise.then(function(response){fn(response.data,response.status,response.headers,config);});return promise;};promise.error=function(fn){assertArgFn(fn,'fn');promise.then(null,function(response){fn(response.data,response.status,response.headers,config);});return promise;};}else{promise.success=$httpMinErrLegacyFn('success');promise.error=$httpMinErrLegacyFn('error');}
return promise;function transformResponse(response){var resp=extend({},response);if(!response.data){resp.data=response.data;}else{resp.data=transformData(response.data,response.headers,response.status,config.transformResponse);}
return(isSuccess(response.status))?resp:$q.reject(resp);}
function executeHeaderFns(headers,config){var headerContent,processedHeaders={};forEach(headers,function(headerFn,header){if(isFunction(headerFn)){headerContent=headerFn(config);if(headerContent!=null){processedHeaders[header]=headerContent;}}else{processedHeaders[header]=headerFn;}});return processedHeaders;}
function mergeHeaders(config){var defHeaders=defaults.headers,reqHeaders=extend({},config.headers),defHeaderName,lowercaseDefHeaderName,reqHeaderName;defHeaders=extend({},defHeaders.common,defHeaders[lowercase(config.method)]);defaultHeadersIteration:for(defHeaderName in defHeaders){lowercaseDefHeaderName=lowercase(defHeaderName);for(reqHeaderName in reqHeaders){if(lowercase(reqHeaderName)===lowercaseDefHeaderName){continue defaultHeadersIteration;}}
reqHeaders[defHeaderName]=defHeaders[defHeaderName];}
return executeHeaderFns(reqHeaders,shallowCopy(config));}}
$http.pendingRequests=[];createShortMethods('get','delete','head','jsonp');createShortMethodsWithData('post','put','patch');$http.defaults=defaults;return $http;function createShortMethods(names){forEach(arguments,function(name){$http[name]=function(url,config){return $http(extend({},config||{},{method:name,url:url}));};});}
function createShortMethodsWithData(name){forEach(arguments,function(name){$http[name]=function(url,data,config){return $http(extend({},config||{},{method:name,url:url,data:data}));};});}
function sendReq(config,reqData){var deferred=$q.defer(),promise=deferred.promise,cache,cachedResp,reqHeaders=config.headers,url=buildUrl(config.url,config.paramSerializer(config.params));$http.pendingRequests.push(config);promise.then(removePendingReq,removePendingReq);if((config.cache||defaults.cache)&&config.cache!==false&&(config.method==='GET'||config.method==='JSONP')){cache=isObject(config.cache)?config.cache:isObject(defaults.cache)?defaults.cache:defaultCache;}
if(cache){cachedResp=cache.get(url);if(isDefined(cachedResp)){if(isPromiseLike(cachedResp)){cachedResp.then(resolvePromiseWithResult,resolvePromiseWithResult);}else{if(isArray(cachedResp)){resolvePromise(cachedResp[1],cachedResp[0],shallowCopy(cachedResp[2]),cachedResp[3]);}else{resolvePromise(cachedResp,200,{},'OK');}}}else{cache.put(url,promise);}}
if(isUndefined(cachedResp)){var xsrfValue=urlIsSameOrigin(config.url)?$$cookieReader()[config.xsrfCookieName||defaults.xsrfCookieName]:undefined;if(xsrfValue){reqHeaders[(config.xsrfHeaderName||defaults.xsrfHeaderName)]=xsrfValue;}
$httpBackend(config.method,url,reqData,done,reqHeaders,config.timeout,config.withCredentials,config.responseType);}
return promise;function done(status,response,headersString,statusText){if(cache){if(isSuccess(status)){cache.put(url,[status,response,parseHeaders(headersString),statusText]);}else{cache.remove(url);}}
function resolveHttpPromise(){resolvePromise(response,status,headersString,statusText);}
if(useApplyAsync){$rootScope.$applyAsync(resolveHttpPromise);}else{resolveHttpPromise();if(!$rootScope.$$phase)$rootScope.$apply();}}
function resolvePromise(response,status,headers,statusText){status=status>=-1?status:0;(isSuccess(status)?deferred.resolve:deferred.reject)({data:response,status:status,headers:headersGetter(headers),config:config,statusText:statusText});}
function resolvePromiseWithResult(result){resolvePromise(result.data,result.status,shallowCopy(result.headers()),result.statusText);}
function removePendingReq(){var idx=$http.pendingRequests.indexOf(config);if(idx!==-1)$http.pendingRequests.splice(idx,1);}}
function buildUrl(url,serializedParams){if(serializedParams.length>0){url+=((url.indexOf('?')==-1)?'?':'&')+serializedParams;}
return url;}}];}
function $xhrFactoryProvider(){this.$get=function(){return function createXhr(){return new window.XMLHttpRequest();};};}
function $HttpBackendProvider(){this.$get=['$browser','$window','$document','$xhrFactory',function($browser,$window,$document,$xhrFactory){return createHttpBackend($browser,$xhrFactory,$browser.defer,$window.angular.callbacks,$document[0]);}];}
function createHttpBackend($browser,createXhr,$browserDefer,callbacks,rawDocument){return function(method,url,post,callback,headers,timeout,withCredentials,responseType){$browser.$$incOutstandingRequestCount();url=url||$browser.url();if(lowercase(method)=='jsonp'){var callbackId='_'+(callbacks.counter++).toString(36);callbacks[callbackId]=function(data){callbacks[callbackId].data=data;callbacks[callbackId].called=true;};var jsonpDone=jsonpReq(url.replace('JSON_CALLBACK','angular.callbacks.'+callbackId),callbackId,function(status,text){completeRequest(callback,status,callbacks[callbackId].data,"",text);callbacks[callbackId]=noop;});}else{var xhr=createXhr(method,url);xhr.open(method,url,true);forEach(headers,function(value,key){if(isDefined(value)){xhr.setRequestHeader(key,value);}});xhr.onload=function requestLoaded(){var statusText=xhr.statusText||'';var response=('response'in xhr)?xhr.response:xhr.responseText;var status=xhr.status===1223?204:xhr.status;if(status===0){status=response?200:urlResolve(url).protocol=='file'?404:0;}
completeRequest(callback,status,response,xhr.getAllResponseHeaders(),statusText);};var requestError=function(){completeRequest(callback,-1,null,null,'');};xhr.onerror=requestError;xhr.onabort=requestError;if(withCredentials){xhr.withCredentials=true;}
if(responseType){try{xhr.responseType=responseType;}catch(e){if(responseType!=='json'){throw e;}}}
xhr.send(isUndefined(post)?null:post);}
if(timeout>0){var timeoutId=$browserDefer(timeoutRequest,timeout);}else if(isPromiseLike(timeout)){timeout.then(timeoutRequest);}
function timeoutRequest(){jsonpDone&&jsonpDone();xhr&&xhr.abort();}
function completeRequest(callback,status,response,headersString,statusText){if(isDefined(timeoutId)){$browserDefer.cancel(timeoutId);}
jsonpDone=xhr=null;callback(status,response,headersString,statusText);$browser.$$completeOutstandingRequest(noop);}};function jsonpReq(url,callbackId,done){var script=rawDocument.createElement('script'),callback=null;script.type="text/javascript";script.src=url;script.async=true;callback=function(event){removeEventListenerFn(script,"load",callback);removeEventListenerFn(script,"error",callback);rawDocument.body.removeChild(script);script=null;var status=-1;var text="unknown";if(event){if(event.type==="load"&&!callbacks[callbackId].called){event={type:"error"};}
text=event.type;status=event.type==="error"?404:200;}
if(done){done(status,text);}};addEventListenerFn(script,"load",callback);addEventListenerFn(script,"error",callback);rawDocument.body.appendChild(script);return callback;}}
var $interpolateMinErr=angular.$interpolateMinErr=minErr('$interpolate');$interpolateMinErr.throwNoconcat=function(text){throw $interpolateMinErr('noconcat',"Error while interpolating: {0}\nStrict Contextual Escaping disallows "+"interpolations that concatenate multiple expressions when a trusted value is "+"required.  See http://docs.angularjs.org/api/ng.$sce",text);};$interpolateMinErr.interr=function(text,err){return $interpolateMinErr('interr',"Can't interpolate: {0}\n{1}",text,err.toString());};function $InterpolateProvider(){var startSymbol='{{';var endSymbol='}}';this.startSymbol=function(value){if(value){startSymbol=value;return this;}else{return startSymbol;}};this.endSymbol=function(value){if(value){endSymbol=value;return this;}else{return endSymbol;}};this.$get=['$parse','$exceptionHandler','$sce',function($parse,$exceptionHandler,$sce){var startSymbolLength=startSymbol.length,endSymbolLength=endSymbol.length,escapedStartRegexp=new RegExp(startSymbol.replace(/./g,escape),'g'),escapedEndRegexp=new RegExp(endSymbol.replace(/./g,escape),'g');function escape(ch){return'\\\\\\'+ch;}
function unescapeText(text){return text.replace(escapedStartRegexp,startSymbol).replace(escapedEndRegexp,endSymbol);}
function stringify(value){if(value==null){return'';}
switch(typeof value){case'string':break;case'number':value=''+value;break;default:value=toJson(value);}
return value;}
function $interpolate(text,mustHaveExpression,trustedContext,allOrNothing){allOrNothing=!!allOrNothing;var startIndex,endIndex,index=0,expressions=[],parseFns=[],textLength=text.length,exp,concat=[],expressionPositions=[];while(index<textLength){if(((startIndex=text.indexOf(startSymbol,index))!=-1)&&((endIndex=text.indexOf(endSymbol,startIndex+startSymbolLength))!=-1)){if(index!==startIndex){concat.push(unescapeText(text.substring(index,startIndex)));}
exp=text.substring(startIndex+startSymbolLength,endIndex);expressions.push(exp);parseFns.push($parse(exp,parseStringifyInterceptor));index=endIndex+endSymbolLength;expressionPositions.push(concat.length);concat.push('');}else{if(index!==textLength){concat.push(unescapeText(text.substring(index)));}
break;}}
if(trustedContext&&concat.length>1){$interpolateMinErr.throwNoconcat(text);}
if(!mustHaveExpression||expressions.length){var compute=function(values){for(var i=0,ii=expressions.length;i<ii;i++){if(allOrNothing&&isUndefined(values[i]))return;concat[expressionPositions[i]]=values[i];}
return concat.join('');};var getValue=function(value){return trustedContext?$sce.getTrusted(trustedContext,value):$sce.valueOf(value);};return extend(function interpolationFn(context){var i=0;var ii=expressions.length;var values=new Array(ii);try{for(;i<ii;i++){values[i]=parseFns[i](context);}
return compute(values);}catch(err){$exceptionHandler($interpolateMinErr.interr(text,err));}},{exp:text,expressions:expressions,$$watchDelegate:function(scope,listener){var lastValue;return scope.$watchGroup(parseFns,function interpolateFnWatcher(values,oldValues){var currValue=compute(values);if(isFunction(listener)){listener.call(this,currValue,values!==oldValues?lastValue:currValue,scope);}
lastValue=currValue;});}});}
function parseStringifyInterceptor(value){try{value=getValue(value);return allOrNothing&&!isDefined(value)?value:stringify(value);}catch(err){$exceptionHandler($interpolateMinErr.interr(text,err));}}}
$interpolate.startSymbol=function(){return startSymbol;};$interpolate.endSymbol=function(){return endSymbol;};return $interpolate;}];}
function $IntervalProvider(){this.$get=['$rootScope','$window','$q','$$q',function($rootScope,$window,$q,$$q){var intervals={};function interval(fn,delay,count,invokeApply){var hasParams=arguments.length>4,args=hasParams?sliceArgs(arguments,4):[],setInterval=$window.setInterval,clearInterval=$window.clearInterval,iteration=0,skipApply=(isDefined(invokeApply)&&!invokeApply),deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise;count=isDefined(count)?count:0;promise.then(null,null,(!hasParams)?fn:function(){fn.apply(null,args);});promise.$$intervalId=setInterval(function tick(){deferred.notify(iteration++);if(count>0&&iteration>=count){deferred.resolve(iteration);clearInterval(promise.$$intervalId);delete intervals[promise.$$intervalId];}
if(!skipApply)$rootScope.$apply();},delay);intervals[promise.$$intervalId]=deferred;return promise;}
interval.cancel=function(promise){if(promise&&promise.$$intervalId in intervals){intervals[promise.$$intervalId].reject('canceled');$window.clearInterval(promise.$$intervalId);delete intervals[promise.$$intervalId];return true;}
return false;};return interval;}];}
var PATH_MATCH=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,DEFAULT_PORTS={'http':80,'https':443,'ftp':21};var $locationMinErr=minErr('$location');function encodePath(path){var segments=path.split('/'),i=segments.length;while(i--){segments[i]=encodeUriSegment(segments[i]);}
return segments.join('/');}
function parseAbsoluteUrl(absoluteUrl,locationObj){var parsedUrl=urlResolve(absoluteUrl);locationObj.$$protocol=parsedUrl.protocol;locationObj.$$host=parsedUrl.hostname;locationObj.$$port=toInt(parsedUrl.port)||DEFAULT_PORTS[parsedUrl.protocol]||null;}
function parseAppUrl(relativeUrl,locationObj){var prefixed=(relativeUrl.charAt(0)!=='/');if(prefixed){relativeUrl='/'+relativeUrl;}
var match=urlResolve(relativeUrl);locationObj.$$path=decodeURIComponent(prefixed&&match.pathname.charAt(0)==='/'?match.pathname.substring(1):match.pathname);locationObj.$$search=parseKeyValue(match.search);locationObj.$$hash=decodeURIComponent(match.hash);if(locationObj.$$path&&locationObj.$$path.charAt(0)!='/'){locationObj.$$path='/'+locationObj.$$path;}}
function beginsWith(begin,whole){if(whole.indexOf(begin)===0){return whole.substr(begin.length);}}
function stripHash(url){var index=url.indexOf('#');return index==-1?url:url.substr(0,index);}
function trimEmptyHash(url){return url.replace(/(#.+)|#$/,'$1');}
function stripFile(url){return url.substr(0,stripHash(url).lastIndexOf('/')+1);}
function serverBase(url){return url.substring(0,url.indexOf('/',url.indexOf('//')+2));}
function LocationHtml5Url(appBase,appBaseNoFile,basePrefix){this.$$html5=true;basePrefix=basePrefix||'';parseAbsoluteUrl(appBase,this);this.$$parse=function(url){var pathUrl=beginsWith(appBaseNoFile,url);if(!isString(pathUrl)){throw $locationMinErr('ipthprfx','Invalid url "{0}", missing path prefix "{1}".',url,appBaseNoFile);}
parseAppUrl(pathUrl,this);if(!this.$$path){this.$$path='/';}
this.$$compose();};this.$$compose=function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#'+encodeUriSegment(this.$$hash):'';this.$$url=encodePath(this.$$path)+(search?'?'+search:'')+hash;this.$$absUrl=appBaseNoFile+this.$$url.substr(1);};this.$$parseLinkUrl=function(url,relHref){if(relHref&&relHref[0]==='#'){this.hash(relHref.slice(1));return true;}
var appUrl,prevAppUrl;var rewrittenUrl;if(isDefined(appUrl=beginsWith(appBase,url))){prevAppUrl=appUrl;if(isDefined(appUrl=beginsWith(basePrefix,appUrl))){rewrittenUrl=appBaseNoFile+(beginsWith('/',appUrl)||appUrl);}else{rewrittenUrl=appBase+prevAppUrl;}}else if(isDefined(appUrl=beginsWith(appBaseNoFile,url))){rewrittenUrl=appBaseNoFile+appUrl;}else if(appBaseNoFile==url+'/'){rewrittenUrl=appBaseNoFile;}
if(rewrittenUrl){this.$$parse(rewrittenUrl);}
return!!rewrittenUrl;};}
function LocationHashbangUrl(appBase,appBaseNoFile,hashPrefix){parseAbsoluteUrl(appBase,this);this.$$parse=function(url){var withoutBaseUrl=beginsWith(appBase,url)||beginsWith(appBaseNoFile,url);var withoutHashUrl;if(!isUndefined(withoutBaseUrl)&&withoutBaseUrl.charAt(0)==='#'){withoutHashUrl=beginsWith(hashPrefix,withoutBaseUrl);if(isUndefined(withoutHashUrl)){withoutHashUrl=withoutBaseUrl;}}else{if(this.$$html5){withoutHashUrl=withoutBaseUrl;}else{withoutHashUrl='';if(isUndefined(withoutBaseUrl)){appBase=url;this.replace();}}}
parseAppUrl(withoutHashUrl,this);this.$$path=removeWindowsDriveName(this.$$path,withoutHashUrl,appBase);this.$$compose();function removeWindowsDriveName(path,url,base){var windowsFilePathExp=/^\/[A-Z]:(\/.*)/;var firstPathSegmentMatch;if(url.indexOf(base)===0){url=url.replace(base,'');}
if(windowsFilePathExp.exec(url)){return path;}
firstPathSegmentMatch=windowsFilePathExp.exec(path);return firstPathSegmentMatch?firstPathSegmentMatch[1]:path;}};this.$$compose=function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#'+encodeUriSegment(this.$$hash):'';this.$$url=encodePath(this.$$path)+(search?'?'+search:'')+hash;this.$$absUrl=appBase+(this.$$url?hashPrefix+this.$$url:'');};this.$$parseLinkUrl=function(url,relHref){if(stripHash(appBase)==stripHash(url)){this.$$parse(url);return true;}
return false;};}
function LocationHashbangInHtml5Url(appBase,appBaseNoFile,hashPrefix){this.$$html5=true;LocationHashbangUrl.apply(this,arguments);this.$$parseLinkUrl=function(url,relHref){if(relHref&&relHref[0]==='#'){this.hash(relHref.slice(1));return true;}
var rewrittenUrl;var appUrl;if(appBase==stripHash(url)){rewrittenUrl=url;}else if((appUrl=beginsWith(appBaseNoFile,url))){rewrittenUrl=appBase+hashPrefix+appUrl;}else if(appBaseNoFile===url+'/'){rewrittenUrl=appBaseNoFile;}
if(rewrittenUrl){this.$$parse(rewrittenUrl);}
return!!rewrittenUrl;};this.$$compose=function(){var search=toKeyValue(this.$$search),hash=this.$$hash?'#'+encodeUriSegment(this.$$hash):'';this.$$url=encodePath(this.$$path)+(search?'?'+search:'')+hash;this.$$absUrl=appBase+hashPrefix+this.$$url;};}
var locationPrototype={$$html5:false,$$replace:false,absUrl:locationGetter('$$absUrl'),url:function(url){if(isUndefined(url)){return this.$$url;}
var match=PATH_MATCH.exec(url);if(match[1]||url==='')this.path(decodeURIComponent(match[1]));if(match[2]||match[1]||url==='')this.search(match[3]||'');this.hash(match[5]||'');return this;},protocol:locationGetter('$$protocol'),host:locationGetter('$$host'),port:locationGetter('$$port'),path:locationGetterSetter('$$path',function(path){path=path!==null?path.toString():'';return path.charAt(0)=='/'?path:'/'+path;}),search:function(search,paramValue){switch(arguments.length){case 0:return this.$$search;case 1:if(isString(search)||isNumber(search)){search=search.toString();this.$$search=parseKeyValue(search);}else if(isObject(search)){search=copy(search,{});forEach(search,function(value,key){if(value==null)delete search[key];});this.$$search=search;}else{throw $locationMinErr('isrcharg','The first argument of the `$location#search()` call must be a string or an object.');}
break;default:if(isUndefined(paramValue)||paramValue===null){delete this.$$search[search];}else{this.$$search[search]=paramValue;}}
this.$$compose();return this;},hash:locationGetterSetter('$$hash',function(hash){return hash!==null?hash.toString():'';}),replace:function(){this.$$replace=true;return this;}};forEach([LocationHashbangInHtml5Url,LocationHashbangUrl,LocationHtml5Url],function(Location){Location.prototype=Object.create(locationPrototype);Location.prototype.state=function(state){if(!arguments.length){return this.$$state;}
if(Location!==LocationHtml5Url||!this.$$html5){throw $locationMinErr('nostate','History API state support is available only '+'in HTML5 mode and only in browsers supporting HTML5 History API');}
this.$$state=isUndefined(state)?null:state;return this;};});function locationGetter(property){return function(){return this[property];};}
function locationGetterSetter(property,preprocess){return function(value){if(isUndefined(value)){return this[property];}
this[property]=preprocess(value);this.$$compose();return this;};}
function $LocationProvider(){var hashPrefix='',html5Mode={enabled:false,requireBase:true,rewriteLinks:true};this.hashPrefix=function(prefix){if(isDefined(prefix)){hashPrefix=prefix;return this;}else{return hashPrefix;}};this.html5Mode=function(mode){if(isBoolean(mode)){html5Mode.enabled=mode;return this;}else if(isObject(mode)){if(isBoolean(mode.enabled)){html5Mode.enabled=mode.enabled;}
if(isBoolean(mode.requireBase)){html5Mode.requireBase=mode.requireBase;}
if(isBoolean(mode.rewriteLinks)){html5Mode.rewriteLinks=mode.rewriteLinks;}
return this;}else{return html5Mode;}};this.$get=['$rootScope','$browser','$sniffer','$rootElement','$window',function($rootScope,$browser,$sniffer,$rootElement,$window){var $location,LocationMode,baseHref=$browser.baseHref(),initialUrl=$browser.url(),appBase;if(html5Mode.enabled){if(!baseHref&&html5Mode.requireBase){throw $locationMinErr('nobase',"$location in HTML5 mode requires a <base> tag to be present!");}
appBase=serverBase(initialUrl)+(baseHref||'/');LocationMode=$sniffer.history?LocationHtml5Url:LocationHashbangInHtml5Url;}else{appBase=stripHash(initialUrl);LocationMode=LocationHashbangUrl;}
var appBaseNoFile=stripFile(appBase);$location=new LocationMode(appBase,appBaseNoFile,'#'+hashPrefix);$location.$$parseLinkUrl(initialUrl,initialUrl);$location.$$state=$browser.state();var IGNORE_URI_REGEXP=/^\s*(javascript|mailto):/i;function setBrowserUrlWithFallback(url,replace,state){var oldUrl=$location.url();var oldState=$location.$$state;try{$browser.url(url,replace,state);$location.$$state=$browser.state();}catch(e){$location.url(oldUrl);$location.$$state=oldState;throw e;}}
$rootElement.on('click',function(event){if(!html5Mode.rewriteLinks||event.ctrlKey||event.metaKey||event.shiftKey||event.which==2||event.button==2)return;var elm=jqLite(event.target);while(nodeName_(elm[0])!=='a'){if(elm[0]===$rootElement[0]||!(elm=elm.parent())[0])return;}
var absHref=elm.prop('href');var relHref=elm.attr('href')||elm.attr('xlink:href');if(isObject(absHref)&&absHref.toString()==='[object SVGAnimatedString]'){absHref=urlResolve(absHref.animVal).href;}
if(IGNORE_URI_REGEXP.test(absHref))return;if(absHref&&!elm.attr('target')&&!event.isDefaultPrevented()){if($location.$$parseLinkUrl(absHref,relHref)){event.preventDefault();if($location.absUrl()!=$browser.url()){$rootScope.$apply();$window.angular['ff-684208-preventDefault']=true;}}}});if(trimEmptyHash($location.absUrl())!=trimEmptyHash(initialUrl)){$browser.url($location.absUrl(),true);}
var initializing=true;$browser.onUrlChange(function(newUrl,newState){if(isUndefined(beginsWith(appBaseNoFile,newUrl))){$window.location.href=newUrl;return;}
$rootScope.$evalAsync(function(){var oldUrl=$location.absUrl();var oldState=$location.$$state;var defaultPrevented;$location.$$parse(newUrl);$location.$$state=newState;defaultPrevented=$rootScope.$broadcast('$locationChangeStart',newUrl,oldUrl,newState,oldState).defaultPrevented;if($location.absUrl()!==newUrl)return;if(defaultPrevented){$location.$$parse(oldUrl);$location.$$state=oldState;setBrowserUrlWithFallback(oldUrl,false,oldState);}else{initializing=false;afterLocationChange(oldUrl,oldState);}});if(!$rootScope.$$phase)$rootScope.$digest();});$rootScope.$watch(function $locationWatch(){var oldUrl=trimEmptyHash($browser.url());var newUrl=trimEmptyHash($location.absUrl());var oldState=$browser.state();var currentReplace=$location.$$replace;var urlOrStateChanged=oldUrl!==newUrl||($location.$$html5&&$sniffer.history&&oldState!==$location.$$state);if(initializing||urlOrStateChanged){initializing=false;$rootScope.$evalAsync(function(){var newUrl=$location.absUrl();var defaultPrevented=$rootScope.$broadcast('$locationChangeStart',newUrl,oldUrl,$location.$$state,oldState).defaultPrevented;if($location.absUrl()!==newUrl)return;if(defaultPrevented){$location.$$parse(oldUrl);$location.$$state=oldState;}else{if(urlOrStateChanged){setBrowserUrlWithFallback(newUrl,currentReplace,oldState===$location.$$state?null:$location.$$state);}
afterLocationChange(oldUrl,oldState);}});}
$location.$$replace=false;});return $location;function afterLocationChange(oldUrl,oldState){$rootScope.$broadcast('$locationChangeSuccess',$location.absUrl(),oldUrl,$location.$$state,oldState);}}];}
function $LogProvider(){var debug=true,self=this;this.debugEnabled=function(flag){if(isDefined(flag)){debug=flag;return this;}else{return debug;}};this.$get=['$window',function($window){return{log:consoleLog('log'),info:consoleLog('info'),warn:consoleLog('warn'),error:consoleLog('error'),debug:(function(){var fn=consoleLog('debug');return function(){if(debug){fn.apply(self,arguments);}};}())};function formatError(arg){if(arg instanceof Error){if(arg.stack){arg=(arg.message&&arg.stack.indexOf(arg.message)===-1)?'Error: '+arg.message+'\n'+arg.stack:arg.stack;}else if(arg.sourceURL){arg=arg.message+'\n'+arg.sourceURL+':'+arg.line;}}
return arg;}
function consoleLog(type){var console=$window.console||{},logFn=console[type]||console.log||noop,hasApply=false;try{hasApply=!!logFn.apply;}catch(e){}
if(hasApply){return function(){var args=[];forEach(arguments,function(arg){args.push(formatError(arg));});return logFn.apply(console,args);};}
return function(arg1,arg2){logFn(arg1,arg2==null?'':arg2);};}}];}
var $parseMinErr=minErr('$parse');function ensureSafeMemberName(name,fullExpression){if(name==="__defineGetter__"||name==="__defineSetter__"||name==="__lookupGetter__"||name==="__lookupSetter__"||name==="__proto__"){throw $parseMinErr('isecfld','Attempting to access a disallowed field in Angular expressions! '
+'Expression: {0}',fullExpression);}
return name;}
function getStringValue(name,fullExpression){name=name+'';if(!isString(name)){throw $parseMinErr('iseccst','Cannot convert object to primitive value! '
+'Expression: {0}',fullExpression);}
return name;}
function ensureSafeObject(obj,fullExpression){if(obj){if(obj.constructor===obj){throw $parseMinErr('isecfn','Referencing Function in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj.window===obj){throw $parseMinErr('isecwindow','Referencing the Window in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj.children&&(obj.nodeName||(obj.prop&&obj.attr&&obj.find))){throw $parseMinErr('isecdom','Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj===Object){throw $parseMinErr('isecobj','Referencing Object in Angular expressions is disallowed! Expression: {0}',fullExpression);}}
return obj;}
var CALL=Function.prototype.call;var APPLY=Function.prototype.apply;var BIND=Function.prototype.bind;function ensureSafeFunction(obj,fullExpression){if(obj){if(obj.constructor===obj){throw $parseMinErr('isecfn','Referencing Function in Angular expressions is disallowed! Expression: {0}',fullExpression);}else if(obj===CALL||obj===APPLY||obj===BIND){throw $parseMinErr('isecff','Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}',fullExpression);}}}
function ensureSafeAssignContext(obj,fullExpression){if(obj){if(obj===(0).constructor||obj===(false).constructor||obj===''.constructor||obj==={}.constructor||obj===[].constructor||obj===Function.constructor){throw $parseMinErr('isecaf','Assigning to a constructor is disallowed! Expression: {0}',fullExpression);}}}
var OPERATORS=createMap();forEach('+ - * / % === !== == != < > <= >= && || ! = |'.split(' '),function(operator){OPERATORS[operator]=true;});var ESCAPE={"n":"\n","f":"\f","r":"\r","t":"\t","v":"\v","'":"'",'"':'"'};var Lexer=function(options){this.options=options;};Lexer.prototype={constructor:Lexer,lex:function(text){this.text=text;this.index=0;this.tokens=[];while(this.index<this.text.length){var ch=this.text.charAt(this.index);if(ch==='"'||ch==="'"){this.readString(ch);}else if(this.isNumber(ch)||ch==='.'&&this.isNumber(this.peek())){this.readNumber();}else if(this.isIdent(ch)){this.readIdent();}else if(this.is(ch,'(){}[].,;:?')){this.tokens.push({index:this.index,text:ch});this.index++;}else if(this.isWhitespace(ch)){this.index++;}else{var ch2=ch+this.peek();var ch3=ch2+this.peek(2);var op1=OPERATORS[ch];var op2=OPERATORS[ch2];var op3=OPERATORS[ch3];if(op1||op2||op3){var token=op3?ch3:(op2?ch2:ch);this.tokens.push({index:this.index,text:token,operator:true});this.index+=token.length;}else{this.throwError('Unexpected next character ',this.index,this.index+1);}}}
return this.tokens;},is:function(ch,chars){return chars.indexOf(ch)!==-1;},peek:function(i){var num=i||1;return(this.index+num<this.text.length)?this.text.charAt(this.index+num):false;},isNumber:function(ch){return('0'<=ch&&ch<='9')&&typeof ch==="string";},isWhitespace:function(ch){return(ch===' '||ch==='\r'||ch==='\t'||ch==='\n'||ch==='\v'||ch==='\u00A0');},isIdent:function(ch){return('a'<=ch&&ch<='z'||'A'<=ch&&ch<='Z'||'_'===ch||ch==='$');},isExpOperator:function(ch){return(ch==='-'||ch==='+'||this.isNumber(ch));},throwError:function(error,start,end){end=end||this.index;var colStr=(isDefined(start)?'s '+start+'-'+this.index+' ['+this.text.substring(start,end)+']':' '+end);throw $parseMinErr('lexerr','Lexer Error: {0} at column{1} in expression [{2}].',error,colStr,this.text);},readNumber:function(){var number='';var start=this.index;while(this.index<this.text.length){var ch=lowercase(this.text.charAt(this.index));if(ch=='.'||this.isNumber(ch)){number+=ch;}else{var peekCh=this.peek();if(ch=='e'&&this.isExpOperator(peekCh)){number+=ch;}else if(this.isExpOperator(ch)&&peekCh&&this.isNumber(peekCh)&&number.charAt(number.length-1)=='e'){number+=ch;}else if(this.isExpOperator(ch)&&(!peekCh||!this.isNumber(peekCh))&&number.charAt(number.length-1)=='e'){this.throwError('Invalid exponent');}else{break;}}
this.index++;}
this.tokens.push({index:start,text:number,constant:true,value:Number(number)});},readIdent:function(){var start=this.index;while(this.index<this.text.length){var ch=this.text.charAt(this.index);if(!(this.isIdent(ch)||this.isNumber(ch))){break;}
this.index++;}
this.tokens.push({index:start,text:this.text.slice(start,this.index),identifier:true});},readString:function(quote){var start=this.index;this.index++;var string='';var rawString=quote;var escape=false;while(this.index<this.text.length){var ch=this.text.charAt(this.index);rawString+=ch;if(escape){if(ch==='u'){var hex=this.text.substring(this.index+1,this.index+5);if(!hex.match(/[\da-f]{4}/i)){this.throwError('Invalid unicode escape [\\u'+hex+']');}
this.index+=4;string+=String.fromCharCode(parseInt(hex,16));}else{var rep=ESCAPE[ch];string=string+(rep||ch);}
escape=false;}else if(ch==='\\'){escape=true;}else if(ch===quote){this.index++;this.tokens.push({index:start,text:rawString,constant:true,value:string});return;}else{string+=ch;}
this.index++;}
this.throwError('Unterminated quote',start);}};var AST=function(lexer,options){this.lexer=lexer;this.options=options;};AST.Program='Program';AST.ExpressionStatement='ExpressionStatement';AST.AssignmentExpression='AssignmentExpression';AST.ConditionalExpression='ConditionalExpression';AST.LogicalExpression='LogicalExpression';AST.BinaryExpression='BinaryExpression';AST.UnaryExpression='UnaryExpression';AST.CallExpression='CallExpression';AST.MemberExpression='MemberExpression';AST.Identifier='Identifier';AST.Literal='Literal';AST.ArrayExpression='ArrayExpression';AST.Property='Property';AST.ObjectExpression='ObjectExpression';AST.ThisExpression='ThisExpression';AST.NGValueParameter='NGValueParameter';AST.prototype={ast:function(text){this.text=text;this.tokens=this.lexer.lex(text);var value=this.program();if(this.tokens.length!==0){this.throwError('is an unexpected token',this.tokens[0]);}
return value;},program:function(){var body=[];while(true){if(this.tokens.length>0&&!this.peek('}',')',';',']'))
body.push(this.expressionStatement());if(!this.expect(';')){return{type:AST.Program,body:body};}}},expressionStatement:function(){return{type:AST.ExpressionStatement,expression:this.filterChain()};},filterChain:function(){var left=this.expression();var token;while((token=this.expect('|'))){left=this.filter(left);}
return left;},expression:function(){return this.assignment();},assignment:function(){var result=this.ternary();if(this.expect('=')){result={type:AST.AssignmentExpression,left:result,right:this.assignment(),operator:'='};}
return result;},ternary:function(){var test=this.logicalOR();var alternate;var consequent;if(this.expect('?')){alternate=this.expression();if(this.consume(':')){consequent=this.expression();return{type:AST.ConditionalExpression,test:test,alternate:alternate,consequent:consequent};}}
return test;},logicalOR:function(){var left=this.logicalAND();while(this.expect('||')){left={type:AST.LogicalExpression,operator:'||',left:left,right:this.logicalAND()};}
return left;},logicalAND:function(){var left=this.equality();while(this.expect('&&')){left={type:AST.LogicalExpression,operator:'&&',left:left,right:this.equality()};}
return left;},equality:function(){var left=this.relational();var token;while((token=this.expect('==','!=','===','!=='))){left={type:AST.BinaryExpression,operator:token.text,left:left,right:this.relational()};}
return left;},relational:function(){var left=this.additive();var token;while((token=this.expect('<','>','<=','>='))){left={type:AST.BinaryExpression,operator:token.text,left:left,right:this.additive()};}
return left;},additive:function(){var left=this.multiplicative();var token;while((token=this.expect('+','-'))){left={type:AST.BinaryExpression,operator:token.text,left:left,right:this.multiplicative()};}
return left;},multiplicative:function(){var left=this.unary();var token;while((token=this.expect('*','/','%'))){left={type:AST.BinaryExpression,operator:token.text,left:left,right:this.unary()};}
return left;},unary:function(){var token;if((token=this.expect('+','-','!'))){return{type:AST.UnaryExpression,operator:token.text,prefix:true,argument:this.unary()};}else{return this.primary();}},primary:function(){var primary;if(this.expect('(')){primary=this.filterChain();this.consume(')');}else if(this.expect('[')){primary=this.arrayDeclaration();}else if(this.expect('{')){primary=this.object();}else if(this.constants.hasOwnProperty(this.peek().text)){primary=copy(this.constants[this.consume().text]);}else if(this.peek().identifier){primary=this.identifier();}else if(this.peek().constant){primary=this.constant();}else{this.throwError('not a primary expression',this.peek());}
var next;while((next=this.expect('(','[','.'))){if(next.text==='('){primary={type:AST.CallExpression,callee:primary,arguments:this.parseArguments()};this.consume(')');}else if(next.text==='['){primary={type:AST.MemberExpression,object:primary,property:this.expression(),computed:true};this.consume(']');}else if(next.text==='.'){primary={type:AST.MemberExpression,object:primary,property:this.identifier(),computed:false};}else{this.throwError('IMPOSSIBLE');}}
return primary;},filter:function(baseExpression){var args=[baseExpression];var result={type:AST.CallExpression,callee:this.identifier(),arguments:args,filter:true};while(this.expect(':')){args.push(this.expression());}
return result;},parseArguments:function(){var args=[];if(this.peekToken().text!==')'){do{args.push(this.expression());}while(this.expect(','));}
return args;},identifier:function(){var token=this.consume();if(!token.identifier){this.throwError('is not a valid identifier',token);}
return{type:AST.Identifier,name:token.text};},constant:function(){return{type:AST.Literal,value:this.consume().value};},arrayDeclaration:function(){var elements=[];if(this.peekToken().text!==']'){do{if(this.peek(']')){break;}
elements.push(this.expression());}while(this.expect(','));}
this.consume(']');return{type:AST.ArrayExpression,elements:elements};},object:function(){var properties=[],property;if(this.peekToken().text!=='}'){do{if(this.peek('}')){break;}
property={type:AST.Property,kind:'init'};if(this.peek().constant){property.key=this.constant();}else if(this.peek().identifier){property.key=this.identifier();}else{this.throwError("invalid key",this.peek());}
this.consume(':');property.value=this.expression();properties.push(property);}while(this.expect(','));}
this.consume('}');return{type:AST.ObjectExpression,properties:properties};},throwError:function(msg,token){throw $parseMinErr('syntax','Syntax Error: Token \'{0}\' {1} at column {2} of the expression [{3}] starting at [{4}].',token.text,msg,(token.index+1),this.text,this.text.substring(token.index));},consume:function(e1){if(this.tokens.length===0){throw $parseMinErr('ueoe','Unexpected end of expression: {0}',this.text);}
var token=this.expect(e1);if(!token){this.throwError('is unexpected, expecting ['+e1+']',this.peek());}
return token;},peekToken:function(){if(this.tokens.length===0){throw $parseMinErr('ueoe','Unexpected end of expression: {0}',this.text);}
return this.tokens[0];},peek:function(e1,e2,e3,e4){return this.peekAhead(0,e1,e2,e3,e4);},peekAhead:function(i,e1,e2,e3,e4){if(this.tokens.length>i){var token=this.tokens[i];var t=token.text;if(t===e1||t===e2||t===e3||t===e4||(!e1&&!e2&&!e3&&!e4)){return token;}}
return false;},expect:function(e1,e2,e3,e4){var token=this.peek(e1,e2,e3,e4);if(token){this.tokens.shift();return token;}
return false;},constants:{'true':{type:AST.Literal,value:true},'false':{type:AST.Literal,value:false},'null':{type:AST.Literal,value:null},'undefined':{type:AST.Literal,value:undefined},'this':{type:AST.ThisExpression}}};function ifDefined(v,d){return typeof v!=='undefined'?v:d;}
function plusFn(l,r){if(typeof l==='undefined')return r;if(typeof r==='undefined')return l;return l+r;}
function isStateless($filter,filterName){var fn=$filter(filterName);return!fn.$stateful;}
function findConstantAndWatchExpressions(ast,$filter){var allConstants;var argsToWatch;switch(ast.type){case AST.Program:allConstants=true;forEach(ast.body,function(expr){findConstantAndWatchExpressions(expr.expression,$filter);allConstants=allConstants&&expr.expression.constant;});ast.constant=allConstants;break;case AST.Literal:ast.constant=true;ast.toWatch=[];break;case AST.UnaryExpression:findConstantAndWatchExpressions(ast.argument,$filter);ast.constant=ast.argument.constant;ast.toWatch=ast.argument.toWatch;break;case AST.BinaryExpression:findConstantAndWatchExpressions(ast.left,$filter);findConstantAndWatchExpressions(ast.right,$filter);ast.constant=ast.left.constant&&ast.right.constant;ast.toWatch=ast.left.toWatch.concat(ast.right.toWatch);break;case AST.LogicalExpression:findConstantAndWatchExpressions(ast.left,$filter);findConstantAndWatchExpressions(ast.right,$filter);ast.constant=ast.left.constant&&ast.right.constant;ast.toWatch=ast.constant?[]:[ast];break;case AST.ConditionalExpression:findConstantAndWatchExpressions(ast.test,$filter);findConstantAndWatchExpressions(ast.alternate,$filter);findConstantAndWatchExpressions(ast.consequent,$filter);ast.constant=ast.test.constant&&ast.alternate.constant&&ast.consequent.constant;ast.toWatch=ast.constant?[]:[ast];break;case AST.Identifier:ast.constant=false;ast.toWatch=[ast];break;case AST.MemberExpression:findConstantAndWatchExpressions(ast.object,$filter);if(ast.computed){findConstantAndWatchExpressions(ast.property,$filter);}
ast.constant=ast.object.constant&&(!ast.computed||ast.property.constant);ast.toWatch=[ast];break;case AST.CallExpression:allConstants=ast.filter?isStateless($filter,ast.callee.name):false;argsToWatch=[];forEach(ast.arguments,function(expr){findConstantAndWatchExpressions(expr,$filter);allConstants=allConstants&&expr.constant;if(!expr.constant){argsToWatch.push.apply(argsToWatch,expr.toWatch);}});ast.constant=allConstants;ast.toWatch=ast.filter&&isStateless($filter,ast.callee.name)?argsToWatch:[ast];break;case AST.AssignmentExpression:findConstantAndWatchExpressions(ast.left,$filter);findConstantAndWatchExpressions(ast.right,$filter);ast.constant=ast.left.constant&&ast.right.constant;ast.toWatch=[ast];break;case AST.ArrayExpression:allConstants=true;argsToWatch=[];forEach(ast.elements,function(expr){findConstantAndWatchExpressions(expr,$filter);allConstants=allConstants&&expr.constant;if(!expr.constant){argsToWatch.push.apply(argsToWatch,expr.toWatch);}});ast.constant=allConstants;ast.toWatch=argsToWatch;break;case AST.ObjectExpression:allConstants=true;argsToWatch=[];forEach(ast.properties,function(property){findConstantAndWatchExpressions(property.value,$filter);allConstants=allConstants&&property.value.constant;if(!property.value.constant){argsToWatch.push.apply(argsToWatch,property.value.toWatch);}});ast.constant=allConstants;ast.toWatch=argsToWatch;break;case AST.ThisExpression:ast.constant=false;ast.toWatch=[];break;}}
function getInputs(body){if(body.length!=1)return;var lastExpression=body[0].expression;var candidate=lastExpression.toWatch;if(candidate.length!==1)return candidate;return candidate[0]!==lastExpression?candidate:undefined;}
function isAssignable(ast){return ast.type===AST.Identifier||ast.type===AST.MemberExpression;}
function assignableAST(ast){if(ast.body.length===1&&isAssignable(ast.body[0].expression)){return{type:AST.AssignmentExpression,left:ast.body[0].expression,right:{type:AST.NGValueParameter},operator:'='};}}
function isLiteral(ast){return ast.body.length===0||ast.body.length===1&&(ast.body[0].expression.type===AST.Literal||ast.body[0].expression.type===AST.ArrayExpression||ast.body[0].expression.type===AST.ObjectExpression);}
function isConstant(ast){return ast.constant;}
function ASTCompiler(astBuilder,$filter){this.astBuilder=astBuilder;this.$filter=$filter;}
ASTCompiler.prototype={compile:function(expression,expensiveChecks){var self=this;var ast=this.astBuilder.ast(expression);this.state={nextId:0,filters:{},expensiveChecks:expensiveChecks,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]};findConstantAndWatchExpressions(ast,self.$filter);var extra='';var assignable;this.stage='assign';if((assignable=assignableAST(ast))){this.state.computing='assign';var result=this.nextId();this.recurse(assignable,result);this.return_(result);extra='fn.assign='+this.generateFunction('assign','s,v,l');}
var toWatch=getInputs(ast.body);self.stage='inputs';forEach(toWatch,function(watch,key){var fnKey='fn'+key;self.state[fnKey]={vars:[],body:[],own:{}};self.state.computing=fnKey;var intoId=self.nextId();self.recurse(watch,intoId);self.return_(intoId);self.state.inputs.push(fnKey);watch.watchId=key;});this.state.computing='fn';this.stage='main';this.recurse(ast);var fnString='"'+this.USE+' '+this.STRICT+'";\n'+
this.filterPrefix()+'var fn='+this.generateFunction('fn','s,l,a,i')+
extra+
this.watchFns()+'return fn;';var fn=(new Function('$filter','ensureSafeMemberName','ensureSafeObject','ensureSafeFunction','getStringValue','ensureSafeAssignContext','ifDefined','plus','text',fnString))(this.$filter,ensureSafeMemberName,ensureSafeObject,ensureSafeFunction,getStringValue,ensureSafeAssignContext,ifDefined,plusFn,expression);this.state=this.stage=undefined;fn.literal=isLiteral(ast);fn.constant=isConstant(ast);return fn;},USE:'use',STRICT:'strict',watchFns:function(){var result=[];var fns=this.state.inputs;var self=this;forEach(fns,function(name){result.push('var '+name+'='+self.generateFunction(name,'s'));});if(fns.length){result.push('fn.inputs=['+fns.join(',')+'];');}
return result.join('');},generateFunction:function(name,params){return'function('+params+'){'+
this.varsPrefix(name)+
this.body(name)+'};';},filterPrefix:function(){var parts=[];var self=this;forEach(this.state.filters,function(id,filter){parts.push(id+'=$filter('+self.escape(filter)+')');});if(parts.length)return'var '+parts.join(',')+';';return'';},varsPrefix:function(section){return this.state[section].vars.length?'var '+this.state[section].vars.join(',')+';':'';},body:function(section){return this.state[section].body.join('');},recurse:function(ast,intoId,nameId,recursionFn,create,skipWatchIdCheck){var left,right,self=this,args,expression;recursionFn=recursionFn||noop;if(!skipWatchIdCheck&&isDefined(ast.watchId)){intoId=intoId||this.nextId();this.if_('i',this.lazyAssign(intoId,this.computedMember('i',ast.watchId)),this.lazyRecurse(ast,intoId,nameId,recursionFn,create,true));return;}
switch(ast.type){case AST.Program:forEach(ast.body,function(expression,pos){self.recurse(expression.expression,undefined,undefined,function(expr){right=expr;});if(pos!==ast.body.length-1){self.current().body.push(right,';');}else{self.return_(right);}});break;case AST.Literal:expression=this.escape(ast.value);this.assign(intoId,expression);recursionFn(expression);break;case AST.UnaryExpression:this.recurse(ast.argument,undefined,undefined,function(expr){right=expr;});expression=ast.operator+'('+this.ifDefined(right,0)+')';this.assign(intoId,expression);recursionFn(expression);break;case AST.BinaryExpression:this.recurse(ast.left,undefined,undefined,function(expr){left=expr;});this.recurse(ast.right,undefined,undefined,function(expr){right=expr;});if(ast.operator==='+'){expression=this.plus(left,right);}else if(ast.operator==='-'){expression=this.ifDefined(left,0)+ast.operator+this.ifDefined(right,0);}else{expression='('+left+')'+ast.operator+'('+right+')';}
this.assign(intoId,expression);recursionFn(expression);break;case AST.LogicalExpression:intoId=intoId||this.nextId();self.recurse(ast.left,intoId);self.if_(ast.operator==='&&'?intoId:self.not(intoId),self.lazyRecurse(ast.right,intoId));recursionFn(intoId);break;case AST.ConditionalExpression:intoId=intoId||this.nextId();self.recurse(ast.test,intoId);self.if_(intoId,self.lazyRecurse(ast.alternate,intoId),self.lazyRecurse(ast.consequent,intoId));recursionFn(intoId);break;case AST.Identifier:intoId=intoId||this.nextId();if(nameId){nameId.context=self.stage==='inputs'?'s':this.assign(this.nextId(),this.getHasOwnProperty('l',ast.name)+'?l:s');nameId.computed=false;nameId.name=ast.name;}
ensureSafeMemberName(ast.name);self.if_(self.stage==='inputs'||self.not(self.getHasOwnProperty('l',ast.name)),function(){self.if_(self.stage==='inputs'||'s',function(){if(create&&create!==1){self.if_(self.not(self.nonComputedMember('s',ast.name)),self.lazyAssign(self.nonComputedMember('s',ast.name),'{}'));}
self.assign(intoId,self.nonComputedMember('s',ast.name));});},intoId&&self.lazyAssign(intoId,self.nonComputedMember('l',ast.name)));if(self.state.expensiveChecks||isPossiblyDangerousMemberName(ast.name)){self.addEnsureSafeObject(intoId);}
recursionFn(intoId);break;case AST.MemberExpression:left=nameId&&(nameId.context=this.nextId())||this.nextId();intoId=intoId||this.nextId();self.recurse(ast.object,left,undefined,function(){self.if_(self.notNull(left),function(){if(ast.computed){right=self.nextId();self.recurse(ast.property,right);self.getStringValue(right);self.addEnsureSafeMemberName(right);if(create&&create!==1){self.if_(self.not(self.computedMember(left,right)),self.lazyAssign(self.computedMember(left,right),'{}'));}
expression=self.ensureSafeObject(self.computedMember(left,right));self.assign(intoId,expression);if(nameId){nameId.computed=true;nameId.name=right;}}else{ensureSafeMemberName(ast.property.name);if(create&&create!==1){self.if_(self.not(self.nonComputedMember(left,ast.property.name)),self.lazyAssign(self.nonComputedMember(left,ast.property.name),'{}'));}
expression=self.nonComputedMember(left,ast.property.name);if(self.state.expensiveChecks||isPossiblyDangerousMemberName(ast.property.name)){expression=self.ensureSafeObject(expression);}
self.assign(intoId,expression);if(nameId){nameId.computed=false;nameId.name=ast.property.name;}}},function(){self.assign(intoId,'undefined');});recursionFn(intoId);},!!create);break;case AST.CallExpression:intoId=intoId||this.nextId();if(ast.filter){right=self.filter(ast.callee.name);args=[];forEach(ast.arguments,function(expr){var argument=self.nextId();self.recurse(expr,argument);args.push(argument);});expression=right+'('+args.join(',')+')';self.assign(intoId,expression);recursionFn(intoId);}else{right=self.nextId();left={};args=[];self.recurse(ast.callee,right,left,function(){self.if_(self.notNull(right),function(){self.addEnsureSafeFunction(right);forEach(ast.arguments,function(expr){self.recurse(expr,self.nextId(),undefined,function(argument){args.push(self.ensureSafeObject(argument));});});if(left.name){if(!self.state.expensiveChecks){self.addEnsureSafeObject(left.context);}
expression=self.member(left.context,left.name,left.computed)+'('+args.join(',')+')';}else{expression=right+'('+args.join(',')+')';}
expression=self.ensureSafeObject(expression);self.assign(intoId,expression);},function(){self.assign(intoId,'undefined');});recursionFn(intoId);});}
break;case AST.AssignmentExpression:right=this.nextId();left={};if(!isAssignable(ast.left)){throw $parseMinErr('lval','Trying to assing a value to a non l-value');}
this.recurse(ast.left,undefined,left,function(){self.if_(self.notNull(left.context),function(){self.recurse(ast.right,right);self.addEnsureSafeObject(self.member(left.context,left.name,left.computed));self.addEnsureSafeAssignContext(left.context);expression=self.member(left.context,left.name,left.computed)+ast.operator+right;self.assign(intoId,expression);recursionFn(intoId||expression);});},1);break;case AST.ArrayExpression:args=[];forEach(ast.elements,function(expr){self.recurse(expr,self.nextId(),undefined,function(argument){args.push(argument);});});expression='['+args.join(',')+']';this.assign(intoId,expression);recursionFn(expression);break;case AST.ObjectExpression:args=[];forEach(ast.properties,function(property){self.recurse(property.value,self.nextId(),undefined,function(expr){args.push(self.escape(property.key.type===AST.Identifier?property.key.name:(''+property.key.value))+':'+expr);});});expression='{'+args.join(',')+'}';this.assign(intoId,expression);recursionFn(expression);break;case AST.ThisExpression:this.assign(intoId,'s');recursionFn('s');break;case AST.NGValueParameter:this.assign(intoId,'v');recursionFn('v');break;}},getHasOwnProperty:function(element,property){var key=element+'.'+property;var own=this.current().own;if(!own.hasOwnProperty(key)){own[key]=this.nextId(false,element+'&&('+this.escape(property)+' in '+element+')');}
return own[key];},assign:function(id,value){if(!id)return;this.current().body.push(id,'=',value,';');return id;},filter:function(filterName){if(!this.state.filters.hasOwnProperty(filterName)){this.state.filters[filterName]=this.nextId(true);}
return this.state.filters[filterName];},ifDefined:function(id,defaultValue){return'ifDefined('+id+','+this.escape(defaultValue)+')';},plus:function(left,right){return'plus('+left+','+right+')';},return_:function(id){this.current().body.push('return ',id,';');},if_:function(test,alternate,consequent){if(test===true){alternate();}else{var body=this.current().body;body.push('if(',test,'){');alternate();body.push('}');if(consequent){body.push('else{');consequent();body.push('}');}}},not:function(expression){return'!('+expression+')';},notNull:function(expression){return expression+'!=null';},nonComputedMember:function(left,right){return left+'.'+right;},computedMember:function(left,right){return left+'['+right+']';},member:function(left,right,computed){if(computed)return this.computedMember(left,right);return this.nonComputedMember(left,right);},addEnsureSafeObject:function(item){this.current().body.push(this.ensureSafeObject(item),';');},addEnsureSafeMemberName:function(item){this.current().body.push(this.ensureSafeMemberName(item),';');},addEnsureSafeFunction:function(item){this.current().body.push(this.ensureSafeFunction(item),';');},addEnsureSafeAssignContext:function(item){this.current().body.push(this.ensureSafeAssignContext(item),';');},ensureSafeObject:function(item){return'ensureSafeObject('+item+',text)';},ensureSafeMemberName:function(item){return'ensureSafeMemberName('+item+',text)';},ensureSafeFunction:function(item){return'ensureSafeFunction('+item+',text)';},getStringValue:function(item){this.assign(item,'getStringValue('+item+',text)');},ensureSafeAssignContext:function(item){return'ensureSafeAssignContext('+item+',text)';},lazyRecurse:function(ast,intoId,nameId,recursionFn,create,skipWatchIdCheck){var self=this;return function(){self.recurse(ast,intoId,nameId,recursionFn,create,skipWatchIdCheck);};},lazyAssign:function(id,value){var self=this;return function(){self.assign(id,value);};},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(c){return'\\u'+('0000'+c.charCodeAt(0).toString(16)).slice(-4);},escape:function(value){if(isString(value))return"'"+value.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(isNumber(value))return value.toString();if(value===true)return'true';if(value===false)return'false';if(value===null)return'null';if(typeof value==='undefined')return'undefined';throw $parseMinErr('esc','IMPOSSIBLE');},nextId:function(skip,init){var id='v'+(this.state.nextId++);if(!skip){this.current().vars.push(id+(init?'='+init:''));}
return id;},current:function(){return this.state[this.state.computing];}};function ASTInterpreter(astBuilder,$filter){this.astBuilder=astBuilder;this.$filter=$filter;}
ASTInterpreter.prototype={compile:function(expression,expensiveChecks){var self=this;var ast=this.astBuilder.ast(expression);this.expression=expression;this.expensiveChecks=expensiveChecks;findConstantAndWatchExpressions(ast,self.$filter);var assignable;var assign;if((assignable=assignableAST(ast))){assign=this.recurse(assignable);}
var toWatch=getInputs(ast.body);var inputs;if(toWatch){inputs=[];forEach(toWatch,function(watch,key){var input=self.recurse(watch);watch.input=input;inputs.push(input);watch.watchId=key;});}
var expressions=[];forEach(ast.body,function(expression){expressions.push(self.recurse(expression.expression));});var fn=ast.body.length===0?function(){}:ast.body.length===1?expressions[0]:function(scope,locals){var lastValue;forEach(expressions,function(exp){lastValue=exp(scope,locals);});return lastValue;};if(assign){fn.assign=function(scope,value,locals){return assign(scope,locals,value);};}
if(inputs){fn.inputs=inputs;}
fn.literal=isLiteral(ast);fn.constant=isConstant(ast);return fn;},recurse:function(ast,context,create){var left,right,self=this,args,expression;if(ast.input){return this.inputs(ast.input,ast.watchId);}
switch(ast.type){case AST.Literal:return this.value(ast.value,context);case AST.UnaryExpression:right=this.recurse(ast.argument);return this['unary'+ast.operator](right,context);case AST.BinaryExpression:left=this.recurse(ast.left);right=this.recurse(ast.right);return this['binary'+ast.operator](left,right,context);case AST.LogicalExpression:left=this.recurse(ast.left);right=this.recurse(ast.right);return this['binary'+ast.operator](left,right,context);case AST.ConditionalExpression:return this['ternary?:'](this.recurse(ast.test),this.recurse(ast.alternate),this.recurse(ast.consequent),context);case AST.Identifier:ensureSafeMemberName(ast.name,self.expression);return self.identifier(ast.name,self.expensiveChecks||isPossiblyDangerousMemberName(ast.name),context,create,self.expression);case AST.MemberExpression:left=this.recurse(ast.object,false,!!create);if(!ast.computed){ensureSafeMemberName(ast.property.name,self.expression);right=ast.property.name;}
if(ast.computed)right=this.recurse(ast.property);return ast.computed?this.computedMember(left,right,context,create,self.expression):this.nonComputedMember(left,right,self.expensiveChecks,context,create,self.expression);case AST.CallExpression:args=[];forEach(ast.arguments,function(expr){args.push(self.recurse(expr));});if(ast.filter)right=this.$filter(ast.callee.name);if(!ast.filter)right=this.recurse(ast.callee,true);return ast.filter?function(scope,locals,assign,inputs){var values=[];for(var i=0;i<args.length;++i){values.push(args[i](scope,locals,assign,inputs));}
var value=right.apply(undefined,values,inputs);return context?{context:undefined,name:undefined,value:value}:value;}:function(scope,locals,assign,inputs){var rhs=right(scope,locals,assign,inputs);var value;if(rhs.value!=null){ensureSafeObject(rhs.context,self.expression);ensureSafeFunction(rhs.value,self.expression);var values=[];for(var i=0;i<args.length;++i){values.push(ensureSafeObject(args[i](scope,locals,assign,inputs),self.expression));}
value=ensureSafeObject(rhs.value.apply(rhs.context,values),self.expression);}
return context?{value:value}:value;};case AST.AssignmentExpression:left=this.recurse(ast.left,true,1);right=this.recurse(ast.right);return function(scope,locals,assign,inputs){var lhs=left(scope,locals,assign,inputs);var rhs=right(scope,locals,assign,inputs);ensureSafeObject(lhs.value,self.expression);ensureSafeAssignContext(lhs.context);lhs.context[lhs.name]=rhs;return context?{value:rhs}:rhs;};case AST.ArrayExpression:args=[];forEach(ast.elements,function(expr){args.push(self.recurse(expr));});return function(scope,locals,assign,inputs){var value=[];for(var i=0;i<args.length;++i){value.push(args[i](scope,locals,assign,inputs));}
return context?{value:value}:value;};case AST.ObjectExpression:args=[];forEach(ast.properties,function(property){args.push({key:property.key.type===AST.Identifier?property.key.name:(''+property.key.value),value:self.recurse(property.value)});});return function(scope,locals,assign,inputs){var value={};for(var i=0;i<args.length;++i){value[args[i].key]=args[i].value(scope,locals,assign,inputs);}
return context?{value:value}:value;};case AST.ThisExpression:return function(scope){return context?{value:scope}:scope;};case AST.NGValueParameter:return function(scope,locals,assign,inputs){return context?{value:assign}:assign;};}},'unary+':function(argument,context){return function(scope,locals,assign,inputs){var arg=argument(scope,locals,assign,inputs);if(isDefined(arg)){arg=+arg;}else{arg=0;}
return context?{value:arg}:arg;};},'unary-':function(argument,context){return function(scope,locals,assign,inputs){var arg=argument(scope,locals,assign,inputs);if(isDefined(arg)){arg=-arg;}else{arg=0;}
return context?{value:arg}:arg;};},'unary!':function(argument,context){return function(scope,locals,assign,inputs){var arg=!argument(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary+':function(left,right,context){return function(scope,locals,assign,inputs){var lhs=left(scope,locals,assign,inputs);var rhs=right(scope,locals,assign,inputs);var arg=plusFn(lhs,rhs);return context?{value:arg}:arg;};},'binary-':function(left,right,context){return function(scope,locals,assign,inputs){var lhs=left(scope,locals,assign,inputs);var rhs=right(scope,locals,assign,inputs);var arg=(isDefined(lhs)?lhs:0)-(isDefined(rhs)?rhs:0);return context?{value:arg}:arg;};},'binary*':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)*right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary/':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)/right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary%':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)%right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary===':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)===right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary!==':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)!==right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary==':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)==right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary!=':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)!=right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary<':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)<right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary>':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)>right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary<=':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)<=right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary>=':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)>=right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary&&':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)&&right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'binary||':function(left,right,context){return function(scope,locals,assign,inputs){var arg=left(scope,locals,assign,inputs)||right(scope,locals,assign,inputs);return context?{value:arg}:arg;};},'ternary?:':function(test,alternate,consequent,context){return function(scope,locals,assign,inputs){var arg=test(scope,locals,assign,inputs)?alternate(scope,locals,assign,inputs):consequent(scope,locals,assign,inputs);return context?{value:arg}:arg;};},value:function(value,context){return function(){return context?{context:undefined,name:undefined,value:value}:value;};},identifier:function(name,expensiveChecks,context,create,expression){return function(scope,locals,assign,inputs){var base=locals&&(name in locals)?locals:scope;if(create&&create!==1&&base&&!(base[name])){base[name]={};}
var value=base?base[name]:undefined;if(expensiveChecks){ensureSafeObject(value,expression);}
if(context){return{context:base,name:name,value:value};}else{return value;}};},computedMember:function(left,right,context,create,expression){return function(scope,locals,assign,inputs){var lhs=left(scope,locals,assign,inputs);var rhs;var value;if(lhs!=null){rhs=right(scope,locals,assign,inputs);rhs=getStringValue(rhs);ensureSafeMemberName(rhs,expression);if(create&&create!==1&&lhs&&!(lhs[rhs])){lhs[rhs]={};}
value=lhs[rhs];ensureSafeObject(value,expression);}
if(context){return{context:lhs,name:rhs,value:value};}else{return value;}};},nonComputedMember:function(left,right,expensiveChecks,context,create,expression){return function(scope,locals,assign,inputs){var lhs=left(scope,locals,assign,inputs);if(create&&create!==1&&lhs&&!(lhs[right])){lhs[right]={};}
var value=lhs!=null?lhs[right]:undefined;if(expensiveChecks||isPossiblyDangerousMemberName(right)){ensureSafeObject(value,expression);}
if(context){return{context:lhs,name:right,value:value};}else{return value;}};},inputs:function(input,watchId){return function(scope,value,locals,inputs){if(inputs)return inputs[watchId];return input(scope,value,locals);};}};var Parser=function(lexer,$filter,options){this.lexer=lexer;this.$filter=$filter;this.options=options;this.ast=new AST(this.lexer);this.astCompiler=options.csp?new ASTInterpreter(this.ast,$filter):new ASTCompiler(this.ast,$filter);};Parser.prototype={constructor:Parser,parse:function(text){return this.astCompiler.compile(text,this.options.expensiveChecks);}};var getterFnCacheDefault=createMap();var getterFnCacheExpensive=createMap();function isPossiblyDangerousMemberName(name){return name=='constructor';}
var objectValueOf=Object.prototype.valueOf;function getValueOf(value){return isFunction(value.valueOf)?value.valueOf():objectValueOf.call(value);}
function $ParseProvider(){var cacheDefault=createMap();var cacheExpensive=createMap();this.$get=['$filter',function($filter){var noUnsafeEval=csp().noUnsafeEval;var $parseOptions={csp:noUnsafeEval,expensiveChecks:false},$parseOptionsExpensive={csp:noUnsafeEval,expensiveChecks:true};return function $parse(exp,interceptorFn,expensiveChecks){var parsedExpression,oneTime,cacheKey;switch(typeof exp){case'string':exp=exp.trim();cacheKey=exp;var cache=(expensiveChecks?cacheExpensive:cacheDefault);parsedExpression=cache[cacheKey];if(!parsedExpression){if(exp.charAt(0)===':'&&exp.charAt(1)===':'){oneTime=true;exp=exp.substring(2);}
var parseOptions=expensiveChecks?$parseOptionsExpensive:$parseOptions;var lexer=new Lexer(parseOptions);var parser=new Parser(lexer,$filter,parseOptions);parsedExpression=parser.parse(exp);if(parsedExpression.constant){parsedExpression.$$watchDelegate=constantWatchDelegate;}else if(oneTime){parsedExpression.$$watchDelegate=parsedExpression.literal?oneTimeLiteralWatchDelegate:oneTimeWatchDelegate;}else if(parsedExpression.inputs){parsedExpression.$$watchDelegate=inputsWatchDelegate;}
cache[cacheKey]=parsedExpression;}
return addInterceptor(parsedExpression,interceptorFn);case'function':return addInterceptor(exp,interceptorFn);default:return noop;}};function expressionInputDirtyCheck(newValue,oldValueOfValue){if(newValue==null||oldValueOfValue==null){return newValue===oldValueOfValue;}
if(typeof newValue==='object'){newValue=getValueOf(newValue);if(typeof newValue==='object'){return false;}}
return newValue===oldValueOfValue||(newValue!==newValue&&oldValueOfValue!==oldValueOfValue);}
function inputsWatchDelegate(scope,listener,objectEquality,parsedExpression,prettyPrintExpression){var inputExpressions=parsedExpression.inputs;var lastResult;if(inputExpressions.length===1){var oldInputValueOf=expressionInputDirtyCheck;inputExpressions=inputExpressions[0];return scope.$watch(function expressionInputWatch(scope){var newInputValue=inputExpressions(scope);if(!expressionInputDirtyCheck(newInputValue,oldInputValueOf)){lastResult=parsedExpression(scope,undefined,undefined,[newInputValue]);oldInputValueOf=newInputValue&&getValueOf(newInputValue);}
return lastResult;},listener,objectEquality,prettyPrintExpression);}
var oldInputValueOfValues=[];var oldInputValues=[];for(var i=0,ii=inputExpressions.length;i<ii;i++){oldInputValueOfValues[i]=expressionInputDirtyCheck;oldInputValues[i]=null;}
return scope.$watch(function expressionInputsWatch(scope){var changed=false;for(var i=0,ii=inputExpressions.length;i<ii;i++){var newInputValue=inputExpressions[i](scope);if(changed||(changed=!expressionInputDirtyCheck(newInputValue,oldInputValueOfValues[i]))){oldInputValues[i]=newInputValue;oldInputValueOfValues[i]=newInputValue&&getValueOf(newInputValue);}}
if(changed){lastResult=parsedExpression(scope,undefined,undefined,oldInputValues);}
return lastResult;},listener,objectEquality,prettyPrintExpression);}
function oneTimeWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch,lastValue;return unwatch=scope.$watch(function oneTimeWatch(scope){return parsedExpression(scope);},function oneTimeListener(value,old,scope){lastValue=value;if(isFunction(listener)){listener.apply(this,arguments);}
if(isDefined(value)){scope.$$postDigest(function(){if(isDefined(lastValue)){unwatch();}});}},objectEquality);}
function oneTimeLiteralWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch,lastValue;return unwatch=scope.$watch(function oneTimeWatch(scope){return parsedExpression(scope);},function oneTimeListener(value,old,scope){lastValue=value;if(isFunction(listener)){listener.call(this,value,old,scope);}
if(isAllDefined(value)){scope.$$postDigest(function(){if(isAllDefined(lastValue))unwatch();});}},objectEquality);function isAllDefined(value){var allDefined=true;forEach(value,function(val){if(!isDefined(val))allDefined=false;});return allDefined;}}
function constantWatchDelegate(scope,listener,objectEquality,parsedExpression){var unwatch;return unwatch=scope.$watch(function constantWatch(scope){return parsedExpression(scope);},function constantListener(value,old,scope){if(isFunction(listener)){listener.apply(this,arguments);}
unwatch();},objectEquality);}
function addInterceptor(parsedExpression,interceptorFn){if(!interceptorFn)return parsedExpression;var watchDelegate=parsedExpression.$$watchDelegate;var regularWatch=watchDelegate!==oneTimeLiteralWatchDelegate&&watchDelegate!==oneTimeWatchDelegate;var fn=regularWatch?function regularInterceptedExpression(scope,locals,assign,inputs){var value=parsedExpression(scope,locals,assign,inputs);return interceptorFn(value,scope,locals);}:function oneTimeInterceptedExpression(scope,locals,assign,inputs){var value=parsedExpression(scope,locals,assign,inputs);var result=interceptorFn(value,scope,locals);return isDefined(value)?result:value;};if(parsedExpression.$$watchDelegate&&parsedExpression.$$watchDelegate!==inputsWatchDelegate){fn.$$watchDelegate=parsedExpression.$$watchDelegate;}else if(!interceptorFn.$stateful){fn.$$watchDelegate=inputsWatchDelegate;fn.inputs=parsedExpression.inputs?parsedExpression.inputs:[parsedExpression];}
return fn;}}];}
function $QProvider(){this.$get=['$rootScope','$exceptionHandler',function($rootScope,$exceptionHandler){return qFactory(function(callback){$rootScope.$evalAsync(callback);},$exceptionHandler);}];}
function $$QProvider(){this.$get=['$browser','$exceptionHandler',function($browser,$exceptionHandler){return qFactory(function(callback){$browser.defer(callback);},$exceptionHandler);}];}
function qFactory(nextTick,exceptionHandler){var $qMinErr=minErr('$q',TypeError);function callOnce(self,resolveFn,rejectFn){var called=false;function wrap(fn){return function(value){if(called)return;called=true;fn.call(self,value);};}
return[wrap(resolveFn),wrap(rejectFn)];}
var defer=function(){return new Deferred();};function Promise(){this.$$state={status:0};}
extend(Promise.prototype,{then:function(onFulfilled,onRejected,progressBack){if(isUndefined(onFulfilled)&&isUndefined(onRejected)&&isUndefined(progressBack)){return this;}
var result=new Deferred();this.$$state.pending=this.$$state.pending||[];this.$$state.pending.push([result,onFulfilled,onRejected,progressBack]);if(this.$$state.status>0)scheduleProcessQueue(this.$$state);return result.promise;},"catch":function(callback){return this.then(null,callback);},"finally":function(callback,progressBack){return this.then(function(value){return handleCallback(value,true,callback);},function(error){return handleCallback(error,false,callback);},progressBack);}});function simpleBind(context,fn){return function(value){fn.call(context,value);};}
function processQueue(state){var fn,deferred,pending;pending=state.pending;state.processScheduled=false;state.pending=undefined;for(var i=0,ii=pending.length;i<ii;++i){deferred=pending[i][0];fn=pending[i][state.status];try{if(isFunction(fn)){deferred.resolve(fn(state.value));}else if(state.status===1){deferred.resolve(state.value);}else{deferred.reject(state.value);}}catch(e){deferred.reject(e);exceptionHandler(e);}}}
function scheduleProcessQueue(state){if(state.processScheduled||!state.pending)return;state.processScheduled=true;nextTick(function(){processQueue(state);});}
function Deferred(){this.promise=new Promise();this.resolve=simpleBind(this,this.resolve);this.reject=simpleBind(this,this.reject);this.notify=simpleBind(this,this.notify);}
extend(Deferred.prototype,{resolve:function(val){if(this.promise.$$state.status)return;if(val===this.promise){this.$$reject($qMinErr('qcycle',"Expected promise to be resolved with value other than itself '{0}'",val));}else{this.$$resolve(val);}},$$resolve:function(val){var then,fns;fns=callOnce(this,this.$$resolve,this.$$reject);try{if((isObject(val)||isFunction(val)))then=val&&val.then;if(isFunction(then)){this.promise.$$state.status=-1;then.call(val,fns[0],fns[1],this.notify);}else{this.promise.$$state.value=val;this.promise.$$state.status=1;scheduleProcessQueue(this.promise.$$state);}}catch(e){fns[1](e);exceptionHandler(e);}},reject:function(reason){if(this.promise.$$state.status)return;this.$$reject(reason);},$$reject:function(reason){this.promise.$$state.value=reason;this.promise.$$state.status=2;scheduleProcessQueue(this.promise.$$state);},notify:function(progress){var callbacks=this.promise.$$state.pending;if((this.promise.$$state.status<=0)&&callbacks&&callbacks.length){nextTick(function(){var callback,result;for(var i=0,ii=callbacks.length;i<ii;i++){result=callbacks[i][0];callback=callbacks[i][3];try{result.notify(isFunction(callback)?callback(progress):progress);}catch(e){exceptionHandler(e);}}});}}});var reject=function(reason){var result=new Deferred();result.reject(reason);return result.promise;};var makePromise=function makePromise(value,resolved){var result=new Deferred();if(resolved){result.resolve(value);}else{result.reject(value);}
return result.promise;};var handleCallback=function handleCallback(value,isResolved,callback){var callbackOutput=null;try{if(isFunction(callback))callbackOutput=callback();}catch(e){return makePromise(e,false);}
if(isPromiseLike(callbackOutput)){return callbackOutput.then(function(){return makePromise(value,isResolved);},function(error){return makePromise(error,false);});}else{return makePromise(value,isResolved);}};var when=function(value,callback,errback,progressBack){var result=new Deferred();result.resolve(value);return result.promise.then(callback,errback,progressBack);};var resolve=when;function all(promises){var deferred=new Deferred(),counter=0,results=isArray(promises)?[]:{};forEach(promises,function(promise,key){counter++;when(promise).then(function(value){if(results.hasOwnProperty(key))return;results[key]=value;if(!(--counter))deferred.resolve(results);},function(reason){if(results.hasOwnProperty(key))return;deferred.reject(reason);});});if(counter===0){deferred.resolve(results);}
return deferred.promise;}
var $Q=function Q(resolver){if(!isFunction(resolver)){throw $qMinErr('norslvr',"Expected resolverFn, got '{0}'",resolver);}
if(!(this instanceof Q)){return new Q(resolver);}
var deferred=new Deferred();function resolveFn(value){deferred.resolve(value);}
function rejectFn(reason){deferred.reject(reason);}
resolver(resolveFn,rejectFn);return deferred.promise;};$Q.defer=defer;$Q.reject=reject;$Q.when=when;$Q.resolve=resolve;$Q.all=all;return $Q;}
function $$RAFProvider(){this.$get=['$window','$timeout',function($window,$timeout){var requestAnimationFrame=$window.requestAnimationFrame||$window.webkitRequestAnimationFrame;var cancelAnimationFrame=$window.cancelAnimationFrame||$window.webkitCancelAnimationFrame||$window.webkitCancelRequestAnimationFrame;var rafSupported=!!requestAnimationFrame;var raf=rafSupported?function(fn){var id=requestAnimationFrame(fn);return function(){cancelAnimationFrame(id);};}:function(fn){var timer=$timeout(fn,16.66,false);return function(){$timeout.cancel(timer);};};raf.supported=rafSupported;return raf;}];}
function $RootScopeProvider(){var TTL=10;var $rootScopeMinErr=minErr('$rootScope');var lastDirtyWatch=null;var applyAsyncId=null;this.digestTtl=function(value){if(arguments.length){TTL=value;}
return TTL;};function createChildScopeClass(parent){function ChildScope(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$id=nextUid();this.$$ChildScope=null;}
ChildScope.prototype=parent;return ChildScope;}
this.$get=['$injector','$exceptionHandler','$parse','$browser',function($injector,$exceptionHandler,$parse,$browser){function destroyChildScope($event){$event.currentScope.$$destroyed=true;}
function Scope(){this.$id=nextUid();this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null;this.$root=this;this.$$destroyed=false;this.$$listeners={};this.$$listenerCount={};this.$$watchersCount=0;this.$$isolateBindings=null;}
Scope.prototype={constructor:Scope,$new:function(isolate,parent){var child;parent=parent||this;if(isolate){child=new Scope();child.$root=this.$root;}else{if(!this.$$ChildScope){this.$$ChildScope=createChildScopeClass(this);}
child=new this.$$ChildScope();}
child.$parent=parent;child.$$prevSibling=parent.$$childTail;if(parent.$$childHead){parent.$$childTail.$$nextSibling=child;parent.$$childTail=child;}else{parent.$$childHead=parent.$$childTail=child;}
if(isolate||parent!=this)child.$on('$destroy',destroyChildScope);return child;},$watch:function(watchExp,listener,objectEquality,prettyPrintExpression){var get=$parse(watchExp);if(get.$$watchDelegate){return get.$$watchDelegate(this,listener,objectEquality,get,watchExp);}
var scope=this,array=scope.$$watchers,watcher={fn:listener,last:initWatchVal,get:get,exp:prettyPrintExpression||watchExp,eq:!!objectEquality};lastDirtyWatch=null;if(!isFunction(listener)){watcher.fn=noop;}
if(!array){array=scope.$$watchers=[];}
array.unshift(watcher);incrementWatchersCount(this,1);return function deregisterWatch(){if(arrayRemove(array,watcher)>=0){incrementWatchersCount(scope,-1);}
lastDirtyWatch=null;};},$watchGroup:function(watchExpressions,listener){var oldValues=new Array(watchExpressions.length);var newValues=new Array(watchExpressions.length);var deregisterFns=[];var self=this;var changeReactionScheduled=false;var firstRun=true;if(!watchExpressions.length){var shouldCall=true;self.$evalAsync(function(){if(shouldCall)listener(newValues,newValues,self);});return function deregisterWatchGroup(){shouldCall=false;};}
if(watchExpressions.length===1){return this.$watch(watchExpressions[0],function watchGroupAction(value,oldValue,scope){newValues[0]=value;oldValues[0]=oldValue;listener(newValues,(value===oldValue)?newValues:oldValues,scope);});}
forEach(watchExpressions,function(expr,i){var unwatchFn=self.$watch(expr,function watchGroupSubAction(value,oldValue){newValues[i]=value;oldValues[i]=oldValue;if(!changeReactionScheduled){changeReactionScheduled=true;self.$evalAsync(watchGroupAction);}});deregisterFns.push(unwatchFn);});function watchGroupAction(){changeReactionScheduled=false;if(firstRun){firstRun=false;listener(newValues,newValues,self);}else{listener(newValues,oldValues,self);}}
return function deregisterWatchGroup(){while(deregisterFns.length){deregisterFns.shift()();}};},$watchCollection:function(obj,listener){$watchCollectionInterceptor.$stateful=true;var self=this;var newValue;var oldValue;var veryOldValue;var trackVeryOldValue=(listener.length>1);var changeDetected=0;var changeDetector=$parse(obj,$watchCollectionInterceptor);var internalArray=[];var internalObject={};var initRun=true;var oldLength=0;function $watchCollectionInterceptor(_value){newValue=_value;var newLength,key,bothNaN,newItem,oldItem;if(isUndefined(newValue))return;if(!isObject(newValue)){if(oldValue!==newValue){oldValue=newValue;changeDetected++;}}else if(isArrayLike(newValue)){if(oldValue!==internalArray){oldValue=internalArray;oldLength=oldValue.length=0;changeDetected++;}
newLength=newValue.length;if(oldLength!==newLength){changeDetected++;oldValue.length=oldLength=newLength;}
for(var i=0;i<newLength;i++){oldItem=oldValue[i];newItem=newValue[i];bothNaN=(oldItem!==oldItem)&&(newItem!==newItem);if(!bothNaN&&(oldItem!==newItem)){changeDetected++;oldValue[i]=newItem;}}}else{if(oldValue!==internalObject){oldValue=internalObject={};oldLength=0;changeDetected++;}
newLength=0;for(key in newValue){if(hasOwnProperty.call(newValue,key)){newLength++;newItem=newValue[key];oldItem=oldValue[key];if(key in oldValue){bothNaN=(oldItem!==oldItem)&&(newItem!==newItem);if(!bothNaN&&(oldItem!==newItem)){changeDetected++;oldValue[key]=newItem;}}else{oldLength++;oldValue[key]=newItem;changeDetected++;}}}
if(oldLength>newLength){changeDetected++;for(key in oldValue){if(!hasOwnProperty.call(newValue,key)){oldLength--;delete oldValue[key];}}}}
return changeDetected;}
function $watchCollectionAction(){if(initRun){initRun=false;listener(newValue,newValue,self);}else{listener(newValue,veryOldValue,self);}
if(trackVeryOldValue){if(!isObject(newValue)){veryOldValue=newValue;}else if(isArrayLike(newValue)){veryOldValue=new Array(newValue.length);for(var i=0;i<newValue.length;i++){veryOldValue[i]=newValue[i];}}else{veryOldValue={};for(var key in newValue){if(hasOwnProperty.call(newValue,key)){veryOldValue[key]=newValue[key];}}}}}
return this.$watch(changeDetector,$watchCollectionAction);},$digest:function(){var watch,value,last,watchers,length,dirty,ttl=TTL,next,current,target=this,watchLog=[],logIdx,logMsg,asyncTask;beginPhase('$digest');$browser.$$checkUrlChange();if(this===$rootScope&&applyAsyncId!==null){$browser.defer.cancel(applyAsyncId);flushApplyAsync();}
lastDirtyWatch=null;do{dirty=false;current=target;while(asyncQueue.length){try{asyncTask=asyncQueue.shift();asyncTask.scope.$eval(asyncTask.expression,asyncTask.locals);}catch(e){$exceptionHandler(e);}
lastDirtyWatch=null;}
traverseScopesLoop:do{if((watchers=current.$$watchers)){length=watchers.length;while(length--){try{watch=watchers[length];if(watch){if((value=watch.get(current))!==(last=watch.last)&&!(watch.eq?equals(value,last):(typeof value==='number'&&typeof last==='number'&&isNaN(value)&&isNaN(last)))){dirty=true;lastDirtyWatch=watch;watch.last=watch.eq?copy(value,null):value;watch.fn(value,((last===initWatchVal)?value:last),current);if(ttl<5){logIdx=4-ttl;if(!watchLog[logIdx])watchLog[logIdx]=[];watchLog[logIdx].push({msg:isFunction(watch.exp)?'fn: '+(watch.exp.name||watch.exp.toString()):watch.exp,newVal:value,oldVal:last});}}else if(watch===lastDirtyWatch){dirty=false;break traverseScopesLoop;}}}catch(e){$exceptionHandler(e);}}}
if(!(next=((current.$$watchersCount&&current.$$childHead)||(current!==target&&current.$$nextSibling)))){while(current!==target&&!(next=current.$$nextSibling)){current=current.$parent;}}}while((current=next));if((dirty||asyncQueue.length)&&!(ttl--)){clearPhase();throw $rootScopeMinErr('infdig','{0} $digest() iterations reached. Aborting!\n'+'Watchers fired in the last 5 iterations: {1}',TTL,watchLog);}}while(dirty||asyncQueue.length);clearPhase();while(postDigestQueue.length){try{postDigestQueue.shift()();}catch(e){$exceptionHandler(e);}}},$destroy:function(){if(this.$$destroyed)return;var parent=this.$parent;this.$broadcast('$destroy');this.$$destroyed=true;if(this===$rootScope){$browser.$$applicationDestroyed();}
incrementWatchersCount(this,-this.$$watchersCount);for(var eventName in this.$$listenerCount){decrementListenerCount(this,this.$$listenerCount[eventName],eventName);}
if(parent&&parent.$$childHead==this)parent.$$childHead=this.$$nextSibling;if(parent&&parent.$$childTail==this)parent.$$childTail=this.$$prevSibling;if(this.$$prevSibling)this.$$prevSibling.$$nextSibling=this.$$nextSibling;if(this.$$nextSibling)this.$$nextSibling.$$prevSibling=this.$$prevSibling;this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=noop;this.$on=this.$watch=this.$watchGroup=function(){return noop;};this.$$listeners={};this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null;},$eval:function(expr,locals){return $parse(expr)(this,locals);},$evalAsync:function(expr,locals){if(!$rootScope.$$phase&&!asyncQueue.length){$browser.defer(function(){if(asyncQueue.length){$rootScope.$digest();}});}
asyncQueue.push({scope:this,expression:expr,locals:locals});},$$postDigest:function(fn){postDigestQueue.push(fn);},$apply:function(expr){try{beginPhase('$apply');try{return this.$eval(expr);}finally{clearPhase();}}catch(e){$exceptionHandler(e);}finally{try{$rootScope.$digest();}catch(e){$exceptionHandler(e);throw e;}}},$applyAsync:function(expr){var scope=this;expr&&applyAsyncQueue.push($applyAsyncExpression);scheduleApplyAsync();function $applyAsyncExpression(){scope.$eval(expr);}},$on:function(name,listener){var namedListeners=this.$$listeners[name];if(!namedListeners){this.$$listeners[name]=namedListeners=[];}
namedListeners.push(listener);var current=this;do{if(!current.$$listenerCount[name]){current.$$listenerCount[name]=0;}
current.$$listenerCount[name]++;}while((current=current.$parent));var self=this;return function(){var indexOfListener=namedListeners.indexOf(listener);if(indexOfListener!==-1){namedListeners[indexOfListener]=null;decrementListenerCount(self,1,name);}};},$emit:function(name,args){var empty=[],namedListeners,scope=this,stopPropagation=false,event={name:name,targetScope:scope,stopPropagation:function(){stopPropagation=true;},preventDefault:function(){event.defaultPrevented=true;},defaultPrevented:false},listenerArgs=concat([event],arguments,1),i,length;do{namedListeners=scope.$$listeners[name]||empty;event.currentScope=scope;for(i=0,length=namedListeners.length;i<length;i++){if(!namedListeners[i]){namedListeners.splice(i,1);i--;length--;continue;}
try{namedListeners[i].apply(null,listenerArgs);}catch(e){$exceptionHandler(e);}}
if(stopPropagation){event.currentScope=null;return event;}
scope=scope.$parent;}while(scope);event.currentScope=null;return event;},$broadcast:function(name,args){var target=this,current=target,next=target,event={name:name,targetScope:target,preventDefault:function(){event.defaultPrevented=true;},defaultPrevented:false};if(!target.$$listenerCount[name])return event;var listenerArgs=concat([event],arguments,1),listeners,i,length;while((current=next)){event.currentScope=current;listeners=current.$$listeners[name]||[];for(i=0,length=listeners.length;i<length;i++){if(!listeners[i]){listeners.splice(i,1);i--;length--;continue;}
try{listeners[i].apply(null,listenerArgs);}catch(e){$exceptionHandler(e);}}
if(!(next=((current.$$listenerCount[name]&&current.$$childHead)||(current!==target&&current.$$nextSibling)))){while(current!==target&&!(next=current.$$nextSibling)){current=current.$parent;}}}
event.currentScope=null;return event;}};var $rootScope=new Scope();var asyncQueue=$rootScope.$$asyncQueue=[];var postDigestQueue=$rootScope.$$postDigestQueue=[];var applyAsyncQueue=$rootScope.$$applyAsyncQueue=[];return $rootScope;function beginPhase(phase){if($rootScope.$$phase){throw $rootScopeMinErr('inprog','{0} already in progress',$rootScope.$$phase);}
$rootScope.$$phase=phase;}
function clearPhase(){$rootScope.$$phase=null;}
function incrementWatchersCount(current,count){do{current.$$watchersCount+=count;}while((current=current.$parent));}
function decrementListenerCount(current,count,name){do{current.$$listenerCount[name]-=count;if(current.$$listenerCount[name]===0){delete current.$$listenerCount[name];}}while((current=current.$parent));}
function initWatchVal(){}
function flushApplyAsync(){while(applyAsyncQueue.length){try{applyAsyncQueue.shift()();}catch(e){$exceptionHandler(e);}}
applyAsyncId=null;}
function scheduleApplyAsync(){if(applyAsyncId===null){applyAsyncId=$browser.defer(function(){$rootScope.$apply(flushApplyAsync);});}}}];}
function $$SanitizeUriProvider(){var aHrefSanitizationWhitelist=/^\s*(https?|ftp|mailto|tel|file):/,imgSrcSanitizationWhitelist=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(regexp){if(isDefined(regexp)){aHrefSanitizationWhitelist=regexp;return this;}
return aHrefSanitizationWhitelist;};this.imgSrcSanitizationWhitelist=function(regexp){if(isDefined(regexp)){imgSrcSanitizationWhitelist=regexp;return this;}
return imgSrcSanitizationWhitelist;};this.$get=function(){return function sanitizeUri(uri,isImage){var regex=isImage?imgSrcSanitizationWhitelist:aHrefSanitizationWhitelist;var normalizedVal;normalizedVal=urlResolve(uri).href;if(normalizedVal!==''&&!normalizedVal.match(regex)){return'unsafe:'+normalizedVal;}
return uri;};};}
var $sceMinErr=minErr('$sce');var SCE_CONTEXTS={HTML:'html',CSS:'css',URL:'url',RESOURCE_URL:'resourceUrl',JS:'js'};function adjustMatcher(matcher){if(matcher==='self'){return matcher;}else if(isString(matcher)){if(matcher.indexOf('***')>-1){throw $sceMinErr('iwcard','Illegal sequence *** in string matcher.  String: {0}',matcher);}
matcher=escapeForRegexp(matcher).replace('\\*\\*','.*').replace('\\*','[^:/.?&;]*');return new RegExp('^'+matcher+'$');}else if(isRegExp(matcher)){return new RegExp('^'+matcher.source+'$');}else{throw $sceMinErr('imatcher','Matchers may only be "self", string patterns or RegExp objects');}}
function adjustMatchers(matchers){var adjustedMatchers=[];if(isDefined(matchers)){forEach(matchers,function(matcher){adjustedMatchers.push(adjustMatcher(matcher));});}
return adjustedMatchers;}
function $SceDelegateProvider(){this.SCE_CONTEXTS=SCE_CONTEXTS;var resourceUrlWhitelist=['self'],resourceUrlBlacklist=[];this.resourceUrlWhitelist=function(value){if(arguments.length){resourceUrlWhitelist=adjustMatchers(value);}
return resourceUrlWhitelist;};this.resourceUrlBlacklist=function(value){if(arguments.length){resourceUrlBlacklist=adjustMatchers(value);}
return resourceUrlBlacklist;};this.$get=['$injector',function($injector){var htmlSanitizer=function htmlSanitizer(html){throw $sceMinErr('unsafe','Attempting to use an unsafe value in a safe context.');};if($injector.has('$sanitize')){htmlSanitizer=$injector.get('$sanitize');}
function matchUrl(matcher,parsedUrl){if(matcher==='self'){return urlIsSameOrigin(parsedUrl);}else{return!!matcher.exec(parsedUrl.href);}}
function isResourceUrlAllowedByPolicy(url){var parsedUrl=urlResolve(url.toString());var i,n,allowed=false;for(i=0,n=resourceUrlWhitelist.length;i<n;i++){if(matchUrl(resourceUrlWhitelist[i],parsedUrl)){allowed=true;break;}}
if(allowed){for(i=0,n=resourceUrlBlacklist.length;i<n;i++){if(matchUrl(resourceUrlBlacklist[i],parsedUrl)){allowed=false;break;}}}
return allowed;}
function generateHolderType(Base){var holderType=function TrustedValueHolderType(trustedValue){this.$$unwrapTrustedValue=function(){return trustedValue;};};if(Base){holderType.prototype=new Base();}
holderType.prototype.valueOf=function sceValueOf(){return this.$$unwrapTrustedValue();};holderType.prototype.toString=function sceToString(){return this.$$unwrapTrustedValue().toString();};return holderType;}
var trustedValueHolderBase=generateHolderType(),byType={};byType[SCE_CONTEXTS.HTML]=generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.CSS]=generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.URL]=generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.JS]=generateHolderType(trustedValueHolderBase);byType[SCE_CONTEXTS.RESOURCE_URL]=generateHolderType(byType[SCE_CONTEXTS.URL]);function trustAs(type,trustedValue){var Constructor=(byType.hasOwnProperty(type)?byType[type]:null);if(!Constructor){throw $sceMinErr('icontext','Attempted to trust a value in invalid context. Context: {0}; Value: {1}',type,trustedValue);}
if(trustedValue===null||isUndefined(trustedValue)||trustedValue===''){return trustedValue;}
if(typeof trustedValue!=='string'){throw $sceMinErr('itype','Attempted to trust a non-string value in a content requiring a string: Context: {0}',type);}
return new Constructor(trustedValue);}
function valueOf(maybeTrusted){if(maybeTrusted instanceof trustedValueHolderBase){return maybeTrusted.$$unwrapTrustedValue();}else{return maybeTrusted;}}
function getTrusted(type,maybeTrusted){if(maybeTrusted===null||isUndefined(maybeTrusted)||maybeTrusted===''){return maybeTrusted;}
var constructor=(byType.hasOwnProperty(type)?byType[type]:null);if(constructor&&maybeTrusted instanceof constructor){return maybeTrusted.$$unwrapTrustedValue();}
if(type===SCE_CONTEXTS.RESOURCE_URL){if(isResourceUrlAllowedByPolicy(maybeTrusted)){return maybeTrusted;}else{throw $sceMinErr('insecurl','Blocked loading resource from url not allowed by $sceDelegate policy.  URL: {0}',maybeTrusted.toString());}}else if(type===SCE_CONTEXTS.HTML){return htmlSanitizer(maybeTrusted);}
throw $sceMinErr('unsafe','Attempting to use an unsafe value in a safe context.');}
return{trustAs:trustAs,getTrusted:getTrusted,valueOf:valueOf};}];}
function $SceProvider(){var enabled=true;this.enabled=function(value){if(arguments.length){enabled=!!value;}
return enabled;};this.$get=['$parse','$sceDelegate',function($parse,$sceDelegate){if(enabled&&msie<8){throw $sceMinErr('iequirks','Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks '+'mode.  You can fix this by adding the text <!doctype html> to the top of your HTML '+'document.  See http://docs.angularjs.org/api/ng.$sce for more information.');}
var sce=shallowCopy(SCE_CONTEXTS);sce.isEnabled=function(){return enabled;};sce.trustAs=$sceDelegate.trustAs;sce.getTrusted=$sceDelegate.getTrusted;sce.valueOf=$sceDelegate.valueOf;if(!enabled){sce.trustAs=sce.getTrusted=function(type,value){return value;};sce.valueOf=identity;}
sce.parseAs=function sceParseAs(type,expr){var parsed=$parse(expr);if(parsed.literal&&parsed.constant){return parsed;}else{return $parse(expr,function(value){return sce.getTrusted(type,value);});}};var parse=sce.parseAs,getTrusted=sce.getTrusted,trustAs=sce.trustAs;forEach(SCE_CONTEXTS,function(enumValue,name){var lName=lowercase(name);sce[camelCase("parse_as_"+lName)]=function(expr){return parse(enumValue,expr);};sce[camelCase("get_trusted_"+lName)]=function(value){return getTrusted(enumValue,value);};sce[camelCase("trust_as_"+lName)]=function(value){return trustAs(enumValue,value);};});return sce;}];}
function $SnifferProvider(){this.$get=['$window','$document',function($window,$document){var eventSupport={},android=toInt((/android (\d+)/.exec(lowercase(($window.navigator||{}).userAgent))||[])[1]),boxee=/Boxee/i.test(($window.navigator||{}).userAgent),document=$document[0]||{},vendorPrefix,vendorRegex=/^(Moz|webkit|ms)(?=[A-Z])/,bodyStyle=document.body&&document.body.style,transitions=false,animations=false,match;if(bodyStyle){for(var prop in bodyStyle){if(match=vendorRegex.exec(prop)){vendorPrefix=match[0];vendorPrefix=vendorPrefix.substr(0,1).toUpperCase()+vendorPrefix.substr(1);break;}}
if(!vendorPrefix){vendorPrefix=('WebkitOpacity'in bodyStyle)&&'webkit';}
transitions=!!(('transition'in bodyStyle)||(vendorPrefix+'Transition'in bodyStyle));animations=!!(('animation'in bodyStyle)||(vendorPrefix+'Animation'in bodyStyle));if(android&&(!transitions||!animations)){transitions=isString(bodyStyle.webkitTransition);animations=isString(bodyStyle.webkitAnimation);}}
return{history:!!($window.history&&$window.history.pushState&&!(android<4)&&!boxee),hasEvent:function(event){if(event==='input'&&msie<=11)return false;if(isUndefined(eventSupport[event])){var divElm=document.createElement('div');eventSupport[event]='on'+event in divElm;}
return eventSupport[event];},csp:csp(),vendorPrefix:vendorPrefix,transitions:transitions,animations:animations,android:android};}];}
var $compileMinErr=minErr('$compile');function $TemplateRequestProvider(){this.$get=['$templateCache','$http','$q','$sce',function($templateCache,$http,$q,$sce){function handleRequestFn(tpl,ignoreRequestError){handleRequestFn.totalPendingRequests++;if(!isString(tpl)||!$templateCache.get(tpl)){tpl=$sce.getTrustedResourceUrl(tpl);}
var transformResponse=$http.defaults&&$http.defaults.transformResponse;if(isArray(transformResponse)){transformResponse=transformResponse.filter(function(transformer){return transformer!==defaultHttpResponseTransform;});}else if(transformResponse===defaultHttpResponseTransform){transformResponse=null;}
var httpOptions={cache:$templateCache,transformResponse:transformResponse};return $http.get(tpl,httpOptions)
['finally'](function(){handleRequestFn.totalPendingRequests--;}).then(function(response){$templateCache.put(tpl,response.data);return response.data;},handleError);function handleError(resp){if(!ignoreRequestError){throw $compileMinErr('tpload','Failed to load template: {0} (HTTP status: {1} {2})',tpl,resp.status,resp.statusText);}
return $q.reject(resp);}}
handleRequestFn.totalPendingRequests=0;return handleRequestFn;}];}
function $$TestabilityProvider(){this.$get=['$rootScope','$browser','$location',function($rootScope,$browser,$location){var testability={};testability.findBindings=function(element,expression,opt_exactMatch){var bindings=element.getElementsByClassName('ng-binding');var matches=[];forEach(bindings,function(binding){var dataBinding=angular.element(binding).data('$binding');if(dataBinding){forEach(dataBinding,function(bindingName){if(opt_exactMatch){var matcher=new RegExp('(^|\\s)'+escapeForRegexp(expression)+'(\\s|\\||$)');if(matcher.test(bindingName)){matches.push(binding);}}else{if(bindingName.indexOf(expression)!=-1){matches.push(binding);}}});}});return matches;};testability.findModels=function(element,expression,opt_exactMatch){var prefixes=['ng-','data-ng-','ng\\:'];for(var p=0;p<prefixes.length;++p){var attributeEquals=opt_exactMatch?'=':'*=';var selector='['+prefixes[p]+'model'+attributeEquals+'"'+expression+'"]';var elements=element.querySelectorAll(selector);if(elements.length){return elements;}}};testability.getLocation=function(){return $location.url();};testability.setLocation=function(url){if(url!==$location.url()){$location.url(url);$rootScope.$digest();}};testability.whenStable=function(callback){$browser.notifyWhenNoOutstandingRequests(callback);};return testability;}];}
function $TimeoutProvider(){this.$get=['$rootScope','$browser','$q','$$q','$exceptionHandler',function($rootScope,$browser,$q,$$q,$exceptionHandler){var deferreds={};function timeout(fn,delay,invokeApply){if(!isFunction(fn)){invokeApply=delay;delay=fn;fn=noop;}
var args=sliceArgs(arguments,3),skipApply=(isDefined(invokeApply)&&!invokeApply),deferred=(skipApply?$$q:$q).defer(),promise=deferred.promise,timeoutId;timeoutId=$browser.defer(function(){try{deferred.resolve(fn.apply(null,args));}catch(e){deferred.reject(e);$exceptionHandler(e);}
finally{delete deferreds[promise.$$timeoutId];}
if(!skipApply)$rootScope.$apply();},delay);promise.$$timeoutId=timeoutId;deferreds[timeoutId]=deferred;return promise;}
timeout.cancel=function(promise){if(promise&&promise.$$timeoutId in deferreds){deferreds[promise.$$timeoutId].reject('canceled');delete deferreds[promise.$$timeoutId];return $browser.defer.cancel(promise.$$timeoutId);}
return false;};return timeout;}];}
var urlParsingNode=document.createElement("a");var originUrl=urlResolve(window.location.href);function urlResolve(url){var href=url;if(msie){urlParsingNode.setAttribute("href",href);href=urlParsingNode.href;}
urlParsingNode.setAttribute('href',href);return{href:urlParsingNode.href,protocol:urlParsingNode.protocol?urlParsingNode.protocol.replace(/:$/,''):'',host:urlParsingNode.host,search:urlParsingNode.search?urlParsingNode.search.replace(/^\?/,''):'',hash:urlParsingNode.hash?urlParsingNode.hash.replace(/^#/,''):'',hostname:urlParsingNode.hostname,port:urlParsingNode.port,pathname:(urlParsingNode.pathname.charAt(0)==='/')?urlParsingNode.pathname:'/'+urlParsingNode.pathname};}
function urlIsSameOrigin(requestUrl){var parsed=(isString(requestUrl))?urlResolve(requestUrl):requestUrl;return(parsed.protocol===originUrl.protocol&&parsed.host===originUrl.host);}
function $WindowProvider(){this.$get=valueFn(window);}
function $$CookieReader($document){var rawDocument=$document[0]||{};var lastCookies={};var lastCookieString='';function safeDecodeURIComponent(str){try{return decodeURIComponent(str);}catch(e){return str;}}
return function(){var cookieArray,cookie,i,index,name;var currentCookieString=rawDocument.cookie||'';if(currentCookieString!==lastCookieString){lastCookieString=currentCookieString;cookieArray=lastCookieString.split('; ');lastCookies={};for(i=0;i<cookieArray.length;i++){cookie=cookieArray[i];index=cookie.indexOf('=');if(index>0){name=safeDecodeURIComponent(cookie.substring(0,index));if(isUndefined(lastCookies[name])){lastCookies[name]=safeDecodeURIComponent(cookie.substring(index+1));}}}}
return lastCookies;};}
$$CookieReader.$inject=['$document'];function $$CookieReaderProvider(){this.$get=$$CookieReader;}
$FilterProvider.$inject=['$provide'];function $FilterProvider($provide){var suffix='Filter';function register(name,factory){if(isObject(name)){var filters={};forEach(name,function(filter,key){filters[key]=register(key,filter);});return filters;}else{return $provide.factory(name+suffix,factory);}}
this.register=register;this.$get=['$injector',function($injector){return function(name){return $injector.get(name+suffix);};}];register('currency',currencyFilter);register('date',dateFilter);register('filter',filterFilter);register('json',jsonFilter);register('limitTo',limitToFilter);register('lowercase',lowercaseFilter);register('number',numberFilter);register('orderBy',orderByFilter);register('uppercase',uppercaseFilter);}
function filterFilter(){return function(array,expression,comparator){if(!isArrayLike(array)){if(array==null){return array;}else{throw minErr('filter')('notarray','Expected array but received: {0}',array);}}
var expressionType=getTypeForFilter(expression);var predicateFn;var matchAgainstAnyProp;switch(expressionType){case'function':predicateFn=expression;break;case'boolean':case'null':case'number':case'string':matchAgainstAnyProp=true;case'object':predicateFn=createPredicateFn(expression,comparator,matchAgainstAnyProp);break;default:return array;}
return Array.prototype.filter.call(array,predicateFn);};}
function createPredicateFn(expression,comparator,matchAgainstAnyProp){var shouldMatchPrimitives=isObject(expression)&&('$'in expression);var predicateFn;if(comparator===true){comparator=equals;}else if(!isFunction(comparator)){comparator=function(actual,expected){if(isUndefined(actual)){return false;}
if((actual===null)||(expected===null)){return actual===expected;}
if(isObject(expected)||(isObject(actual)&&!hasCustomToString(actual))){return false;}
actual=lowercase(''+actual);expected=lowercase(''+expected);return actual.indexOf(expected)!==-1;};}
predicateFn=function(item){if(shouldMatchPrimitives&&!isObject(item)){return deepCompare(item,expression.$,comparator,false);}
return deepCompare(item,expression,comparator,matchAgainstAnyProp);};return predicateFn;}
function deepCompare(actual,expected,comparator,matchAgainstAnyProp,dontMatchWholeObject){var actualType=getTypeForFilter(actual);var expectedType=getTypeForFilter(expected);if((expectedType==='string')&&(expected.charAt(0)==='!')){return!deepCompare(actual,expected.substring(1),comparator,matchAgainstAnyProp);}else if(isArray(actual)){return actual.some(function(item){return deepCompare(item,expected,comparator,matchAgainstAnyProp);});}
switch(actualType){case'object':var key;if(matchAgainstAnyProp){for(key in actual){if((key.charAt(0)!=='$')&&deepCompare(actual[key],expected,comparator,true)){return true;}}
return dontMatchWholeObject?false:deepCompare(actual,expected,comparator,false);}else if(expectedType==='object'){for(key in expected){var expectedVal=expected[key];if(isFunction(expectedVal)||isUndefined(expectedVal)){continue;}
var matchAnyProperty=key==='$';var actualVal=matchAnyProperty?actual:actual[key];if(!deepCompare(actualVal,expectedVal,comparator,matchAnyProperty,matchAnyProperty)){return false;}}
return true;}else{return comparator(actual,expected);}
break;case'function':return false;default:return comparator(actual,expected);}}
function getTypeForFilter(val){return(val===null)?'null':typeof val;}
currencyFilter.$inject=['$locale'];function currencyFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(amount,currencySymbol,fractionSize){if(isUndefined(currencySymbol)){currencySymbol=formats.CURRENCY_SYM;}
if(isUndefined(fractionSize)){fractionSize=formats.PATTERNS[1].maxFrac;}
return(amount==null)?amount:formatNumber(amount,formats.PATTERNS[1],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize).replace(/\u00A4/g,currencySymbol);};}
numberFilter.$inject=['$locale'];function numberFilter($locale){var formats=$locale.NUMBER_FORMATS;return function(number,fractionSize){return(number==null)?number:formatNumber(number,formats.PATTERNS[0],formats.GROUP_SEP,formats.DECIMAL_SEP,fractionSize);};}
var DECIMAL_SEP='.';function formatNumber(number,pattern,groupSep,decimalSep,fractionSize){if(isObject(number))return'';var isNegative=number<0;number=Math.abs(number);var isInfinity=number===Infinity;if(!isInfinity&&!isFinite(number))return'';var numStr=number+'',formatedText='',hasExponent=false,parts=[];if(isInfinity)formatedText='\u221e';if(!isInfinity&&numStr.indexOf('e')!==-1){var match=numStr.match(/([\d\.]+)e(-?)(\d+)/);if(match&&match[2]=='-'&&match[3]>fractionSize+1){number=0;}else{formatedText=numStr;hasExponent=true;}}
if(!isInfinity&&!hasExponent){var fractionLen=(numStr.split(DECIMAL_SEP)[1]||'').length;if(isUndefined(fractionSize)){fractionSize=Math.min(Math.max(pattern.minFrac,fractionLen),pattern.maxFrac);}
number=+(Math.round(+(number.toString()+'e'+fractionSize)).toString()+'e'+-fractionSize);var fraction=(''+number).split(DECIMAL_SEP);var whole=fraction[0];fraction=fraction[1]||'';var i,pos=0,lgroup=pattern.lgSize,group=pattern.gSize;if(whole.length>=(lgroup+group)){pos=whole.length-lgroup;for(i=0;i<pos;i++){if((pos-i)%group===0&&i!==0){formatedText+=groupSep;}
formatedText+=whole.charAt(i);}}
for(i=pos;i<whole.length;i++){if((whole.length-i)%lgroup===0&&i!==0){formatedText+=groupSep;}
formatedText+=whole.charAt(i);}
while(fraction.length<fractionSize){fraction+='0';}
if(fractionSize&&fractionSize!=="0")formatedText+=decimalSep+fraction.substr(0,fractionSize);}else{if(fractionSize>0&&number<1){formatedText=number.toFixed(fractionSize);number=parseFloat(formatedText);formatedText=formatedText.replace(DECIMAL_SEP,decimalSep);}}
if(number===0){isNegative=false;}
parts.push(isNegative?pattern.negPre:pattern.posPre,formatedText,isNegative?pattern.negSuf:pattern.posSuf);return parts.join('');}
function padNumber(num,digits,trim){var neg='';if(num<0){neg='-';num=-num;}
num=''+num;while(num.length<digits)num='0'+num;if(trim){num=num.substr(num.length-digits);}
return neg+num;}
function dateGetter(name,size,offset,trim){offset=offset||0;return function(date){var value=date['get'+name]();if(offset>0||value>-offset){value+=offset;}
if(value===0&&offset==-12)value=12;return padNumber(value,size,trim);};}
function dateStrGetter(name,shortForm){return function(date,formats){var value=date['get'+name]();var get=uppercase(shortForm?('SHORT'+name):name);return formats[get][value];};}
function timeZoneGetter(date,formats,offset){var zone=-1*offset;var paddedZone=(zone>=0)?"+":"";paddedZone+=padNumber(Math[zone>0?'floor':'ceil'](zone/60),2)+
padNumber(Math.abs(zone%60),2);return paddedZone;}
function getFirstThursdayOfYear(year){var dayOfWeekOnFirst=(new Date(year,0,1)).getDay();return new Date(year,0,((dayOfWeekOnFirst<=4)?5:12)-dayOfWeekOnFirst);}
function getThursdayThisWeek(datetime){return new Date(datetime.getFullYear(),datetime.getMonth(),datetime.getDate()+(4-datetime.getDay()));}
function weekGetter(size){return function(date){var firstThurs=getFirstThursdayOfYear(date.getFullYear()),thisThurs=getThursdayThisWeek(date);var diff=+thisThurs-+firstThurs,result=1+Math.round(diff/6.048e8);return padNumber(result,size);};}
function ampmGetter(date,formats){return date.getHours()<12?formats.AMPMS[0]:formats.AMPMS[1];}
function eraGetter(date,formats){return date.getFullYear()<=0?formats.ERAS[0]:formats.ERAS[1];}
function longEraGetter(date,formats){return date.getFullYear()<=0?formats.ERANAMES[0]:formats.ERANAMES[1];}
var DATE_FORMATS={yyyy:dateGetter('FullYear',4),yy:dateGetter('FullYear',2,0,true),y:dateGetter('FullYear',1),MMMM:dateStrGetter('Month'),MMM:dateStrGetter('Month',true),MM:dateGetter('Month',2,1),M:dateGetter('Month',1,1),dd:dateGetter('Date',2),d:dateGetter('Date',1),HH:dateGetter('Hours',2),H:dateGetter('Hours',1),hh:dateGetter('Hours',2,-12),h:dateGetter('Hours',1,-12),mm:dateGetter('Minutes',2),m:dateGetter('Minutes',1),ss:dateGetter('Seconds',2),s:dateGetter('Seconds',1),sss:dateGetter('Milliseconds',3),EEEE:dateStrGetter('Day'),EEE:dateStrGetter('Day',true),a:ampmGetter,Z:timeZoneGetter,ww:weekGetter(2),w:weekGetter(1),G:eraGetter,GG:eraGetter,GGG:eraGetter,GGGG:longEraGetter};var DATE_FORMATS_SPLIT=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,NUMBER_STRING=/^\-?\d+$/;dateFilter.$inject=['$locale'];function dateFilter($locale){var R_ISO8601_STR=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;function jsonStringToDate(string){var match;if(match=string.match(R_ISO8601_STR)){var date=new Date(0),tzHour=0,tzMin=0,dateSetter=match[8]?date.setUTCFullYear:date.setFullYear,timeSetter=match[8]?date.setUTCHours:date.setHours;if(match[9]){tzHour=toInt(match[9]+match[10]);tzMin=toInt(match[9]+match[11]);}
dateSetter.call(date,toInt(match[1]),toInt(match[2])-1,toInt(match[3]));var h=toInt(match[4]||0)-tzHour;var m=toInt(match[5]||0)-tzMin;var s=toInt(match[6]||0);var ms=Math.round(parseFloat('0.'+(match[7]||0))*1000);timeSetter.call(date,h,m,s,ms);return date;}
return string;}
return function(date,format,timezone){var text='',parts=[],fn,match;format=format||'mediumDate';format=$locale.DATETIME_FORMATS[format]||format;if(isString(date)){date=NUMBER_STRING.test(date)?toInt(date):jsonStringToDate(date);}
if(isNumber(date)){date=new Date(date);}
if(!isDate(date)||!isFinite(date.getTime())){return date;}
while(format){match=DATE_FORMATS_SPLIT.exec(format);if(match){parts=concat(parts,match,1);format=parts.pop();}else{parts.push(format);format=null;}}
var dateTimezoneOffset=date.getTimezoneOffset();if(timezone){dateTimezoneOffset=timezoneToOffset(timezone,date.getTimezoneOffset());date=convertTimezoneToLocal(date,timezone,true);}
forEach(parts,function(value){fn=DATE_FORMATS[value];text+=fn?fn(date,$locale.DATETIME_FORMATS,dateTimezoneOffset):value.replace(/(^'|'$)/g,'').replace(/''/g,"'");});return text;};}
function jsonFilter(){return function(object,spacing){if(isUndefined(spacing)){spacing=2;}
return toJson(object,spacing);};}
var lowercaseFilter=valueFn(lowercase);var uppercaseFilter=valueFn(uppercase);function limitToFilter(){return function(input,limit,begin){if(Math.abs(Number(limit))===Infinity){limit=Number(limit);}else{limit=toInt(limit);}
if(isNaN(limit))return input;if(isNumber(input))input=input.toString();if(!isArray(input)&&!isString(input))return input;begin=(!begin||isNaN(begin))?0:toInt(begin);begin=(begin<0&&begin>=-input.length)?input.length+begin:begin;if(limit>=0){return input.slice(begin,begin+limit);}else{if(begin===0){return input.slice(limit,input.length);}else{return input.slice(Math.max(0,begin+limit),begin);}}};}
orderByFilter.$inject=['$parse'];function orderByFilter($parse){return function(array,sortPredicate,reverseOrder){if(!(isArrayLike(array)))return array;if(!isArray(sortPredicate)){sortPredicate=[sortPredicate];}
if(sortPredicate.length===0){sortPredicate=['+'];}
var predicates=processPredicates(sortPredicate,reverseOrder);predicates.push({get:function(){return{};},descending:reverseOrder?-1:1});var compareValues=Array.prototype.map.call(array,getComparisonObject);compareValues.sort(doComparison);array=compareValues.map(function(item){return item.value;});return array;function getComparisonObject(value,index){return{value:value,predicateValues:predicates.map(function(predicate){return getPredicateValue(predicate.get(value),index);})};}
function doComparison(v1,v2){var result=0;for(var index=0,length=predicates.length;index<length;++index){result=compare(v1.predicateValues[index],v2.predicateValues[index])*predicates[index].descending;if(result)break;}
return result;}};function processPredicates(sortPredicate,reverseOrder){reverseOrder=reverseOrder?-1:1;return sortPredicate.map(function(predicate){var descending=1,get=identity;if(isFunction(predicate)){get=predicate;}else if(isString(predicate)){if((predicate.charAt(0)=='+'||predicate.charAt(0)=='-')){descending=predicate.charAt(0)=='-'?-1:1;predicate=predicate.substring(1);}
if(predicate!==''){get=$parse(predicate);if(get.constant){var key=get();get=function(value){return value[key];};}}}
return{get:get,descending:descending*reverseOrder};});}
function isPrimitive(value){switch(typeof value){case'number':case'boolean':case'string':return true;default:return false;}}
function objectValue(value,index){if(typeof value.valueOf==='function'){value=value.valueOf();if(isPrimitive(value))return value;}
if(hasCustomToString(value)){value=value.toString();if(isPrimitive(value))return value;}
return index;}
function getPredicateValue(value,index){var type=typeof value;if(value===null){type='string';value='null';}else if(type==='string'){value=value.toLowerCase();}else if(type==='object'){value=objectValue(value,index);}
return{value:value,type:type};}
function compare(v1,v2){var result=0;if(v1.type===v2.type){if(v1.value!==v2.value){result=v1.value<v2.value?-1:1;}}else{result=v1.type<v2.type?-1:1;}
return result;}}
function ngDirective(directive){if(isFunction(directive)){directive={link:directive};}
directive.restrict=directive.restrict||'AC';return valueFn(directive);}
var htmlAnchorDirective=valueFn({restrict:'E',compile:function(element,attr){if(!attr.href&&!attr.xlinkHref){return function(scope,element){if(element[0].nodeName.toLowerCase()!=='a')return;var href=toString.call(element.prop('href'))==='[object SVGAnimatedString]'?'xlink:href':'href';element.on('click',function(event){if(!element.attr(href)){event.preventDefault();}});};}}});var ngAttributeAliasDirectives={};forEach(BOOLEAN_ATTR,function(propName,attrName){if(propName=="multiple")return;function defaultLinkFn(scope,element,attr){scope.$watch(attr[normalized],function ngBooleanAttrWatchAction(value){attr.$set(attrName,!!value);});}
var normalized=directiveNormalize('ng-'+attrName);var linkFn=defaultLinkFn;if(propName==='checked'){linkFn=function(scope,element,attr){if(attr.ngModel!==attr[normalized]){defaultLinkFn(scope,element,attr);}};}
ngAttributeAliasDirectives[normalized]=function(){return{restrict:'A',priority:100,link:linkFn};};});forEach(ALIASED_ATTR,function(htmlAttr,ngAttr){ngAttributeAliasDirectives[ngAttr]=function(){return{priority:100,link:function(scope,element,attr){if(ngAttr==="ngPattern"&&attr.ngPattern.charAt(0)=="/"){var match=attr.ngPattern.match(REGEX_STRING_REGEXP);if(match){attr.$set("ngPattern",new RegExp(match[1],match[2]));return;}}
scope.$watch(attr[ngAttr],function ngAttrAliasWatchAction(value){attr.$set(ngAttr,value);});}};};});forEach(['src','srcset','href'],function(attrName){var normalized=directiveNormalize('ng-'+attrName);ngAttributeAliasDirectives[normalized]=function(){return{priority:99,link:function(scope,element,attr){var propName=attrName,name=attrName;if(attrName==='href'&&toString.call(element.prop('href'))==='[object SVGAnimatedString]'){name='xlinkHref';attr.$attr[name]='xlink:href';propName=null;}
attr.$observe(normalized,function(value){if(!value){if(attrName==='href'){attr.$set(name,null);}
return;}
attr.$set(name,value);if(msie&&propName)element.prop(propName,attr[name]);});}};};});var nullFormCtrl={$addControl:noop,$$renameControl:nullFormRenameControl,$removeControl:noop,$setValidity:noop,$setDirty:noop,$setPristine:noop,$setSubmitted:noop},SUBMITTED_CLASS='ng-submitted';function nullFormRenameControl(control,name){control.$name=name;}
FormController.$inject=['$element','$attrs','$scope','$animate','$interpolate'];function FormController(element,attrs,$scope,$animate,$interpolate){var form=this,controls=[];form.$error={};form.$$success={};form.$pending=undefined;form.$name=$interpolate(attrs.name||attrs.ngForm||'')($scope);form.$dirty=false;form.$pristine=true;form.$valid=true;form.$invalid=false;form.$submitted=false;form.$$parentForm=nullFormCtrl;form.$rollbackViewValue=function(){forEach(controls,function(control){control.$rollbackViewValue();});};form.$commitViewValue=function(){forEach(controls,function(control){control.$commitViewValue();});};form.$addControl=function(control){assertNotHasOwnProperty(control.$name,'input');controls.push(control);if(control.$name){form[control.$name]=control;}
control.$$parentForm=form;};form.$$renameControl=function(control,newName){var oldName=control.$name;if(form[oldName]===control){delete form[oldName];}
form[newName]=control;control.$name=newName;};form.$removeControl=function(control){if(control.$name&&form[control.$name]===control){delete form[control.$name];}
forEach(form.$pending,function(value,name){form.$setValidity(name,null,control);});forEach(form.$error,function(value,name){form.$setValidity(name,null,control);});forEach(form.$$success,function(value,name){form.$setValidity(name,null,control);});arrayRemove(controls,control);control.$$parentForm=nullFormCtrl;};addSetValidityMethod({ctrl:this,$element:element,set:function(object,property,controller){var list=object[property];if(!list){object[property]=[controller];}else{var index=list.indexOf(controller);if(index===-1){list.push(controller);}}},unset:function(object,property,controller){var list=object[property];if(!list){return;}
arrayRemove(list,controller);if(list.length===0){delete object[property];}},$animate:$animate});form.$setDirty=function(){$animate.removeClass(element,PRISTINE_CLASS);$animate.addClass(element,DIRTY_CLASS);form.$dirty=true;form.$pristine=false;form.$$parentForm.$setDirty();};form.$setPristine=function(){$animate.setClass(element,PRISTINE_CLASS,DIRTY_CLASS+' '+SUBMITTED_CLASS);form.$dirty=false;form.$pristine=true;form.$submitted=false;forEach(controls,function(control){control.$setPristine();});};form.$setUntouched=function(){forEach(controls,function(control){control.$setUntouched();});};form.$setSubmitted=function(){$animate.addClass(element,SUBMITTED_CLASS);form.$submitted=true;form.$$parentForm.$setSubmitted();};}
var formDirectiveFactory=function(isNgForm){return['$timeout','$parse',function($timeout,$parse){var formDirective={name:'form',restrict:isNgForm?'EAC':'E',require:['form','^^?form'],controller:FormController,compile:function ngFormCompile(formElement,attr){formElement.addClass(PRISTINE_CLASS).addClass(VALID_CLASS);var nameAttr=attr.name?'name':(isNgForm&&attr.ngForm?'ngForm':false);return{pre:function ngFormPreLink(scope,formElement,attr,ctrls){var controller=ctrls[0];if(!('action'in attr)){var handleFormSubmission=function(event){scope.$apply(function(){controller.$commitViewValue();controller.$setSubmitted();});event.preventDefault();};addEventListenerFn(formElement[0],'submit',handleFormSubmission);formElement.on('$destroy',function(){$timeout(function(){removeEventListenerFn(formElement[0],'submit',handleFormSubmission);},0,false);});}
var parentFormCtrl=ctrls[1]||controller.$$parentForm;parentFormCtrl.$addControl(controller);var setter=nameAttr?getSetter(controller.$name):noop;if(nameAttr){setter(scope,controller);attr.$observe(nameAttr,function(newValue){if(controller.$name===newValue)return;setter(scope,undefined);controller.$$parentForm.$$renameControl(controller,newValue);setter=getSetter(controller.$name);setter(scope,controller);});}
formElement.on('$destroy',function(){controller.$$parentForm.$removeControl(controller);setter(scope,undefined);extend(controller,nullFormCtrl);});}};}};return formDirective;function getSetter(expression){if(expression===''){return $parse('this[""]').assign;}
return $parse(expression).assign||noop;}}];};var formDirective=formDirectiveFactory();var ngFormDirective=formDirectiveFactory(true);var ISO_DATE_REGEXP=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;var URL_REGEXP=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/;var EMAIL_REGEXP=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i;var NUMBER_REGEXP=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/;var DATE_REGEXP=/^(\d{4})-(\d{2})-(\d{2})$/;var DATETIMELOCAL_REGEXP=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;var WEEK_REGEXP=/^(\d{4})-W(\d\d)$/;var MONTH_REGEXP=/^(\d{4})-(\d\d)$/;var TIME_REGEXP=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/;var inputType={'text':textInputType,'date':createDateInputType('date',DATE_REGEXP,createDateParser(DATE_REGEXP,['yyyy','MM','dd']),'yyyy-MM-dd'),'datetime-local':createDateInputType('datetimelocal',DATETIMELOCAL_REGEXP,createDateParser(DATETIMELOCAL_REGEXP,['yyyy','MM','dd','HH','mm','ss','sss']),'yyyy-MM-ddTHH:mm:ss.sss'),'time':createDateInputType('time',TIME_REGEXP,createDateParser(TIME_REGEXP,['HH','mm','ss','sss']),'HH:mm:ss.sss'),'week':createDateInputType('week',WEEK_REGEXP,weekParser,'yyyy-Www'),'month':createDateInputType('month',MONTH_REGEXP,createDateParser(MONTH_REGEXP,['yyyy','MM']),'yyyy-MM'),'number':numberInputType,'url':urlInputType,'email':emailInputType,'radio':radioInputType,'checkbox':checkboxInputType,'hidden':noop,'button':noop,'submit':noop,'reset':noop,'file':noop};function stringBasedInputType(ctrl){ctrl.$formatters.push(function(value){return ctrl.$isEmpty(value)?value:value.toString();});}
function textInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);}
function baseInputType(scope,element,attr,ctrl,$sniffer,$browser){var type=lowercase(element[0].type);if(!$sniffer.android){var composing=false;element.on('compositionstart',function(data){composing=true;});element.on('compositionend',function(){composing=false;listener();});}
var listener=function(ev){if(timeout){$browser.defer.cancel(timeout);timeout=null;}
if(composing)return;var value=element.val(),event=ev&&ev.type;if(type!=='password'&&(!attr.ngTrim||attr.ngTrim!=='false')){value=trim(value);}
if(ctrl.$viewValue!==value||(value===''&&ctrl.$$hasNativeValidators)){ctrl.$setViewValue(value,event);}};if($sniffer.hasEvent('input')){element.on('input',listener);}else{var timeout;var deferListener=function(ev,input,origValue){if(!timeout){timeout=$browser.defer(function(){timeout=null;if(!input||input.value!==origValue){listener(ev);}});}};element.on('keydown',function(event){var key=event.keyCode;if(key===91||(15<key&&key<19)||(37<=key&&key<=40))return;deferListener(event,this,this.value);});if($sniffer.hasEvent('paste')){element.on('paste cut',deferListener);}}
element.on('change',listener);ctrl.$render=function(){var value=ctrl.$isEmpty(ctrl.$viewValue)?'':ctrl.$viewValue;if(element.val()!==value){element.val(value);}};}
function weekParser(isoWeek,existingDate){if(isDate(isoWeek)){return isoWeek;}
if(isString(isoWeek)){WEEK_REGEXP.lastIndex=0;var parts=WEEK_REGEXP.exec(isoWeek);if(parts){var year=+parts[1],week=+parts[2],hours=0,minutes=0,seconds=0,milliseconds=0,firstThurs=getFirstThursdayOfYear(year),addDays=(week-1)*7;if(existingDate){hours=existingDate.getHours();minutes=existingDate.getMinutes();seconds=existingDate.getSeconds();milliseconds=existingDate.getMilliseconds();}
return new Date(year,0,firstThurs.getDate()+addDays,hours,minutes,seconds,milliseconds);}}
return NaN;}
function createDateParser(regexp,mapping){return function(iso,date){var parts,map;if(isDate(iso)){return iso;}
if(isString(iso)){if(iso.charAt(0)=='"'&&iso.charAt(iso.length-1)=='"'){iso=iso.substring(1,iso.length-1);}
if(ISO_DATE_REGEXP.test(iso)){return new Date(iso);}
regexp.lastIndex=0;parts=regexp.exec(iso);if(parts){parts.shift();if(date){map={yyyy:date.getFullYear(),MM:date.getMonth()+1,dd:date.getDate(),HH:date.getHours(),mm:date.getMinutes(),ss:date.getSeconds(),sss:date.getMilliseconds()/1000};}else{map={yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0};}
forEach(parts,function(part,index){if(index<mapping.length){map[mapping[index]]=+part;}});return new Date(map.yyyy,map.MM-1,map.dd,map.HH,map.mm,map.ss||0,map.sss*1000||0);}}
return NaN;};}
function createDateInputType(type,regexp,parseDate,format){return function dynamicDateInputType(scope,element,attr,ctrl,$sniffer,$browser,$filter){badInputChecker(scope,element,attr,ctrl);baseInputType(scope,element,attr,ctrl,$sniffer,$browser);var timezone=ctrl&&ctrl.$options&&ctrl.$options.timezone;var previousDate;ctrl.$$parserName=type;ctrl.$parsers.push(function(value){if(ctrl.$isEmpty(value))return null;if(regexp.test(value)){var parsedDate=parseDate(value,previousDate);if(timezone){parsedDate=convertTimezoneToLocal(parsedDate,timezone);}
return parsedDate;}
return undefined;});ctrl.$formatters.push(function(value){if(value&&!isDate(value)){throw ngModelMinErr('datefmt','Expected `{0}` to be a date',value);}
if(isValidDate(value)){previousDate=value;if(previousDate&&timezone){previousDate=convertTimezoneToLocal(previousDate,timezone,true);}
return $filter('date')(value,format,timezone);}else{previousDate=null;return'';}});if(isDefined(attr.min)||attr.ngMin){var minVal;ctrl.$validators.min=function(value){return!isValidDate(value)||isUndefined(minVal)||parseDate(value)>=minVal;};attr.$observe('min',function(val){minVal=parseObservedDateValue(val);ctrl.$validate();});}
if(isDefined(attr.max)||attr.ngMax){var maxVal;ctrl.$validators.max=function(value){return!isValidDate(value)||isUndefined(maxVal)||parseDate(value)<=maxVal;};attr.$observe('max',function(val){maxVal=parseObservedDateValue(val);ctrl.$validate();});}
function isValidDate(value){return value&&!(value.getTime&&value.getTime()!==value.getTime());}
function parseObservedDateValue(val){return isDefined(val)&&!isDate(val)?parseDate(val)||undefined:val;}};}
function badInputChecker(scope,element,attr,ctrl){var node=element[0];var nativeValidation=ctrl.$$hasNativeValidators=isObject(node.validity);if(nativeValidation){ctrl.$parsers.push(function(value){var validity=element.prop(VALIDITY_STATE_PROPERTY)||{};return validity.badInput&&!validity.typeMismatch?undefined:value;});}}
function numberInputType(scope,element,attr,ctrl,$sniffer,$browser){badInputChecker(scope,element,attr,ctrl);baseInputType(scope,element,attr,ctrl,$sniffer,$browser);ctrl.$$parserName='number';ctrl.$parsers.push(function(value){if(ctrl.$isEmpty(value))return null;if(NUMBER_REGEXP.test(value))return parseFloat(value);return undefined;});ctrl.$formatters.push(function(value){if(!ctrl.$isEmpty(value)){if(!isNumber(value)){throw ngModelMinErr('numfmt','Expected `{0}` to be a number',value);}
value=value.toString();}
return value;});if(isDefined(attr.min)||attr.ngMin){var minVal;ctrl.$validators.min=function(value){return ctrl.$isEmpty(value)||isUndefined(minVal)||value>=minVal;};attr.$observe('min',function(val){if(isDefined(val)&&!isNumber(val)){val=parseFloat(val,10);}
minVal=isNumber(val)&&!isNaN(val)?val:undefined;ctrl.$validate();});}
if(isDefined(attr.max)||attr.ngMax){var maxVal;ctrl.$validators.max=function(value){return ctrl.$isEmpty(value)||isUndefined(maxVal)||value<=maxVal;};attr.$observe('max',function(val){if(isDefined(val)&&!isNumber(val)){val=parseFloat(val,10);}
maxVal=isNumber(val)&&!isNaN(val)?val:undefined;ctrl.$validate();});}}
function urlInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);ctrl.$$parserName='url';ctrl.$validators.url=function(modelValue,viewValue){var value=modelValue||viewValue;return ctrl.$isEmpty(value)||URL_REGEXP.test(value);};}
function emailInputType(scope,element,attr,ctrl,$sniffer,$browser){baseInputType(scope,element,attr,ctrl,$sniffer,$browser);stringBasedInputType(ctrl);ctrl.$$parserName='email';ctrl.$validators.email=function(modelValue,viewValue){var value=modelValue||viewValue;return ctrl.$isEmpty(value)||EMAIL_REGEXP.test(value);};}
function radioInputType(scope,element,attr,ctrl){if(isUndefined(attr.name)){element.attr('name',nextUid());}
var listener=function(ev){if(element[0].checked){ctrl.$setViewValue(attr.value,ev&&ev.type);}};element.on('click',listener);ctrl.$render=function(){var value=attr.value;element[0].checked=(value==ctrl.$viewValue);};attr.$observe('value',ctrl.$render);}
function parseConstantExpr($parse,context,name,expression,fallback){var parseFn;if(isDefined(expression)){parseFn=$parse(expression);if(!parseFn.constant){throw ngModelMinErr('constexpr','Expected constant expression for `{0}`, but saw '+'`{1}`.',name,expression);}
return parseFn(context);}
return fallback;}
function checkboxInputType(scope,element,attr,ctrl,$sniffer,$browser,$filter,$parse){var trueValue=parseConstantExpr($parse,scope,'ngTrueValue',attr.ngTrueValue,true);var falseValue=parseConstantExpr($parse,scope,'ngFalseValue',attr.ngFalseValue,false);var listener=function(ev){ctrl.$setViewValue(element[0].checked,ev&&ev.type);};element.on('click',listener);ctrl.$render=function(){element[0].checked=ctrl.$viewValue;};ctrl.$isEmpty=function(value){return value===false;};ctrl.$formatters.push(function(value){return equals(value,trueValue);});ctrl.$parsers.push(function(value){return value?trueValue:falseValue;});}
var inputDirective=['$browser','$sniffer','$filter','$parse',function($browser,$sniffer,$filter,$parse){return{restrict:'E',require:['?ngModel'],link:{pre:function(scope,element,attr,ctrls){if(ctrls[0]){(inputType[lowercase(attr.type)]||inputType.text)(scope,element,attr,ctrls[0],$sniffer,$browser,$filter,$parse);}}}};}];var CONSTANT_VALUE_REGEXP=/^(true|false|\d+)$/;var ngValueDirective=function(){return{restrict:'A',priority:100,compile:function(tpl,tplAttr){if(CONSTANT_VALUE_REGEXP.test(tplAttr.ngValue)){return function ngValueConstantLink(scope,elm,attr){attr.$set('value',scope.$eval(attr.ngValue));};}else{return function ngValueLink(scope,elm,attr){scope.$watch(attr.ngValue,function valueWatchAction(value){attr.$set('value',value);});};}}};};var ngBindDirective=['$compile',function($compile){return{restrict:'AC',compile:function ngBindCompile(templateElement){$compile.$$addBindingClass(templateElement);return function ngBindLink(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBind);element=element[0];scope.$watch(attr.ngBind,function ngBindWatchAction(value){element.textContent=isUndefined(value)?'':value;});};}};}];var ngBindTemplateDirective=['$interpolate','$compile',function($interpolate,$compile){return{compile:function ngBindTemplateCompile(templateElement){$compile.$$addBindingClass(templateElement);return function ngBindTemplateLink(scope,element,attr){var interpolateFn=$interpolate(element.attr(attr.$attr.ngBindTemplate));$compile.$$addBindingInfo(element,interpolateFn.expressions);element=element[0];attr.$observe('ngBindTemplate',function(value){element.textContent=isUndefined(value)?'':value;});};}};}];var ngBindHtmlDirective=['$sce','$parse','$compile',function($sce,$parse,$compile){return{restrict:'A',compile:function ngBindHtmlCompile(tElement,tAttrs){var ngBindHtmlGetter=$parse(tAttrs.ngBindHtml);var ngBindHtmlWatch=$parse(tAttrs.ngBindHtml,function getStringValue(value){return(value||'').toString();});$compile.$$addBindingClass(tElement);return function ngBindHtmlLink(scope,element,attr){$compile.$$addBindingInfo(element,attr.ngBindHtml);scope.$watch(ngBindHtmlWatch,function ngBindHtmlWatchAction(){element.html($sce.getTrustedHtml(ngBindHtmlGetter(scope))||'');});};}};}];var ngChangeDirective=valueFn({restrict:'A',require:'ngModel',link:function(scope,element,attr,ctrl){ctrl.$viewChangeListeners.push(function(){scope.$eval(attr.ngChange);});}});function classDirective(name,selector){name='ngClass'+name;return['$animate',function($animate){return{restrict:'AC',link:function(scope,element,attr){var oldVal;scope.$watch(attr[name],ngClassWatchAction,true);attr.$observe('class',function(value){ngClassWatchAction(scope.$eval(attr[name]));});if(name!=='ngClass'){scope.$watch('$index',function($index,old$index){var mod=$index&1;if(mod!==(old$index&1)){var classes=arrayClasses(scope.$eval(attr[name]));mod===selector?addClasses(classes):removeClasses(classes);}});}
function addClasses(classes){var newClasses=digestClassCounts(classes,1);attr.$addClass(newClasses);}
function removeClasses(classes){var newClasses=digestClassCounts(classes,-1);attr.$removeClass(newClasses);}
function digestClassCounts(classes,count){var classCounts=element.data('$classCounts')||createMap();var classesToUpdate=[];forEach(classes,function(className){if(count>0||classCounts[className]){classCounts[className]=(classCounts[className]||0)+count;if(classCounts[className]===+(count>0)){classesToUpdate.push(className);}}});element.data('$classCounts',classCounts);return classesToUpdate.join(' ');}
function updateClasses(oldClasses,newClasses){var toAdd=arrayDifference(newClasses,oldClasses);var toRemove=arrayDifference(oldClasses,newClasses);toAdd=digestClassCounts(toAdd,1);toRemove=digestClassCounts(toRemove,-1);if(toAdd&&toAdd.length){$animate.addClass(element,toAdd);}
if(toRemove&&toRemove.length){$animate.removeClass(element,toRemove);}}
function ngClassWatchAction(newVal){if(selector===true||scope.$index%2===selector){var newClasses=arrayClasses(newVal||[]);if(!oldVal){addClasses(newClasses);}else if(!equals(newVal,oldVal)){var oldClasses=arrayClasses(oldVal);updateClasses(oldClasses,newClasses);}}
oldVal=shallowCopy(newVal);}}};function arrayDifference(tokens1,tokens2){var values=[];outer:for(var i=0;i<tokens1.length;i++){var token=tokens1[i];for(var j=0;j<tokens2.length;j++){if(token==tokens2[j])continue outer;}
values.push(token);}
return values;}
function arrayClasses(classVal){var classes=[];if(isArray(classVal)){forEach(classVal,function(v){classes=classes.concat(arrayClasses(v));});return classes;}else if(isString(classVal)){return classVal.split(' ');}else if(isObject(classVal)){forEach(classVal,function(v,k){if(v){classes=classes.concat(k.split(' '));}});return classes;}
return classVal;}}];}
var ngClassDirective=classDirective('',true);var ngClassOddDirective=classDirective('Odd',0);var ngClassEvenDirective=classDirective('Even',1);var ngCloakDirective=ngDirective({compile:function(element,attr){attr.$set('ngCloak',undefined);element.removeClass('ng-cloak');}});var ngControllerDirective=[function(){return{restrict:'A',scope:true,controller:'@',priority:500};}];var ngEventDirectives={};var forceAsyncEvents={'blur':true,'focus':true};forEach('click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '),function(eventName){var directiveName=directiveNormalize('ng-'+eventName);ngEventDirectives[directiveName]=['$parse','$rootScope',function($parse,$rootScope){return{restrict:'A',compile:function($element,attr){var fn=$parse(attr[directiveName],null,true);return function ngEventHandler(scope,element){element.on(eventName,function(event){var callback=function(){fn(scope,{$event:event});};if(forceAsyncEvents[eventName]&&$rootScope.$$phase){scope.$evalAsync(callback);}else{scope.$apply(callback);}});};}};}];});var ngIfDirective=['$animate',function($animate){return{multiElement:true,transclude:'element',priority:600,terminal:true,restrict:'A',$$tlb:true,link:function($scope,$element,$attr,ctrl,$transclude){var block,childScope,previousElements;$scope.$watch($attr.ngIf,function ngIfWatchAction(value){if(value){if(!childScope){$transclude(function(clone,newScope){childScope=newScope;clone[clone.length++]=document.createComment(' end ngIf: '+$attr.ngIf+' ');block={clone:clone};$animate.enter(clone,$element.parent(),$element);});}}else{if(previousElements){previousElements.remove();previousElements=null;}
if(childScope){childScope.$destroy();childScope=null;}
if(block){previousElements=getBlockNodes(block.clone);$animate.leave(previousElements).then(function(){previousElements=null;});block=null;}}});}};}];var ngIncludeDirective=['$templateRequest','$anchorScroll','$animate',function($templateRequest,$anchorScroll,$animate){return{restrict:'ECA',priority:400,terminal:true,transclude:'element',controller:angular.noop,compile:function(element,attr){var srcExp=attr.ngInclude||attr.src,onloadExp=attr.onload||'',autoScrollExp=attr.autoscroll;return function(scope,$element,$attr,ctrl,$transclude){var changeCounter=0,currentScope,previousElement,currentElement;var cleanupLastIncludeContent=function(){if(previousElement){previousElement.remove();previousElement=null;}
if(currentScope){currentScope.$destroy();currentScope=null;}
if(currentElement){$animate.leave(currentElement).then(function(){previousElement=null;});previousElement=currentElement;currentElement=null;}};scope.$watch(srcExp,function ngIncludeWatchAction(src){var afterAnimation=function(){if(isDefined(autoScrollExp)&&(!autoScrollExp||scope.$eval(autoScrollExp))){$anchorScroll();}};var thisChangeId=++changeCounter;if(src){$templateRequest(src,true).then(function(response){if(thisChangeId!==changeCounter)return;var newScope=scope.$new();ctrl.template=response;var clone=$transclude(newScope,function(clone){cleanupLastIncludeContent();$animate.enter(clone,null,$element).then(afterAnimation);});currentScope=newScope;currentElement=clone;currentScope.$emit('$includeContentLoaded',src);scope.$eval(onloadExp);},function(){if(thisChangeId===changeCounter){cleanupLastIncludeContent();scope.$emit('$includeContentError',src);}});scope.$emit('$includeContentRequested',src);}else{cleanupLastIncludeContent();ctrl.template=null;}});};}};}];var ngIncludeFillContentDirective=['$compile',function($compile){return{restrict:'ECA',priority:-400,require:'ngInclude',link:function(scope,$element,$attr,ctrl){if(/SVG/.test($element[0].toString())){$element.empty();$compile(jqLiteBuildFragment(ctrl.template,document).childNodes)(scope,function namespaceAdaptedClone(clone){$element.append(clone);},{futureParentElement:$element});return;}
$element.html(ctrl.template);$compile($element.contents())(scope);}};}];var ngInitDirective=ngDirective({priority:450,compile:function(){return{pre:function(scope,element,attrs){scope.$eval(attrs.ngInit);}};}});var ngListDirective=function(){return{restrict:'A',priority:100,require:'ngModel',link:function(scope,element,attr,ctrl){var ngList=element.attr(attr.$attr.ngList)||', ';var trimValues=attr.ngTrim!=='false';var separator=trimValues?trim(ngList):ngList;var parse=function(viewValue){if(isUndefined(viewValue))return;var list=[];if(viewValue){forEach(viewValue.split(separator),function(value){if(value)list.push(trimValues?trim(value):value);});}
return list;};ctrl.$parsers.push(parse);ctrl.$formatters.push(function(value){if(isArray(value)){return value.join(ngList);}
return undefined;});ctrl.$isEmpty=function(value){return!value||!value.length;};}};};var VALID_CLASS='ng-valid',INVALID_CLASS='ng-invalid',PRISTINE_CLASS='ng-pristine',DIRTY_CLASS='ng-dirty',UNTOUCHED_CLASS='ng-untouched',TOUCHED_CLASS='ng-touched',PENDING_CLASS='ng-pending';var ngModelMinErr=minErr('ngModel');var NgModelController=['$scope','$exceptionHandler','$attrs','$element','$parse','$animate','$timeout','$rootScope','$q','$interpolate',function($scope,$exceptionHandler,$attr,$element,$parse,$animate,$timeout,$rootScope,$q,$interpolate){this.$viewValue=Number.NaN;this.$modelValue=Number.NaN;this.$$rawModelValue=undefined;this.$validators={};this.$asyncValidators={};this.$parsers=[];this.$formatters=[];this.$viewChangeListeners=[];this.$untouched=true;this.$touched=false;this.$pristine=true;this.$dirty=false;this.$valid=true;this.$invalid=false;this.$error={};this.$$success={};this.$pending=undefined;this.$name=$interpolate($attr.name||'',false)($scope);this.$$parentForm=nullFormCtrl;var parsedNgModel=$parse($attr.ngModel),parsedNgModelAssign=parsedNgModel.assign,ngModelGet=parsedNgModel,ngModelSet=parsedNgModelAssign,pendingDebounce=null,parserValid,ctrl=this;this.$$setOptions=function(options){ctrl.$options=options;if(options&&options.getterSetter){var invokeModelGetter=$parse($attr.ngModel+'()'),invokeModelSetter=$parse($attr.ngModel+'($$$p)');ngModelGet=function($scope){var modelValue=parsedNgModel($scope);if(isFunction(modelValue)){modelValue=invokeModelGetter($scope);}
return modelValue;};ngModelSet=function($scope,newValue){if(isFunction(parsedNgModel($scope))){invokeModelSetter($scope,{$$$p:ctrl.$modelValue});}else{parsedNgModelAssign($scope,ctrl.$modelValue);}};}else if(!parsedNgModel.assign){throw ngModelMinErr('nonassign',"Expression '{0}' is non-assignable. Element: {1}",$attr.ngModel,startingTag($element));}};this.$render=noop;this.$isEmpty=function(value){return isUndefined(value)||value===''||value===null||value!==value;};var currentValidationRunId=0;addSetValidityMethod({ctrl:this,$element:$element,set:function(object,property){object[property]=true;},unset:function(object,property){delete object[property];},$animate:$animate});this.$setPristine=function(){ctrl.$dirty=false;ctrl.$pristine=true;$animate.removeClass($element,DIRTY_CLASS);$animate.addClass($element,PRISTINE_CLASS);};this.$setDirty=function(){ctrl.$dirty=true;ctrl.$pristine=false;$animate.removeClass($element,PRISTINE_CLASS);$animate.addClass($element,DIRTY_CLASS);ctrl.$$parentForm.$setDirty();};this.$setUntouched=function(){ctrl.$touched=false;ctrl.$untouched=true;$animate.setClass($element,UNTOUCHED_CLASS,TOUCHED_CLASS);};this.$setTouched=function(){ctrl.$touched=true;ctrl.$untouched=false;$animate.setClass($element,TOUCHED_CLASS,UNTOUCHED_CLASS);};this.$rollbackViewValue=function(){$timeout.cancel(pendingDebounce);ctrl.$viewValue=ctrl.$$lastCommittedViewValue;ctrl.$render();};this.$validate=function(){if(isNumber(ctrl.$modelValue)&&isNaN(ctrl.$modelValue)){return;}
var viewValue=ctrl.$$lastCommittedViewValue;var modelValue=ctrl.$$rawModelValue;var prevValid=ctrl.$valid;var prevModelValue=ctrl.$modelValue;var allowInvalid=ctrl.$options&&ctrl.$options.allowInvalid;ctrl.$$runValidators(modelValue,viewValue,function(allValid){if(!allowInvalid&&prevValid!==allValid){ctrl.$modelValue=allValid?modelValue:undefined;if(ctrl.$modelValue!==prevModelValue){ctrl.$$writeModelToScope();}}});};this.$$runValidators=function(modelValue,viewValue,doneCallback){currentValidationRunId++;var localValidationRunId=currentValidationRunId;if(!processParseErrors()){validationDone(false);return;}
if(!processSyncValidators()){validationDone(false);return;}
processAsyncValidators();function processParseErrors(){var errorKey=ctrl.$$parserName||'parse';if(isUndefined(parserValid)){setValidity(errorKey,null);}else{if(!parserValid){forEach(ctrl.$validators,function(v,name){setValidity(name,null);});forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null);});}
setValidity(errorKey,parserValid);return parserValid;}
return true;}
function processSyncValidators(){var syncValidatorsValid=true;forEach(ctrl.$validators,function(validator,name){var result=validator(modelValue,viewValue);syncValidatorsValid=syncValidatorsValid&&result;setValidity(name,result);});if(!syncValidatorsValid){forEach(ctrl.$asyncValidators,function(v,name){setValidity(name,null);});return false;}
return true;}
function processAsyncValidators(){var validatorPromises=[];var allValid=true;forEach(ctrl.$asyncValidators,function(validator,name){var promise=validator(modelValue,viewValue);if(!isPromiseLike(promise)){throw ngModelMinErr("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",promise);}
setValidity(name,undefined);validatorPromises.push(promise.then(function(){setValidity(name,true);},function(error){allValid=false;setValidity(name,false);}));});if(!validatorPromises.length){validationDone(true);}else{$q.all(validatorPromises).then(function(){validationDone(allValid);},noop);}}
function setValidity(name,isValid){if(localValidationRunId===currentValidationRunId){ctrl.$setValidity(name,isValid);}}
function validationDone(allValid){if(localValidationRunId===currentValidationRunId){doneCallback(allValid);}}};this.$commitViewValue=function(){var viewValue=ctrl.$viewValue;$timeout.cancel(pendingDebounce);if(ctrl.$$lastCommittedViewValue===viewValue&&(viewValue!==''||!ctrl.$$hasNativeValidators)){return;}
ctrl.$$lastCommittedViewValue=viewValue;if(ctrl.$pristine){this.$setDirty();}
this.$$parseAndValidate();};this.$$parseAndValidate=function(){var viewValue=ctrl.$$lastCommittedViewValue;var modelValue=viewValue;parserValid=isUndefined(modelValue)?undefined:true;if(parserValid){for(var i=0;i<ctrl.$parsers.length;i++){modelValue=ctrl.$parsers[i](modelValue);if(isUndefined(modelValue)){parserValid=false;break;}}}
if(isNumber(ctrl.$modelValue)&&isNaN(ctrl.$modelValue)){ctrl.$modelValue=ngModelGet($scope);}
var prevModelValue=ctrl.$modelValue;var allowInvalid=ctrl.$options&&ctrl.$options.allowInvalid;ctrl.$$rawModelValue=modelValue;if(allowInvalid){ctrl.$modelValue=modelValue;writeToModelIfNeeded();}
ctrl.$$runValidators(modelValue,ctrl.$$lastCommittedViewValue,function(allValid){if(!allowInvalid){ctrl.$modelValue=allValid?modelValue:undefined;writeToModelIfNeeded();}});function writeToModelIfNeeded(){if(ctrl.$modelValue!==prevModelValue){ctrl.$$writeModelToScope();}}};this.$$writeModelToScope=function(){ngModelSet($scope,ctrl.$modelValue);forEach(ctrl.$viewChangeListeners,function(listener){try{listener();}catch(e){$exceptionHandler(e);}});};this.$setViewValue=function(value,trigger){ctrl.$viewValue=value;if(!ctrl.$options||ctrl.$options.updateOnDefault){ctrl.$$debounceViewValueCommit(trigger);}};this.$$debounceViewValueCommit=function(trigger){var debounceDelay=0,options=ctrl.$options,debounce;if(options&&isDefined(options.debounce)){debounce=options.debounce;if(isNumber(debounce)){debounceDelay=debounce;}else if(isNumber(debounce[trigger])){debounceDelay=debounce[trigger];}else if(isNumber(debounce['default'])){debounceDelay=debounce['default'];}}
$timeout.cancel(pendingDebounce);if(debounceDelay){pendingDebounce=$timeout(function(){ctrl.$commitViewValue();},debounceDelay);}else if($rootScope.$$phase){ctrl.$commitViewValue();}else{$scope.$apply(function(){ctrl.$commitViewValue();});}};$scope.$watch(function ngModelWatch(){var modelValue=ngModelGet($scope);if(modelValue!==ctrl.$modelValue&&(ctrl.$modelValue===ctrl.$modelValue||modelValue===modelValue)){ctrl.$modelValue=ctrl.$$rawModelValue=modelValue;parserValid=undefined;var formatters=ctrl.$formatters,idx=formatters.length;var viewValue=modelValue;while(idx--){viewValue=formatters[idx](viewValue);}
if(ctrl.$viewValue!==viewValue){ctrl.$viewValue=ctrl.$$lastCommittedViewValue=viewValue;ctrl.$render();ctrl.$$runValidators(modelValue,viewValue,noop);}}
return modelValue;});}];var ngModelDirective=['$rootScope',function($rootScope){return{restrict:'A',require:['ngModel','^?form','^?ngModelOptions'],controller:NgModelController,priority:1,compile:function ngModelCompile(element){element.addClass(PRISTINE_CLASS).addClass(UNTOUCHED_CLASS).addClass(VALID_CLASS);return{pre:function ngModelPreLink(scope,element,attr,ctrls){var modelCtrl=ctrls[0],formCtrl=ctrls[1]||modelCtrl.$$parentForm;modelCtrl.$$setOptions(ctrls[2]&&ctrls[2].$options);formCtrl.$addControl(modelCtrl);attr.$observe('name',function(newValue){if(modelCtrl.$name!==newValue){modelCtrl.$$parentForm.$$renameControl(modelCtrl,newValue);}});scope.$on('$destroy',function(){modelCtrl.$$parentForm.$removeControl(modelCtrl);});},post:function ngModelPostLink(scope,element,attr,ctrls){var modelCtrl=ctrls[0];if(modelCtrl.$options&&modelCtrl.$options.updateOn){element.on(modelCtrl.$options.updateOn,function(ev){modelCtrl.$$debounceViewValueCommit(ev&&ev.type);});}
element.on('blur',function(ev){if(modelCtrl.$touched)return;if($rootScope.$$phase){scope.$evalAsync(modelCtrl.$setTouched);}else{scope.$apply(modelCtrl.$setTouched);}});}};}};}];var DEFAULT_REGEXP=/(\s+|^)default(\s+|$)/;var ngModelOptionsDirective=function(){return{restrict:'A',controller:['$scope','$attrs',function($scope,$attrs){var that=this;this.$options=copy($scope.$eval($attrs.ngModelOptions));if(isDefined(this.$options.updateOn)){this.$options.updateOnDefault=false;this.$options.updateOn=trim(this.$options.updateOn.replace(DEFAULT_REGEXP,function(){that.$options.updateOnDefault=true;return' ';}));}else{this.$options.updateOnDefault=true;}}]};};function addSetValidityMethod(context){var ctrl=context.ctrl,$element=context.$element,classCache={},set=context.set,unset=context.unset,$animate=context.$animate;classCache[INVALID_CLASS]=!(classCache[VALID_CLASS]=$element.hasClass(VALID_CLASS));ctrl.$setValidity=setValidity;function setValidity(validationErrorKey,state,controller){if(isUndefined(state)){createAndSet('$pending',validationErrorKey,controller);}else{unsetAndCleanup('$pending',validationErrorKey,controller);}
if(!isBoolean(state)){unset(ctrl.$error,validationErrorKey,controller);unset(ctrl.$$success,validationErrorKey,controller);}else{if(state){unset(ctrl.$error,validationErrorKey,controller);set(ctrl.$$success,validationErrorKey,controller);}else{set(ctrl.$error,validationErrorKey,controller);unset(ctrl.$$success,validationErrorKey,controller);}}
if(ctrl.$pending){cachedToggleClass(PENDING_CLASS,true);ctrl.$valid=ctrl.$invalid=undefined;toggleValidationCss('',null);}else{cachedToggleClass(PENDING_CLASS,false);ctrl.$valid=isObjectEmpty(ctrl.$error);ctrl.$invalid=!ctrl.$valid;toggleValidationCss('',ctrl.$valid);}
var combinedState;if(ctrl.$pending&&ctrl.$pending[validationErrorKey]){combinedState=undefined;}else if(ctrl.$error[validationErrorKey]){combinedState=false;}else if(ctrl.$$success[validationErrorKey]){combinedState=true;}else{combinedState=null;}
toggleValidationCss(validationErrorKey,combinedState);ctrl.$$parentForm.$setValidity(validationErrorKey,combinedState,ctrl);}
function createAndSet(name,value,controller){if(!ctrl[name]){ctrl[name]={};}
set(ctrl[name],value,controller);}
function unsetAndCleanup(name,value,controller){if(ctrl[name]){unset(ctrl[name],value,controller);}
if(isObjectEmpty(ctrl[name])){ctrl[name]=undefined;}}
function cachedToggleClass(className,switchValue){if(switchValue&&!classCache[className]){$animate.addClass($element,className);classCache[className]=true;}else if(!switchValue&&classCache[className]){$animate.removeClass($element,className);classCache[className]=false;}}
function toggleValidationCss(validationErrorKey,isValid){validationErrorKey=validationErrorKey?'-'+snake_case(validationErrorKey,'-'):'';cachedToggleClass(VALID_CLASS+validationErrorKey,isValid===true);cachedToggleClass(INVALID_CLASS+validationErrorKey,isValid===false);}}
function isObjectEmpty(obj){if(obj){for(var prop in obj){if(obj.hasOwnProperty(prop)){return false;}}}
return true;}
var ngNonBindableDirective=ngDirective({terminal:true,priority:1000});var ngOptionsMinErr=minErr('ngOptions');var NG_OPTIONS_REGEXP=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/;var ngOptionsDirective=['$compile','$parse',function($compile,$parse){function parseOptionsExpression(optionsExp,selectElement,scope){var match=optionsExp.match(NG_OPTIONS_REGEXP);if(!(match)){throw ngOptionsMinErr('iexp',"Expected expression in form of "+"'_select_ (as _label_)? for (_key_,)?_value_ in _collection_'"+" but got '{0}'. Element: {1}",optionsExp,startingTag(selectElement));}
var valueName=match[5]||match[7];var keyName=match[6];var selectAs=/ as /.test(match[0])&&match[1];var trackBy=match[9];var valueFn=$parse(match[2]?match[1]:valueName);var selectAsFn=selectAs&&$parse(selectAs);var viewValueFn=selectAsFn||valueFn;var trackByFn=trackBy&&$parse(trackBy);var getTrackByValueFn=trackBy?function(value,locals){return trackByFn(scope,locals);}:function getHashOfValue(value){return hashKey(value);};var getTrackByValue=function(value,key){return getTrackByValueFn(value,getLocals(value,key));};var displayFn=$parse(match[2]||match[1]);var groupByFn=$parse(match[3]||'');var disableWhenFn=$parse(match[4]||'');var valuesFn=$parse(match[8]);var locals={};var getLocals=keyName?function(value,key){locals[keyName]=key;locals[valueName]=value;return locals;}:function(value){locals[valueName]=value;return locals;};function Option(selectValue,viewValue,label,group,disabled){this.selectValue=selectValue;this.viewValue=viewValue;this.label=label;this.group=group;this.disabled=disabled;}
function getOptionValuesKeys(optionValues){var optionValuesKeys;if(!keyName&&isArrayLike(optionValues)){optionValuesKeys=optionValues;}else{optionValuesKeys=[];for(var itemKey in optionValues){if(optionValues.hasOwnProperty(itemKey)&&itemKey.charAt(0)!=='$'){optionValuesKeys.push(itemKey);}}}
return optionValuesKeys;}
return{trackBy:trackBy,getTrackByValue:getTrackByValue,getWatchables:$parse(valuesFn,function(optionValues){var watchedArray=[];optionValues=optionValues||[];var optionValuesKeys=getOptionValuesKeys(optionValues);var optionValuesLength=optionValuesKeys.length;for(var index=0;index<optionValuesLength;index++){var key=(optionValues===optionValuesKeys)?index:optionValuesKeys[index];var value=optionValues[key];var locals=getLocals(optionValues[key],key);var selectValue=getTrackByValueFn(optionValues[key],locals);watchedArray.push(selectValue);if(match[2]||match[1]){var label=displayFn(scope,locals);watchedArray.push(label);}
if(match[4]){var disableWhen=disableWhenFn(scope,locals);watchedArray.push(disableWhen);}}
return watchedArray;}),getOptions:function(){var optionItems=[];var selectValueMap={};var optionValues=valuesFn(scope)||[];var optionValuesKeys=getOptionValuesKeys(optionValues);var optionValuesLength=optionValuesKeys.length;for(var index=0;index<optionValuesLength;index++){var key=(optionValues===optionValuesKeys)?index:optionValuesKeys[index];var value=optionValues[key];var locals=getLocals(value,key);var viewValue=viewValueFn(scope,locals);var selectValue=getTrackByValueFn(viewValue,locals);var label=displayFn(scope,locals);var group=groupByFn(scope,locals);var disabled=disableWhenFn(scope,locals);var optionItem=new Option(selectValue,viewValue,label,group,disabled);optionItems.push(optionItem);selectValueMap[selectValue]=optionItem;}
return{items:optionItems,selectValueMap:selectValueMap,getOptionFromViewValue:function(value){return selectValueMap[getTrackByValue(value)];},getViewValueFromOption:function(option){return trackBy?angular.copy(option.viewValue):option.viewValue;}};}};}
var optionTemplate=document.createElement('option'),optGroupTemplate=document.createElement('optgroup');return{restrict:'A',terminal:true,require:['select','?ngModel'],link:function(scope,selectElement,attr,ctrls){var ngModelCtrl=ctrls[1];if(!ngModelCtrl)return;var selectCtrl=ctrls[0];var multiple=attr.multiple;var emptyOption;for(var i=0,children=selectElement.children(),ii=children.length;i<ii;i++){if(children[i].value===''){emptyOption=children.eq(i);break;}}
var providedEmptyOption=!!emptyOption;var unknownOption=jqLite(optionTemplate.cloneNode(false));unknownOption.val('?');var options;var ngOptions=parseOptionsExpression(attr.ngOptions,selectElement,scope);var renderEmptyOption=function(){if(!providedEmptyOption){selectElement.prepend(emptyOption);}
selectElement.val('');emptyOption.prop('selected',true);emptyOption.attr('selected',true);};var removeEmptyOption=function(){if(!providedEmptyOption){emptyOption.remove();}};var renderUnknownOption=function(){selectElement.prepend(unknownOption);selectElement.val('?');unknownOption.prop('selected',true);unknownOption.attr('selected',true);};var removeUnknownOption=function(){unknownOption.remove();};if(!multiple){selectCtrl.writeValue=function writeNgOptionsValue(value){var option=options.getOptionFromViewValue(value);if(option&&!option.disabled){if(selectElement[0].value!==option.selectValue){removeUnknownOption();removeEmptyOption();selectElement[0].value=option.selectValue;option.element.selected=true;option.element.setAttribute('selected','selected');}}else{if(value===null||providedEmptyOption){removeUnknownOption();renderEmptyOption();}else{removeEmptyOption();renderUnknownOption();}}};selectCtrl.readValue=function readNgOptionsValue(){var selectedOption=options.selectValueMap[selectElement.val()];if(selectedOption&&!selectedOption.disabled){removeEmptyOption();removeUnknownOption();return options.getViewValueFromOption(selectedOption);}
return null;};if(ngOptions.trackBy){scope.$watch(function(){return ngOptions.getTrackByValue(ngModelCtrl.$viewValue);},function(){ngModelCtrl.$render();});}}else{ngModelCtrl.$isEmpty=function(value){return!value||value.length===0;};selectCtrl.writeValue=function writeNgOptionsMultiple(value){options.items.forEach(function(option){option.element.selected=false;});if(value){value.forEach(function(item){var option=options.getOptionFromViewValue(item);if(option&&!option.disabled)option.element.selected=true;});}};selectCtrl.readValue=function readNgOptionsMultiple(){var selectedValues=selectElement.val()||[],selections=[];forEach(selectedValues,function(value){var option=options.selectValueMap[value];if(option&&!option.disabled)selections.push(options.getViewValueFromOption(option));});return selections;};if(ngOptions.trackBy){scope.$watchCollection(function(){if(isArray(ngModelCtrl.$viewValue)){return ngModelCtrl.$viewValue.map(function(value){return ngOptions.getTrackByValue(value);});}},function(){ngModelCtrl.$render();});}}
if(providedEmptyOption){emptyOption.remove();$compile(emptyOption)(scope);emptyOption.removeClass('ng-scope');}else{emptyOption=jqLite(optionTemplate.cloneNode(false));}
updateOptions();scope.$watchCollection(ngOptions.getWatchables,updateOptions);function updateOptionElement(option,element){option.element=element;element.disabled=option.disabled;if(option.label!==element.label){element.label=option.label;element.textContent=option.label;}
if(option.value!==element.value)element.value=option.selectValue;}
function addOrReuseElement(parent,current,type,templateElement){var element;if(current&&lowercase(current.nodeName)===type){element=current;}else{element=templateElement.cloneNode(false);if(!current){parent.appendChild(element);}else{parent.insertBefore(element,current);}}
return element;}
function removeExcessElements(current){var next;while(current){next=current.nextSibling;jqLiteRemove(current);current=next;}}
function skipEmptyAndUnknownOptions(current){var emptyOption_=emptyOption&&emptyOption[0];var unknownOption_=unknownOption&&unknownOption[0];if(emptyOption_||unknownOption_){while(current&&(current===emptyOption_||current===unknownOption_||emptyOption_&&emptyOption_.nodeType===NODE_TYPE_COMMENT)){current=current.nextSibling;}}
return current;}
function updateOptions(){var previousValue=options&&selectCtrl.readValue();options=ngOptions.getOptions();var groupMap={};var currentElement=selectElement[0].firstChild;if(providedEmptyOption){selectElement.prepend(emptyOption);}
currentElement=skipEmptyAndUnknownOptions(currentElement);options.items.forEach(function updateOption(option){var group;var groupElement;var optionElement;if(option.group){group=groupMap[option.group];if(!group){groupElement=addOrReuseElement(selectElement[0],currentElement,'optgroup',optGroupTemplate);currentElement=groupElement.nextSibling;groupElement.label=option.group;group=groupMap[option.group]={groupElement:groupElement,currentOptionElement:groupElement.firstChild};}
optionElement=addOrReuseElement(group.groupElement,group.currentOptionElement,'option',optionTemplate);updateOptionElement(option,optionElement);group.currentOptionElement=optionElement.nextSibling;}else{optionElement=addOrReuseElement(selectElement[0],currentElement,'option',optionTemplate);updateOptionElement(option,optionElement);currentElement=optionElement.nextSibling;}});Object.keys(groupMap).forEach(function(key){removeExcessElements(groupMap[key].currentOptionElement);});removeExcessElements(currentElement);ngModelCtrl.$render();if(!ngModelCtrl.$isEmpty(previousValue)){var nextValue=selectCtrl.readValue();if(ngOptions.trackBy?!equals(previousValue,nextValue):previousValue!==nextValue){ngModelCtrl.$setViewValue(nextValue);ngModelCtrl.$render();}}}}};}];var ngPluralizeDirective=['$locale','$interpolate','$log',function($locale,$interpolate,$log){var BRACE=/{}/g,IS_WHEN=/^when(Minus)?(.+)$/;return{link:function(scope,element,attr){var numberExp=attr.count,whenExp=attr.$attr.when&&element.attr(attr.$attr.when),offset=attr.offset||0,whens=scope.$eval(whenExp)||{},whensExpFns={},startSymbol=$interpolate.startSymbol(),endSymbol=$interpolate.endSymbol(),braceReplacement=startSymbol+numberExp+'-'+offset+endSymbol,watchRemover=angular.noop,lastCount;forEach(attr,function(expression,attributeName){var tmpMatch=IS_WHEN.exec(attributeName);if(tmpMatch){var whenKey=(tmpMatch[1]?'-':'')+lowercase(tmpMatch[2]);whens[whenKey]=element.attr(attr.$attr[attributeName]);}});forEach(whens,function(expression,key){whensExpFns[key]=$interpolate(expression.replace(BRACE,braceReplacement));});scope.$watch(numberExp,function ngPluralizeWatchAction(newVal){var count=parseFloat(newVal);var countIsNaN=isNaN(count);if(!countIsNaN&&!(count in whens)){count=$locale.pluralCat(count-offset);}
if((count!==lastCount)&&!(countIsNaN&&isNumber(lastCount)&&isNaN(lastCount))){watchRemover();var whenExpFn=whensExpFns[count];if(isUndefined(whenExpFn)){if(newVal!=null){$log.debug("ngPluralize: no rule defined for '"+count+"' in "+whenExp);}
watchRemover=noop;updateElementText();}else{watchRemover=scope.$watch(whenExpFn,updateElementText);}
lastCount=count;}});function updateElementText(newText){element.text(newText||'');}}};}];var ngRepeatDirective=['$parse','$animate',function($parse,$animate){var NG_REMOVED='$$NG_REMOVED';var ngRepeatMinErr=minErr('ngRepeat');var updateScope=function(scope,index,valueIdentifier,value,keyIdentifier,key,arrayLength){scope[valueIdentifier]=value;if(keyIdentifier)scope[keyIdentifier]=key;scope.$index=index;scope.$first=(index===0);scope.$last=(index===(arrayLength-1));scope.$middle=!(scope.$first||scope.$last);scope.$odd=!(scope.$even=(index&1)===0);};var getBlockStart=function(block){return block.clone[0];};var getBlockEnd=function(block){return block.clone[block.clone.length-1];};return{restrict:'A',multiElement:true,transclude:'element',priority:1000,terminal:true,$$tlb:true,compile:function ngRepeatCompile($element,$attr){var expression=$attr.ngRepeat;var ngRepeatEndComment=document.createComment(' end ngRepeat: '+expression+' ');var match=expression.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!match){throw ngRepeatMinErr('iexp',"Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",expression);}
var lhs=match[1];var rhs=match[2];var aliasAs=match[3];var trackByExp=match[4];match=lhs.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/);if(!match){throw ngRepeatMinErr('iidexp',"'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",lhs);}
var valueIdentifier=match[3]||match[1];var keyIdentifier=match[2];if(aliasAs&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(aliasAs)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(aliasAs))){throw ngRepeatMinErr('badident',"alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",aliasAs);}
var trackByExpGetter,trackByIdExpFn,trackByIdArrayFn,trackByIdObjFn;var hashFnLocals={$id:hashKey};if(trackByExp){trackByExpGetter=$parse(trackByExp);}else{trackByIdArrayFn=function(key,value){return hashKey(value);};trackByIdObjFn=function(key){return key;};}
return function ngRepeatLink($scope,$element,$attr,ctrl,$transclude){if(trackByExpGetter){trackByIdExpFn=function(key,value,index){if(keyIdentifier)hashFnLocals[keyIdentifier]=key;hashFnLocals[valueIdentifier]=value;hashFnLocals.$index=index;return trackByExpGetter($scope,hashFnLocals);};}
var lastBlockMap=createMap();$scope.$watchCollection(rhs,function ngRepeatAction(collection){var index,length,previousNode=$element[0],nextNode,nextBlockMap=createMap(),collectionLength,key,value,trackById,trackByIdFn,collectionKeys,block,nextBlockOrder,elementsToRemove;if(aliasAs){$scope[aliasAs]=collection;}
if(isArrayLike(collection)){collectionKeys=collection;trackByIdFn=trackByIdExpFn||trackByIdArrayFn;}else{trackByIdFn=trackByIdExpFn||trackByIdObjFn;collectionKeys=[];for(var itemKey in collection){if(hasOwnProperty.call(collection,itemKey)&&itemKey.charAt(0)!=='$'){collectionKeys.push(itemKey);}}}
collectionLength=collectionKeys.length;nextBlockOrder=new Array(collectionLength);for(index=0;index<collectionLength;index++){key=(collection===collectionKeys)?index:collectionKeys[index];value=collection[key];trackById=trackByIdFn(key,value,index);if(lastBlockMap[trackById]){block=lastBlockMap[trackById];delete lastBlockMap[trackById];nextBlockMap[trackById]=block;nextBlockOrder[index]=block;}else if(nextBlockMap[trackById]){forEach(nextBlockOrder,function(block){if(block&&block.scope)lastBlockMap[block.id]=block;});throw ngRepeatMinErr('dupes',"Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",expression,trackById,value);}else{nextBlockOrder[index]={id:trackById,scope:undefined,clone:undefined};nextBlockMap[trackById]=true;}}
for(var blockKey in lastBlockMap){block=lastBlockMap[blockKey];elementsToRemove=getBlockNodes(block.clone);$animate.leave(elementsToRemove);if(elementsToRemove[0].parentNode){for(index=0,length=elementsToRemove.length;index<length;index++){elementsToRemove[index][NG_REMOVED]=true;}}
block.scope.$destroy();}
for(index=0;index<collectionLength;index++){key=(collection===collectionKeys)?index:collectionKeys[index];value=collection[key];block=nextBlockOrder[index];if(block.scope){nextNode=previousNode;do{nextNode=nextNode.nextSibling;}while(nextNode&&nextNode[NG_REMOVED]);if(getBlockStart(block)!=nextNode){$animate.move(getBlockNodes(block.clone),null,jqLite(previousNode));}
previousNode=getBlockEnd(block);updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength);}else{$transclude(function ngRepeatTransclude(clone,scope){block.scope=scope;var endNode=ngRepeatEndComment.cloneNode(false);clone[clone.length++]=endNode;$animate.enter(clone,null,jqLite(previousNode));previousNode=endNode;block.clone=clone;nextBlockMap[block.id]=block;updateScope(block.scope,index,valueIdentifier,value,keyIdentifier,key,collectionLength);});}}
lastBlockMap=nextBlockMap;});};}};}];var NG_HIDE_CLASS='ng-hide';var NG_HIDE_IN_PROGRESS_CLASS='ng-hide-animate';var ngShowDirective=['$animate',function($animate){return{restrict:'A',multiElement:true,link:function(scope,element,attr){scope.$watch(attr.ngShow,function ngShowWatchAction(value){$animate[value?'removeClass':'addClass'](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS});});}};}];var ngHideDirective=['$animate',function($animate){return{restrict:'A',multiElement:true,link:function(scope,element,attr){scope.$watch(attr.ngHide,function ngHideWatchAction(value){$animate[value?'addClass':'removeClass'](element,NG_HIDE_CLASS,{tempClasses:NG_HIDE_IN_PROGRESS_CLASS});});}};}];var ngStyleDirective=ngDirective(function(scope,element,attr){scope.$watch(attr.ngStyle,function ngStyleWatchAction(newStyles,oldStyles){if(oldStyles&&(newStyles!==oldStyles)){forEach(oldStyles,function(val,style){element.css(style,'');});}
if(newStyles)element.css(newStyles);},true);});var ngSwitchDirective=['$animate',function($animate){return{require:'ngSwitch',controller:['$scope',function ngSwitchController(){this.cases={};}],link:function(scope,element,attr,ngSwitchController){var watchExpr=attr.ngSwitch||attr.on,selectedTranscludes=[],selectedElements=[],previousLeaveAnimations=[],selectedScopes=[];var spliceFactory=function(array,index){return function(){array.splice(index,1);};};scope.$watch(watchExpr,function ngSwitchWatchAction(value){var i,ii;for(i=0,ii=previousLeaveAnimations.length;i<ii;++i){$animate.cancel(previousLeaveAnimations[i]);}
previousLeaveAnimations.length=0;for(i=0,ii=selectedScopes.length;i<ii;++i){var selected=getBlockNodes(selectedElements[i].clone);selectedScopes[i].$destroy();var promise=previousLeaveAnimations[i]=$animate.leave(selected);promise.then(spliceFactory(previousLeaveAnimations,i));}
selectedElements.length=0;selectedScopes.length=0;if((selectedTranscludes=ngSwitchController.cases['!'+value]||ngSwitchController.cases['?'])){forEach(selectedTranscludes,function(selectedTransclude){selectedTransclude.transclude(function(caseElement,selectedScope){selectedScopes.push(selectedScope);var anchor=selectedTransclude.element;caseElement[caseElement.length++]=document.createComment(' end ngSwitchWhen: ');var block={clone:caseElement};selectedElements.push(block);$animate.enter(caseElement,anchor.parent(),anchor);});});}});}};}];var ngSwitchWhenDirective=ngDirective({transclude:'element',priority:1200,require:'^ngSwitch',multiElement:true,link:function(scope,element,attrs,ctrl,$transclude){ctrl.cases['!'+attrs.ngSwitchWhen]=(ctrl.cases['!'+attrs.ngSwitchWhen]||[]);ctrl.cases['!'+attrs.ngSwitchWhen].push({transclude:$transclude,element:element});}});var ngSwitchDefaultDirective=ngDirective({transclude:'element',priority:1200,require:'^ngSwitch',multiElement:true,link:function(scope,element,attr,ctrl,$transclude){ctrl.cases['?']=(ctrl.cases['?']||[]);ctrl.cases['?'].push({transclude:$transclude,element:element});}});var ngTranscludeDirective=ngDirective({restrict:'EAC',link:function($scope,$element,$attrs,controller,$transclude){if(!$transclude){throw minErr('ngTransclude')('orphan','Illegal use of ngTransclude directive in the template! '+'No parent directive that requires a transclusion found. '+'Element: {0}',startingTag($element));}
$transclude(function(clone){$element.empty();$element.append(clone);});}});var scriptDirective=['$templateCache',function($templateCache){return{restrict:'E',terminal:true,compile:function(element,attr){if(attr.type=='text/ng-template'){var templateUrl=attr.id,text=element[0].text;$templateCache.put(templateUrl,text);}}};}];var noopNgModelController={$setViewValue:noop,$render:noop};var SelectController=['$element','$scope','$attrs',function($element,$scope,$attrs){var self=this,optionsMap=new HashMap();self.ngModelCtrl=noopNgModelController;self.unknownOption=jqLite(document.createElement('option'));self.renderUnknownOption=function(val){var unknownVal='? '+hashKey(val)+' ?';self.unknownOption.val(unknownVal);$element.prepend(self.unknownOption);$element.val(unknownVal);};$scope.$on('$destroy',function(){self.renderUnknownOption=noop;});self.removeUnknownOption=function(){if(self.unknownOption.parent())self.unknownOption.remove();};self.readValue=function readSingleValue(){self.removeUnknownOption();return $element.val();};self.writeValue=function writeSingleValue(value){if(self.hasOption(value)){self.removeUnknownOption();$element.val(value);if(value==='')self.emptyOption.prop('selected',true);}else{if(value==null&&self.emptyOption){self.removeUnknownOption();$element.val('');}else{self.renderUnknownOption(value);}}};self.addOption=function(value,element){assertNotHasOwnProperty(value,'"option value"');if(value===''){self.emptyOption=element;}
var count=optionsMap.get(value)||0;optionsMap.put(value,count+1);};self.removeOption=function(value){var count=optionsMap.get(value);if(count){if(count===1){optionsMap.remove(value);if(value===''){self.emptyOption=undefined;}}else{optionsMap.put(value,count-1);}}};self.hasOption=function(value){return!!optionsMap.get(value);};}];var selectDirective=function(){return{restrict:'E',require:['select','?ngModel'],controller:SelectController,link:function(scope,element,attr,ctrls){var ngModelCtrl=ctrls[1];if(!ngModelCtrl)return;var selectCtrl=ctrls[0];selectCtrl.ngModelCtrl=ngModelCtrl;ngModelCtrl.$render=function(){selectCtrl.writeValue(ngModelCtrl.$viewValue);};element.on('change',function(){scope.$apply(function(){ngModelCtrl.$setViewValue(selectCtrl.readValue());});});if(attr.multiple){selectCtrl.readValue=function readMultipleValue(){var array=[];forEach(element.find('option'),function(option){if(option.selected){array.push(option.value);}});return array;};selectCtrl.writeValue=function writeMultipleValue(value){var items=new HashMap(value);forEach(element.find('option'),function(option){option.selected=isDefined(items.get(option.value));});};var lastView,lastViewRef=NaN;scope.$watch(function selectMultipleWatch(){if(lastViewRef===ngModelCtrl.$viewValue&&!equals(lastView,ngModelCtrl.$viewValue)){lastView=shallowCopy(ngModelCtrl.$viewValue);ngModelCtrl.$render();}
lastViewRef=ngModelCtrl.$viewValue;});ngModelCtrl.$isEmpty=function(value){return!value||value.length===0;};}}};};var optionDirective=['$interpolate',function($interpolate){function chromeHack(optionElement){if(optionElement[0].hasAttribute('selected')){optionElement[0].selected=true;}}
return{restrict:'E',priority:100,compile:function(element,attr){if(isDefined(attr.value)){var valueInterpolated=$interpolate(attr.value,true);}else{var interpolateFn=$interpolate(element.text(),true);if(!interpolateFn){attr.$set('value',element.text());}}
return function(scope,element,attr){var selectCtrlName='$selectController',parent=element.parent(),selectCtrl=parent.data(selectCtrlName)||parent.parent().data(selectCtrlName);function addOption(optionValue){selectCtrl.addOption(optionValue,element);selectCtrl.ngModelCtrl.$render();chromeHack(element);}
if(selectCtrl&&selectCtrl.ngModelCtrl){if(valueInterpolated){var oldVal;attr.$observe('value',function valueAttributeObserveAction(newVal){if(isDefined(oldVal)){selectCtrl.removeOption(oldVal);}
oldVal=newVal;addOption(newVal);});}else if(interpolateFn){scope.$watch(interpolateFn,function interpolateWatchAction(newVal,oldVal){attr.$set('value',newVal);if(oldVal!==newVal){selectCtrl.removeOption(oldVal);}
addOption(newVal);});}else{addOption(attr.value);}
element.on('$destroy',function(){selectCtrl.removeOption(attr.value);selectCtrl.ngModelCtrl.$render();});}};}};}];var styleDirective=valueFn({restrict:'E',terminal:false});var requiredDirective=function(){return{restrict:'A',require:'?ngModel',link:function(scope,elm,attr,ctrl){if(!ctrl)return;attr.required=true;ctrl.$validators.required=function(modelValue,viewValue){return!attr.required||!ctrl.$isEmpty(viewValue);};attr.$observe('required',function(){ctrl.$validate();});}};};var patternDirective=function(){return{restrict:'A',require:'?ngModel',link:function(scope,elm,attr,ctrl){if(!ctrl)return;var regexp,patternExp=attr.ngPattern||attr.pattern;attr.$observe('pattern',function(regex){if(isString(regex)&&regex.length>0){regex=new RegExp('^'+regex+'$');}
if(regex&&!regex.test){throw minErr('ngPattern')('noregexp','Expected {0} to be a RegExp but was {1}. Element: {2}',patternExp,regex,startingTag(elm));}
regexp=regex||undefined;ctrl.$validate();});ctrl.$validators.pattern=function(modelValue,viewValue){return ctrl.$isEmpty(viewValue)||isUndefined(regexp)||regexp.test(viewValue);};}};};var maxlengthDirective=function(){return{restrict:'A',require:'?ngModel',link:function(scope,elm,attr,ctrl){if(!ctrl)return;var maxlength=-1;attr.$observe('maxlength',function(value){var intVal=toInt(value);maxlength=isNaN(intVal)?-1:intVal;ctrl.$validate();});ctrl.$validators.maxlength=function(modelValue,viewValue){return(maxlength<0)||ctrl.$isEmpty(viewValue)||(viewValue.length<=maxlength);};}};};var minlengthDirective=function(){return{restrict:'A',require:'?ngModel',link:function(scope,elm,attr,ctrl){if(!ctrl)return;var minlength=0;attr.$observe('minlength',function(value){minlength=toInt(value)||0;ctrl.$validate();});ctrl.$validators.minlength=function(modelValue,viewValue){return ctrl.$isEmpty(viewValue)||viewValue.length>=minlength;};}};};if(window.angular.bootstrap){console.log('WARNING: Tried to load angular more than once.');return;}
bindJQuery();publishExternalAPI(angular);angular.module("ngLocale",[],["$provide",function($provide){var PLURAL_CATEGORY={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};function getDecimals(n){n=n+'';var i=n.indexOf('.');return(i==-1)?0:n.length-i-1;}
function getVF(n,opt_precision){var v=opt_precision;if(undefined===v){v=Math.min(getDecimals(n),3);}
var base=Math.pow(10,v);var f=((n*base)|0)%base;return{v:v,f:f};}
$provide.value("$locale",{"DATETIME_FORMATS":{"AMPMS":["AM","PM"],"DAY":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"ERANAMES":["Before Christ","Anno Domini"],"ERAS":["BC","AD"],"FIRSTDAYOFWEEK":6,"MONTH":["January","February","March","April","May","June","July","August","September","October","November","December"],"SHORTDAY":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"SHORTMONTH":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"WEEKENDRANGE":[5,6],"fullDate":"EEEE, MMMM d, y","longDate":"MMMM d, y","medium":"MMM d, y h:mm:ss a","mediumDate":"MMM d, y","mediumTime":"h:mm:ss a","short":"M/d/yy h:mm a","shortDate":"M/d/yy","shortTime":"h:mm a"},"NUMBER_FORMATS":{"CURRENCY_SYM":"$","DECIMAL_SEP":".","GROUP_SEP":",","PATTERNS":[{"gSize":3,"lgSize":3,"maxFrac":3,"minFrac":0,"minInt":1,"negPre":"-","negSuf":"","posPre":"","posSuf":""},{"gSize":3,"lgSize":3,"maxFrac":2,"minFrac":2,"minInt":1,"negPre":"-\u00a4","negSuf":"","posPre":"\u00a4","posSuf":""}]},"id":"en-us","pluralCat":function(n,opt_precision){var i=n|0;var vf=getVF(n,opt_precision);if(i==1&&vf.v==0){return PLURAL_CATEGORY.ONE;}return PLURAL_CATEGORY.OTHER;}});}]);jqLite(document).ready(function(){angularInit(document,bootstrap);});})(window,document);!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>');(function(){'use strict';angular.module('wu.masonry',[]).controller('MasonryCtrl',['$scope','$element','$timeout',function controller($scope,$element,$timeout){var bricks={};var schedule=[];var destroyed=false;var self=this;var timeout=null;this.preserveOrder=false;this.loadImages=true;this.scheduleMasonryOnce=function scheduleMasonryOnce(){var args=arguments;var found=schedule.filter(function filterFn(item){return item[0]===args[0];}).length>0;if(!found){this.scheduleMasonry.apply(null,arguments);}};this.scheduleMasonry=function scheduleMasonry(){if(timeout){$timeout.cancel(timeout);}
schedule.push([].slice.call(arguments));timeout=$timeout(function runMasonry(){if(destroyed){return;}
schedule.forEach(function scheduleForEach(args){$element.masonry.apply($element,args);});schedule=[];},30);};function defaultLoaded($element){$element.addClass('loaded');}
this.appendBrick=function appendBrick(element,id){if(destroyed){return;}
function _append(){if(Object.keys(bricks).length===0){$element.masonry('resize');}
if(bricks[id]===undefined){bricks[id]=true;defaultLoaded(element);$element.masonry('appended',element,true);}}
function _layout(){self.scheduleMasonryOnce('layout');}
if(!self.loadImages){_append();_layout();}else if(self.preserveOrder){_append();element.imagesLoaded(_layout);}else{element.imagesLoaded(function imagesLoaded(){_append();_layout();});}};this.removeBrick=function removeBrick(id,element){if(destroyed){return;}
delete bricks[id];$element.masonry('remove',element);this.scheduleMasonryOnce('layout');};this.destroy=function destroy(){destroyed=true;if($element.data('masonry')){$element.masonry('destroy');}
$scope.$emit('masonry.destroyed');bricks={};};this.reload=function reload(){$element.masonry();$scope.$emit('masonry.reloaded');};}]).directive('masonry',function masonryDirective(){return{restrict:'AE',controller:'MasonryCtrl',link:{pre:function preLink(scope,element,attrs,ctrl){var attrOptions=scope.$eval(attrs.masonry||attrs.masonryOptions);var options=angular.extend({itemSelector:attrs.itemSelector||'.masonry-brick',columnWidth:parseInt(attrs.columnWidth,10)||attrs.columnWidth},attrOptions||{});element.masonry(options);scope.masonryContainer=element[0];var loadImages=scope.$eval(attrs.loadImages);ctrl.loadImages=loadImages!==false;var preserveOrder=scope.$eval(attrs.preserveOrder);ctrl.preserveOrder=preserveOrder!==false&&attrs.preserveOrder!==undefined;var reloadOnShow=scope.$eval(attrs.reloadOnShow);if(reloadOnShow!==false&&attrs.reloadOnShow!==undefined){scope.$watch(function(){return element.prop('offsetParent');},function(isVisible,wasVisible){if(isVisible&&!wasVisible){ctrl.reload();}});}
var reloadOnResize=scope.$eval(attrs.reloadOnResize);if(reloadOnResize!==false&&attrs.reloadOnResize!==undefined){scope.$watch('masonryContainer.offsetWidth',function(newWidth,oldWidth){if(newWidth!=oldWidth){ctrl.reload();}});}
scope.$emit('masonry.created',element);scope.$on('$destroy',ctrl.destroy);}}};}).directive('masonryBrick',function masonryBrickDirective(){return{restrict:'AC',require:'^masonry',scope:true,link:{pre:function preLink(scope,element,attrs,ctrl){var id=scope.$id,index;ctrl.appendBrick(element,id);element.on('$destroy',function(){ctrl.removeBrick(id,element);});scope.$on('masonry.reload',function(){ctrl.scheduleMasonryOnce('reloadItems');ctrl.scheduleMasonryOnce('layout');});scope.$watch('$index',function(){if(index!==undefined&&index!==scope.$index){ctrl.scheduleMasonryOnce('reloadItems');ctrl.scheduleMasonryOnce('layout');}
index=scope.$index;});}}};});}());(function(window,factory){'use strict';if(typeof define==='function'&&define.amd){define(['eventEmitter/EventEmitter','get-size/get-size','get-style-property/get-style-property','fizzy-ui-utils/utils'],function(EventEmitter,getSize,getStyleProperty,utils){return factory(window,EventEmitter,getSize,getStyleProperty,utils);});}else if(typeof exports==='object'){module.exports=factory(window,require('wolfy87-eventemitter'),require('get-size'),require('desandro-get-style-property'),require('fizzy-ui-utils'));}else{window.Outlayer={};window.Outlayer.Item=factory(window,window.EventEmitter,window.getSize,window.getStyleProperty,window.fizzyUIUtils);}}(window,function factory(window,EventEmitter,getSize,getStyleProperty,utils){'use strict';var getComputedStyle=window.getComputedStyle;var getStyle=getComputedStyle?function(elem){return getComputedStyle(elem,null);}:function(elem){return elem.currentStyle;};function isEmptyObj(obj){for(var prop in obj){return false;}
prop=null;return true;}
var transitionProperty=getStyleProperty('transition');var transformProperty=getStyleProperty('transform');var supportsCSS3=transitionProperty&&transformProperty;var is3d=!!getStyleProperty('perspective');var transitionEndEvent={WebkitTransition:'webkitTransitionEnd',MozTransition:'transitionend',OTransition:'otransitionend',transition:'transitionend'}[transitionProperty];var prefixableProperties=['transform','transition','transitionDuration','transitionProperty'];var vendorProperties=(function(){var cache={};for(var i=0,len=prefixableProperties.length;i<len;i++){var prop=prefixableProperties[i];var supportedProp=getStyleProperty(prop);if(supportedProp&&supportedProp!==prop){cache[prop]=supportedProp;}}
return cache;})();function Item(element,layout){if(!element){return;}
this.element=element;this.layout=layout;this.position={x:0,y:0};this._create();}
utils.extend(Item.prototype,EventEmitter.prototype);Item.prototype._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}};this.css({position:'absolute'});};Item.prototype.handleEvent=function(event){var method='on'+event.type;if(this[method]){this[method](event);}};Item.prototype.getSize=function(){this.size=getSize(this.element);};Item.prototype.css=function(style){var elemStyle=this.element.style;for(var prop in style){var supportedProp=vendorProperties[prop]||prop;elemStyle[supportedProp]=style[prop];}};Item.prototype.getPosition=function(){var style=getStyle(this.element);var layoutOptions=this.layout.options;var isOriginLeft=layoutOptions.isOriginLeft;var isOriginTop=layoutOptions.isOriginTop;var xValue=style[isOriginLeft?'left':'right'];var yValue=style[isOriginTop?'top':'bottom'];var layoutSize=this.layout.size;var x=xValue.indexOf('%')!=-1?(parseFloat(xValue)/100)*layoutSize.width:parseInt(xValue,10);var y=yValue.indexOf('%')!=-1?(parseFloat(yValue)/100)*layoutSize.height:parseInt(yValue,10);x=isNaN(x)?0:x;y=isNaN(y)?0:y;x-=isOriginLeft?layoutSize.paddingLeft:layoutSize.paddingRight;y-=isOriginTop?layoutSize.paddingTop:layoutSize.paddingBottom;this.position.x=x;this.position.y=y;};Item.prototype.layoutPosition=function(){var layoutSize=this.layout.size;var layoutOptions=this.layout.options;var style={};var xPadding=layoutOptions.isOriginLeft?'paddingLeft':'paddingRight';var xProperty=layoutOptions.isOriginLeft?'left':'right';var xResetProperty=layoutOptions.isOriginLeft?'right':'left';var x=this.position.x+layoutSize[xPadding];style[xProperty]=this.getXValue(x);style[xResetProperty]='';var yPadding=layoutOptions.isOriginTop?'paddingTop':'paddingBottom';var yProperty=layoutOptions.isOriginTop?'top':'bottom';var yResetProperty=layoutOptions.isOriginTop?'bottom':'top';var y=this.position.y+layoutSize[yPadding];style[yProperty]=this.getYValue(y);style[yResetProperty]='';this.css(style);this.emitEvent('layout',[this]);};Item.prototype.getXValue=function(x){var layoutOptions=this.layout.options;return layoutOptions.percentPosition&&!layoutOptions.isHorizontal?((x/this.layout.size.width)*100)+'%':x+'px';};Item.prototype.getYValue=function(y){var layoutOptions=this.layout.options;return layoutOptions.percentPosition&&layoutOptions.isHorizontal?((y/this.layout.size.height)*100)+'%':y+'px';};Item.prototype._transitionTo=function(x,y){this.getPosition();var curX=this.position.x;var curY=this.position.y;var compareX=parseInt(x,10);var compareY=parseInt(y,10);var didNotMove=compareX===this.position.x&&compareY===this.position.y;this.setPosition(x,y);if(didNotMove&&!this.isTransitioning){this.layoutPosition();return;}
var transX=x-curX;var transY=y-curY;var transitionStyle={};transitionStyle.transform=this.getTranslate(transX,transY);this.transition({to:transitionStyle,onTransitionEnd:{transform:this.layoutPosition},isCleaning:true});};Item.prototype.getTranslate=function(x,y){var layoutOptions=this.layout.options;x=layoutOptions.isOriginLeft?x:-x;y=layoutOptions.isOriginTop?y:-y;if(is3d){return'translate3d('+x+'px, '+y+'px, 0)';}
return'translate('+x+'px, '+y+'px)';};Item.prototype.goTo=function(x,y){this.setPosition(x,y);this.layoutPosition();};Item.prototype.moveTo=supportsCSS3?Item.prototype._transitionTo:Item.prototype.goTo;Item.prototype.setPosition=function(x,y){this.position.x=parseInt(x,10);this.position.y=parseInt(y,10);};Item.prototype._nonTransition=function(args){this.css(args.to);if(args.isCleaning){this._removeStyles(args.to);}
for(var prop in args.onTransitionEnd){args.onTransitionEnd[prop].call(this);}};Item.prototype._transition=function(args){if(!parseFloat(this.layout.options.transitionDuration)){this._nonTransition(args);return;}
var _transition=this._transn;for(var prop in args.onTransitionEnd){_transition.onEnd[prop]=args.onTransitionEnd[prop];}
for(prop in args.to){_transition.ingProperties[prop]=true;if(args.isCleaning){_transition.clean[prop]=true;}}
if(args.from){this.css(args.from);var h=this.element.offsetHeight;h=null;}
this.enableTransition(args.to);this.css(args.to);this.isTransitioning=true;};function toDashedAll(str){return str.replace(/([A-Z])/g,function($1){return'-'+$1.toLowerCase();});}
var transitionProps='opacity,'+
toDashedAll(vendorProperties.transform||'transform');Item.prototype.enableTransition=function(){if(this.isTransitioning){return;}
this.css({transitionProperty:transitionProps,transitionDuration:this.layout.options.transitionDuration});this.element.addEventListener(transitionEndEvent,this,false);};Item.prototype.transition=Item.prototype[transitionProperty?'_transition':'_nonTransition'];Item.prototype.onwebkitTransitionEnd=function(event){this.ontransitionend(event);};Item.prototype.onotransitionend=function(event){this.ontransitionend(event);};var dashedVendorProperties={'-webkit-transform':'transform','-moz-transform':'transform','-o-transform':'transform'};Item.prototype.ontransitionend=function(event){if(event.target!==this.element){return;}
var _transition=this._transn;var propertyName=dashedVendorProperties[event.propertyName]||event.propertyName;delete _transition.ingProperties[propertyName];if(isEmptyObj(_transition.ingProperties)){this.disableTransition();}
if(propertyName in _transition.clean){this.element.style[event.propertyName]='';delete _transition.clean[propertyName];}
if(propertyName in _transition.onEnd){var onTransitionEnd=_transition.onEnd[propertyName];onTransitionEnd.call(this);delete _transition.onEnd[propertyName];}
this.emitEvent('transitionEnd',[this]);};Item.prototype.disableTransition=function(){this.removeTransitionStyles();this.element.removeEventListener(transitionEndEvent,this,false);this.isTransitioning=false;};Item.prototype._removeStyles=function(style){var cleanStyle={};for(var prop in style){cleanStyle[prop]='';}
this.css(cleanStyle);};var cleanTransitionStyle={transitionProperty:'',transitionDuration:''};Item.prototype.removeTransitionStyles=function(){this.css(cleanTransitionStyle);};Item.prototype.removeElem=function(){this.element.parentNode.removeChild(this.element);this.css({display:''});this.emitEvent('remove',[this]);};Item.prototype.remove=function(){if(!transitionProperty||!parseFloat(this.layout.options.transitionDuration)){this.removeElem();return;}
var _this=this;this.once('transitionEnd',function(){_this.removeElem();});this.hide();};Item.prototype.reveal=function(){delete this.isHidden;this.css({display:''});var options=this.layout.options;var onTransitionEnd={};var transitionEndProperty=this.getHideRevealTransitionEndProperty('visibleStyle');onTransitionEnd[transitionEndProperty]=this.onRevealTransitionEnd;this.transition({from:options.hiddenStyle,to:options.visibleStyle,isCleaning:true,onTransitionEnd:onTransitionEnd});};Item.prototype.onRevealTransitionEnd=function(){if(!this.isHidden){this.emitEvent('reveal');}};Item.prototype.getHideRevealTransitionEndProperty=function(styleProperty){var optionStyle=this.layout.options[styleProperty];if(optionStyle.opacity){return'opacity';}
for(var prop in optionStyle){return prop;}};Item.prototype.hide=function(){this.isHidden=true;this.css({display:''});var options=this.layout.options;var onTransitionEnd={};var transitionEndProperty=this.getHideRevealTransitionEndProperty('hiddenStyle');onTransitionEnd[transitionEndProperty]=this.onHideTransitionEnd;this.transition({from:options.visibleStyle,to:options.hiddenStyle,isCleaning:true,onTransitionEnd:onTransitionEnd});};Item.prototype.onHideTransitionEnd=function(){if(this.isHidden){this.css({display:'none'});this.emitEvent('hide');}};Item.prototype.destroy=function(){this.css({position:'',left:'',right:'',top:'',bottom:'',transition:'',transform:''});};return Item;}));(function(window,factory){'use strict';if(typeof define=='function'&&define.amd){define(['eventie/eventie','eventEmitter/EventEmitter','get-size/get-size','fizzy-ui-utils/utils','./item'],function(eventie,EventEmitter,getSize,utils,Item){return factory(window,eventie,EventEmitter,getSize,utils,Item);});}else if(typeof exports=='object'){module.exports=factory(window,require('eventie'),require('wolfy87-eventemitter'),require('get-size'),require('fizzy-ui-utils'),require('./item'));}else{window.Outlayer=factory(window,window.eventie,window.EventEmitter,window.getSize,window.fizzyUIUtils,window.Outlayer.Item);}}(window,function factory(window,eventie,EventEmitter,getSize,utils,Item){'use strict';var console=window.console;var jQuery=window.jQuery;var noop=function(){};var GUID=0;var instances={};function Outlayer(element,options){var queryElement=utils.getQueryElement(element);if(!queryElement){if(console){console.error('Bad element for '+this.constructor.namespace+': '+(queryElement||element));}
return;}
this.element=queryElement;if(jQuery){this.$element=jQuery(this.element);}
this.options=utils.extend({},this.constructor.defaults);this.option(options);var id=++GUID;this.element.outlayerGUID=id;instances[id]=this;this._create();if(this.options.isInitLayout){this.layout();}}
Outlayer.namespace='outlayer';Outlayer.Item=Item;Outlayer.defaults={containerStyle:{position:'relative'},isInitLayout:true,isOriginLeft:true,isOriginTop:true,isResizeBound:true,isResizingContainer:true,transitionDuration:'0.4s',hiddenStyle:{opacity:0,transform:'scale(0.001)'},visibleStyle:{opacity:1,transform:'scale(1)'}};utils.extend(Outlayer.prototype,EventEmitter.prototype);Outlayer.prototype.option=function(opts){utils.extend(this.options,opts);};Outlayer.prototype._create=function(){this.reloadItems();this.stamps=[];this.stamp(this.options.stamp);utils.extend(this.element.style,this.options.containerStyle);if(this.options.isResizeBound){this.bindResize();}};Outlayer.prototype.reloadItems=function(){this.items=this._itemize(this.element.children);};Outlayer.prototype._itemize=function(elems){var itemElems=this._filterFindItemElements(elems);var Item=this.constructor.Item;var items=[];for(var i=0,len=itemElems.length;i<len;i++){var elem=itemElems[i];var item=new Item(elem,this);items.push(item);}
return items;};Outlayer.prototype._filterFindItemElements=function(elems){return utils.filterFindElements(elems,this.options.itemSelector);};Outlayer.prototype.getItemElements=function(){var elems=[];for(var i=0,len=this.items.length;i<len;i++){elems.push(this.items[i].element);}
return elems;};Outlayer.prototype.layout=function(){this._resetLayout();this._manageStamps();var isInstant=this.options.isLayoutInstant!==undefined?this.options.isLayoutInstant:!this._isLayoutInited;this.layoutItems(this.items,isInstant);this._isLayoutInited=true;};Outlayer.prototype._init=Outlayer.prototype.layout;Outlayer.prototype._resetLayout=function(){this.getSize();};Outlayer.prototype.getSize=function(){this.size=getSize(this.element);};Outlayer.prototype._getMeasurement=function(measurement,size){var option=this.options[measurement];var elem;if(!option){this[measurement]=0;}else{if(typeof option==='string'){elem=this.element.querySelector(option);}else if(utils.isElement(option)){elem=option;}
this[measurement]=elem?getSize(elem)[size]:option;}};Outlayer.prototype.layoutItems=function(items,isInstant){items=this._getItemsForLayout(items);this._layoutItems(items,isInstant);this._postLayout();};Outlayer.prototype._getItemsForLayout=function(items){var layoutItems=[];for(var i=0,len=items.length;i<len;i++){var item=items[i];if(!item.isIgnored){layoutItems.push(item);}}
return layoutItems;};Outlayer.prototype._layoutItems=function(items,isInstant){this._emitCompleteOnItems('layout',items);if(!items||!items.length){return;}
var queue=[];for(var i=0,len=items.length;i<len;i++){var item=items[i];var position=this._getItemLayoutPosition(item);position.item=item;position.isInstant=isInstant||item.isLayoutInstant;queue.push(position);}
this._processLayoutQueue(queue);};Outlayer.prototype._getItemLayoutPosition=function(){return{x:0,y:0};};Outlayer.prototype._processLayoutQueue=function(queue){for(var i=0,len=queue.length;i<len;i++){var obj=queue[i];this._positionItem(obj.item,obj.x,obj.y,obj.isInstant);}};Outlayer.prototype._positionItem=function(item,x,y,isInstant){if(isInstant){item.goTo(x,y);}else{item.moveTo(x,y);}};Outlayer.prototype._postLayout=function(){this.resizeContainer();};Outlayer.prototype.resizeContainer=function(){if(!this.options.isResizingContainer){return;}
var size=this._getContainerSize();if(size){this._setContainerMeasure(size.width,true);this._setContainerMeasure(size.height,false);}};Outlayer.prototype._getContainerSize=noop;Outlayer.prototype._setContainerMeasure=function(measure,isWidth){if(measure===undefined){return;}
var elemSize=this.size;if(elemSize.isBorderBox){measure+=isWidth?elemSize.paddingLeft+elemSize.paddingRight+
elemSize.borderLeftWidth+elemSize.borderRightWidth:elemSize.paddingBottom+elemSize.paddingTop+
elemSize.borderTopWidth+elemSize.borderBottomWidth;}
measure=Math.max(measure,0);this.element.style[isWidth?'width':'height']=measure+'px';};Outlayer.prototype._emitCompleteOnItems=function(eventName,items){var _this=this;function onComplete(){_this.dispatchEvent(eventName+'Complete',null,[items]);}
var count=items.length;if(!items||!count){onComplete();return;}
var doneCount=0;function tick(){doneCount++;if(doneCount===count){onComplete();}}
for(var i=0,len=items.length;i<len;i++){var item=items[i];item.once(eventName,tick);}};Outlayer.prototype.dispatchEvent=function(type,event,args){var emitArgs=event?[event].concat(args):args;this.emitEvent(type,emitArgs);if(jQuery){this.$element=this.$element||jQuery(this.element);if(event){var $event=jQuery.Event(event);$event.type=type;this.$element.trigger($event,args);}else{this.$element.trigger(type,args);}}};Outlayer.prototype.ignore=function(elem){var item=this.getItem(elem);if(item){item.isIgnored=true;}};Outlayer.prototype.unignore=function(elem){var item=this.getItem(elem);if(item){delete item.isIgnored;}};Outlayer.prototype.stamp=function(elems){elems=this._find(elems);if(!elems){return;}
this.stamps=this.stamps.concat(elems);for(var i=0,len=elems.length;i<len;i++){var elem=elems[i];this.ignore(elem);}};Outlayer.prototype.unstamp=function(elems){elems=this._find(elems);if(!elems){return;}
for(var i=0,len=elems.length;i<len;i++){var elem=elems[i];utils.removeFrom(this.stamps,elem);this.unignore(elem);}};Outlayer.prototype._find=function(elems){if(!elems){return;}
if(typeof elems==='string'){elems=this.element.querySelectorAll(elems);}
elems=utils.makeArray(elems);return elems;};Outlayer.prototype._manageStamps=function(){if(!this.stamps||!this.stamps.length){return;}
this._getBoundingRect();for(var i=0,len=this.stamps.length;i<len;i++){var stamp=this.stamps[i];this._manageStamp(stamp);}};Outlayer.prototype._getBoundingRect=function(){var boundingRect=this.element.getBoundingClientRect();var size=this.size;this._boundingRect={left:boundingRect.left+size.paddingLeft+size.borderLeftWidth,top:boundingRect.top+size.paddingTop+size.borderTopWidth,right:boundingRect.right-(size.paddingRight+size.borderRightWidth),bottom:boundingRect.bottom-(size.paddingBottom+size.borderBottomWidth)};};Outlayer.prototype._manageStamp=noop;Outlayer.prototype._getElementOffset=function(elem){var boundingRect=elem.getBoundingClientRect();var thisRect=this._boundingRect;var size=getSize(elem);var offset={left:boundingRect.left-thisRect.left-size.marginLeft,top:boundingRect.top-thisRect.top-size.marginTop,right:thisRect.right-boundingRect.right-size.marginRight,bottom:thisRect.bottom-boundingRect.bottom-size.marginBottom};return offset;};Outlayer.prototype.handleEvent=function(event){var method='on'+event.type;if(this[method]){this[method](event);}};Outlayer.prototype.bindResize=function(){if(this.isResizeBound){return;}
eventie.bind(window,'resize',this);this.isResizeBound=true;};Outlayer.prototype.unbindResize=function(){if(this.isResizeBound){eventie.unbind(window,'resize',this);}
this.isResizeBound=false;};Outlayer.prototype.onresize=function(){if(this.resizeTimeout){clearTimeout(this.resizeTimeout);}
var _this=this;function delayed(){_this.resize();delete _this.resizeTimeout;}
this.resizeTimeout=setTimeout(delayed,100);};Outlayer.prototype.resize=function(){if(!this.isResizeBound||!this.needsResizeLayout()){return;}
this.layout();};Outlayer.prototype.needsResizeLayout=function(){var size=getSize(this.element);var hasSizes=this.size&&size;return hasSizes&&size.innerWidth!==this.size.innerWidth;};Outlayer.prototype.addItems=function(elems){var items=this._itemize(elems);if(items.length){this.items=this.items.concat(items);}
return items;};Outlayer.prototype.appended=function(elems){var items=this.addItems(elems);if(!items.length){return;}
this.layoutItems(items,true);this.reveal(items);};Outlayer.prototype.prepended=function(elems){var items=this._itemize(elems);if(!items.length){return;}
var previousItems=this.items.slice(0);this.items=items.concat(previousItems);this._resetLayout();this._manageStamps();this.layoutItems(items,true);this.reveal(items);this.layoutItems(previousItems);};Outlayer.prototype.reveal=function(items){this._emitCompleteOnItems('reveal',items);var len=items&&items.length;for(var i=0;len&&i<len;i++){var item=items[i];item.reveal();}};Outlayer.prototype.hide=function(items){this._emitCompleteOnItems('hide',items);var len=items&&items.length;for(var i=0;len&&i<len;i++){var item=items[i];item.hide();}};Outlayer.prototype.revealItemElements=function(elems){var items=this.getItems(elems);this.reveal(items);};Outlayer.prototype.hideItemElements=function(elems){var items=this.getItems(elems);this.hide(items);};Outlayer.prototype.getItem=function(elem){for(var i=0,len=this.items.length;i<len;i++){var item=this.items[i];if(item.element===elem){return item;}}};Outlayer.prototype.getItems=function(elems){elems=utils.makeArray(elems);var items=[];for(var i=0,len=elems.length;i<len;i++){var elem=elems[i];var item=this.getItem(elem);if(item){items.push(item);}}
return items;};Outlayer.prototype.remove=function(elems){var removeItems=this.getItems(elems);this._emitCompleteOnItems('remove',removeItems);if(!removeItems||!removeItems.length){return;}
for(var i=0,len=removeItems.length;i<len;i++){var item=removeItems[i];item.remove();utils.removeFrom(this.items,item);}};Outlayer.prototype.destroy=function(){var style=this.element.style;style.height='';style.position='';style.width='';for(var i=0,len=this.items.length;i<len;i++){var item=this.items[i];item.destroy();}
this.unbindResize();var id=this.element.outlayerGUID;delete instances[id];delete this.element.outlayerGUID;if(jQuery){jQuery.removeData(this.element,this.constructor.namespace);}};Outlayer.data=function(elem){elem=utils.getQueryElement(elem);var id=elem&&elem.outlayerGUID;return id&&instances[id];};Outlayer.create=function(namespace,options){function Layout(){Outlayer.apply(this,arguments);}
if(Object.create){Layout.prototype=Object.create(Outlayer.prototype);}else{utils.extend(Layout.prototype,Outlayer.prototype);}
Layout.prototype.constructor=Layout;Layout.defaults=utils.extend({},Outlayer.defaults);utils.extend(Layout.defaults,options);Layout.prototype.settings={};Layout.namespace=namespace;Layout.data=Outlayer.data;Layout.Item=function LayoutItem(){Item.apply(this,arguments);};Layout.Item.prototype=new Item();utils.htmlInit(Layout,namespace);if(jQuery&&jQuery.bridget){jQuery.bridget(namespace,Layout);}
return Layout;};Outlayer.Item=Item;return Outlayer;}));var mod;mod=angular.module('infinite-scroll',[]);mod.value('THROTTLE_MILLISECONDS',null);mod.directive('infiniteScroll',['$rootScope','$window','$interval','THROTTLE_MILLISECONDS',function($rootScope,$window,$interval,THROTTLE_MILLISECONDS){return{scope:{infiniteScroll:'&',infiniteScrollContainer:'=',infiniteScrollDistance:'=',infiniteScrollDisabled:'=',infiniteScrollUseDocumentBottom:'=',infiniteScrollListenForEvent:'@'},link:function(scope,elem,attrs){var changeContainer,checkWhenEnabled,container,handleInfiniteScrollContainer,handleInfiniteScrollDisabled,handleInfiniteScrollDistance,handleInfiniteScrollUseDocumentBottom,handler,height,immediateCheck,offsetTop,pageYOffset,scrollDistance,scrollEnabled,throttle,unregisterEventListener,useDocumentBottom,windowElement;windowElement=angular.element($window);scrollDistance=null;scrollEnabled=null;checkWhenEnabled=null;container=null;immediateCheck=true;useDocumentBottom=false;unregisterEventListener=null;height=function(elem){elem=elem[0]||elem;if(isNaN(elem.offsetHeight)){return elem.document.documentElement.clientHeight;}else{return elem.offsetHeight;}};offsetTop=function(elem){if(!elem[0].getBoundingClientRect||elem.css('none')){return;}
return elem[0].getBoundingClientRect().top+pageYOffset(elem);};pageYOffset=function(elem){elem=elem[0]||elem;if(isNaN(window.pageYOffset)){return elem.document.documentElement.scrollTop;}else{return elem.ownerDocument.defaultView.pageYOffset;}};handler=function(){var containerBottom,containerTopOffset,elementBottom,remaining,shouldScroll;if(container===windowElement){containerBottom=height(container)+pageYOffset(container[0].document.documentElement);elementBottom=offsetTop(elem)+height(elem);}else{containerBottom=height(container);containerTopOffset=0;if(offsetTop(container)!==void 0){containerTopOffset=offsetTop(container);}
elementBottom=offsetTop(elem)-containerTopOffset+height(elem);}
if(useDocumentBottom){elementBottom=height((elem[0].ownerDocument||elem[0].document).documentElement);}
remaining=elementBottom-containerBottom;shouldScroll=remaining<=height(container)*scrollDistance+1;if(shouldScroll){checkWhenEnabled=true;if(scrollEnabled){if(scope.$$phase||$rootScope.$$phase){return scope.infiniteScroll();}else{return scope.$apply(scope.infiniteScroll);}}}else{return checkWhenEnabled=false;}};throttle=function(func,wait){var later,previous,timeout;timeout=null;previous=0;later=function(){var context;previous=new Date().getTime();$interval.cancel(timeout);timeout=null;func.call();return context=null;};return function(){var now,remaining;now=new Date().getTime();remaining=wait-(now-previous);if(remaining<=0){clearTimeout(timeout);$interval.cancel(timeout);timeout=null;previous=now;return func.call();}else{if(!timeout){return timeout=$interval(later,remaining,1);}}};};if(THROTTLE_MILLISECONDS!=null){handler=throttle(handler,THROTTLE_MILLISECONDS);}
scope.$on('$destroy',function(){container.unbind('scroll',handler);if(unregisterEventListener!=null){unregisterEventListener();return unregisterEventListener=null;}});handleInfiniteScrollDistance=function(v){return scrollDistance=parseFloat(v)||0;};scope.$watch('infiniteScrollDistance',handleInfiniteScrollDistance);handleInfiniteScrollDistance(scope.infiniteScrollDistance);handleInfiniteScrollDisabled=function(v){scrollEnabled=!v;if(scrollEnabled&&checkWhenEnabled){checkWhenEnabled=false;return handler();}};scope.$watch('infiniteScrollDisabled',handleInfiniteScrollDisabled);handleInfiniteScrollDisabled(scope.infiniteScrollDisabled);handleInfiniteScrollUseDocumentBottom=function(v){return useDocumentBottom=v;};scope.$watch('infiniteScrollUseDocumentBottom',handleInfiniteScrollUseDocumentBottom);handleInfiniteScrollUseDocumentBottom(scope.infiniteScrollUseDocumentBottom);changeContainer=function(newContainer){if(container!=null){container.unbind('scroll',handler);}
container=newContainer;if(newContainer!=null){return container.bind('scroll',handler);}};changeContainer(windowElement);if(scope.infiniteScrollListenForEvent){unregisterEventListener=$rootScope.$on(scope.infiniteScrollListenForEvent,handler);}
handleInfiniteScrollContainer=function(newContainer){if((newContainer==null)||newContainer.length===0){return;}
if(newContainer instanceof HTMLElement){newContainer=angular.element(newContainer);}else if(typeof newContainer.append==='function'){newContainer=angular.element(newContainer[newContainer.length-1]);}else if(typeof newContainer==='string'){newContainer=angular.element(document.querySelector(newContainer));}
if(newContainer!=null){return changeContainer(newContainer);}else{throw new Exception("invalid infinite-scroll-container attribute.");}};scope.$watch('infiniteScrollContainer',handleInfiniteScrollContainer);handleInfiniteScrollContainer(scope.infiniteScrollContainer||[]);if(attrs.infiniteScrollParent!=null){changeContainer(angular.element(elem.parent()));}
if(attrs.infiniteScrollImmediateCheck!=null){immediateCheck=scope.$eval(attrs.infiniteScrollImmediateCheck);}
return $interval((function(){if(immediateCheck){return handler();}}),0,1);}};}]);if(typeof module!=="undefined"&&typeof exports!=="undefined"&&module.exports===exports){module.exports='ui.router';}
(function(window,angular,undefined){'use strict';var isDefined=angular.isDefined,isFunction=angular.isFunction,isString=angular.isString,isObject=angular.isObject,isArray=angular.isArray,forEach=angular.forEach,extend=angular.extend,copy=angular.copy;function inherit(parent,extra){return extend(new(extend(function(){},{prototype:parent}))(),extra);}
function merge(dst){forEach(arguments,function(obj){if(obj!==dst){forEach(obj,function(value,key){if(!dst.hasOwnProperty(key))dst[key]=value;});}});return dst;}
function ancestors(first,second){var path=[];for(var n in first.path){if(first.path[n]!==second.path[n])break;path.push(first.path[n]);}
return path;}
function objectKeys(object){if(Object.keys){return Object.keys(object);}
var result=[];forEach(object,function(val,key){result.push(key);});return result;}
function indexOf(array,value){if(Array.prototype.indexOf){return array.indexOf(value,Number(arguments[2])||0);}
var len=array.length>>>0,from=Number(arguments[2])||0;from=(from<0)?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++){if(from in array&&array[from]===value)return from;}
return-1;}
function inheritParams(currentParams,newParams,$current,$to){var parents=ancestors($current,$to),parentParams,inherited={},inheritList=[];for(var i in parents){if(!parents[i].params)continue;parentParams=objectKeys(parents[i].params);if(!parentParams.length)continue;for(var j in parentParams){if(indexOf(inheritList,parentParams[j])>=0)continue;inheritList.push(parentParams[j]);inherited[parentParams[j]]=currentParams[parentParams[j]];}}
return extend({},inherited,newParams);}
function equalForKeys(a,b,keys){if(!keys){keys=[];for(var n in a)keys.push(n);}
for(var i=0;i<keys.length;i++){var k=keys[i];if(a[k]!=b[k])return false;}
return true;}
function filterByKeys(keys,values){var filtered={};forEach(keys,function(name){filtered[name]=values[name];});return filtered;}
function indexBy(array,propName){var result={};forEach(array,function(item){result[item[propName]]=item;});return result;}
function pick(obj){var copy={};var keys=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));forEach(keys,function(key){if(key in obj)copy[key]=obj[key];});return copy;}
function omit(obj){var copy={};var keys=Array.prototype.concat.apply(Array.prototype,Array.prototype.slice.call(arguments,1));for(var key in obj){if(indexOf(keys,key)==-1)copy[key]=obj[key];}
return copy;}
function pluck(collection,key){var result=isArray(collection)?[]:{};forEach(collection,function(val,i){result[i]=isFunction(key)?key(val):val[key];});return result;}
function filter(collection,callback){var array=isArray(collection);var result=array?[]:{};forEach(collection,function(val,i){if(callback(val,i)){result[array?result.length:i]=val;}});return result;}
function map(collection,callback){var result=isArray(collection)?[]:{};forEach(collection,function(val,i){result[i]=callback(val,i);});return result;}
angular.module('ui.router.util',['ng']);angular.module('ui.router.router',['ui.router.util']);angular.module('ui.router.state',['ui.router.router','ui.router.util']);angular.module('ui.router',['ui.router.state']);angular.module('ui.router.compat',['ui.router']);$Resolve.$inject=['$q','$injector'];function $Resolve($q,$injector){var VISIT_IN_PROGRESS=1,VISIT_DONE=2,NOTHING={},NO_DEPENDENCIES=[],NO_LOCALS=NOTHING,NO_PARENT=extend($q.when(NOTHING),{$$promises:NOTHING,$$values:NOTHING});this.study=function(invocables){if(!isObject(invocables))throw new Error("'invocables' must be an object");var invocableKeys=objectKeys(invocables||{});var plan=[],cycle=[],visited={};function visit(value,key){if(visited[key]===VISIT_DONE)return;cycle.push(key);if(visited[key]===VISIT_IN_PROGRESS){cycle.splice(0,indexOf(cycle,key));throw new Error("Cyclic dependency: "+cycle.join(" -> "));}
visited[key]=VISIT_IN_PROGRESS;if(isString(value)){plan.push(key,[function(){return $injector.get(value);}],NO_DEPENDENCIES);}else{var params=$injector.annotate(value);forEach(params,function(param){if(param!==key&&invocables.hasOwnProperty(param))visit(invocables[param],param);});plan.push(key,value,params);}
cycle.pop();visited[key]=VISIT_DONE;}
forEach(invocables,visit);invocables=cycle=visited=null;function isResolve(value){return isObject(value)&&value.then&&value.$$promises;}
return function(locals,parent,self){if(isResolve(locals)&&self===undefined){self=parent;parent=locals;locals=null;}
if(!locals)locals=NO_LOCALS;else if(!isObject(locals)){throw new Error("'locals' must be an object");}
if(!parent)parent=NO_PARENT;else if(!isResolve(parent)){throw new Error("'parent' must be a promise returned by $resolve.resolve()");}
var resolution=$q.defer(),result=resolution.promise,promises=result.$$promises={},values=extend({},locals),wait=1+plan.length/3,merged=false;function done(){if(!--wait){if(!merged)merge(values,parent.$$values);result.$$values=values;result.$$promises=result.$$promises||true;delete result.$$inheritedValues;resolution.resolve(values);}}
function fail(reason){result.$$failure=reason;resolution.reject(reason);}
if(isDefined(parent.$$failure)){fail(parent.$$failure);return result;}
if(parent.$$inheritedValues){merge(values,omit(parent.$$inheritedValues,invocableKeys));}
extend(promises,parent.$$promises);if(parent.$$values){merged=merge(values,omit(parent.$$values,invocableKeys));result.$$inheritedValues=omit(parent.$$values,invocableKeys);done();}else{if(parent.$$inheritedValues){result.$$inheritedValues=omit(parent.$$inheritedValues,invocableKeys);}
parent.then(done,fail);}
for(var i=0,ii=plan.length;i<ii;i+=3){if(locals.hasOwnProperty(plan[i]))done();else invoke(plan[i],plan[i+1],plan[i+2]);}
function invoke(key,invocable,params){var invocation=$q.defer(),waitParams=0;function onfailure(reason){invocation.reject(reason);fail(reason);}
forEach(params,function(dep){if(promises.hasOwnProperty(dep)&&!locals.hasOwnProperty(dep)){waitParams++;promises[dep].then(function(result){values[dep]=result;if(!(--waitParams))proceed();},onfailure);}});if(!waitParams)proceed();function proceed(){if(isDefined(result.$$failure))return;try{invocation.resolve($injector.invoke(invocable,self,values));invocation.promise.then(function(result){values[key]=result;done();},onfailure);}catch(e){onfailure(e);}}
promises[key]=invocation.promise;}
return result;};};this.resolve=function(invocables,locals,parent,self){return this.study(invocables)(locals,parent,self);};}
angular.module('ui.router.util').service('$resolve',$Resolve);$TemplateFactory.$inject=['$http','$templateCache','$injector'];function $TemplateFactory($http,$templateCache,$injector){this.fromConfig=function(config,params,locals){return(isDefined(config.template)?this.fromString(config.template,params):isDefined(config.templateUrl)?this.fromUrl(config.templateUrl,params):isDefined(config.templateProvider)?this.fromProvider(config.templateProvider,params,locals):null);};this.fromString=function(template,params){return isFunction(template)?template(params):template;};this.fromUrl=function(url,params){if(isFunction(url))url=url(params);if(url==null)return null;else return $http.get(url,{cache:$templateCache,headers:{Accept:'text/html'}}).then(function(response){return response.data;});};this.fromProvider=function(provider,params,locals){return $injector.invoke(provider,null,locals||{params:params});};}
angular.module('ui.router.util').service('$templateFactory',$TemplateFactory);var $$UMFP;function UrlMatcher(pattern,config,parentMatcher){config=extend({params:{}},isObject(config)?config:{});var placeholder=/([:*])([\w\[\]]+)|\{([\w\[\]]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,searchPlaceholder=/([:]?)([\w\[\]-]+)|\{([\w\[\]-]+)(?:\:((?:[^{}\\]+|\\.|\{(?:[^{}\\]+|\\.)*\})+))?\}/g,compiled='^',last=0,m,segments=this.segments=[],parentParams=parentMatcher?parentMatcher.params:{},params=this.params=parentMatcher?parentMatcher.params.$$new():new $$UMFP.ParamSet(),paramNames=[];function addParameter(id,type,config,location){paramNames.push(id);if(parentParams[id])return parentParams[id];if(!/^\w+(-+\w+)*(?:\[\])?$/.test(id))throw new Error("Invalid parameter name '"+id+"' in pattern '"+pattern+"'");if(params[id])throw new Error("Duplicate parameter name '"+id+"' in pattern '"+pattern+"'");params[id]=new $$UMFP.Param(id,type,config,location);return params[id];}
function quoteRegExp(string,pattern,squash,optional){var surroundPattern=['',''],result=string.replace(/[\\\[\]\^$*+?.()|{}]/g,"\\$&");if(!pattern)return result;switch(squash){case false:surroundPattern=['(',')'+(optional?"?":"")];break;case true:surroundPattern=['?(',')?'];break;default:surroundPattern=['('+squash+"|",')?'];break;}
return result+surroundPattern[0]+pattern+surroundPattern[1];}
this.source=pattern;function matchDetails(m,isSearch){var id,regexp,segment,type,cfg,arrayMode;id=m[2]||m[3];cfg=config.params[id];segment=pattern.substring(last,m.index);regexp=isSearch?m[4]:m[4]||(m[1]=='*'?'.*':null);type=$$UMFP.type(regexp||"string")||inherit($$UMFP.type("string"),{pattern:new RegExp(regexp,config.caseInsensitive?'i':undefined)});return{id:id,regexp:regexp,segment:segment,type:type,cfg:cfg};}
var p,param,segment;while((m=placeholder.exec(pattern))){p=matchDetails(m,false);if(p.segment.indexOf('?')>=0)break;param=addParameter(p.id,p.type,p.cfg,"path");compiled+=quoteRegExp(p.segment,param.type.pattern.source,param.squash,param.isOptional);segments.push(p.segment);last=placeholder.lastIndex;}
segment=pattern.substring(last);var i=segment.indexOf('?');if(i>=0){var search=this.sourceSearch=segment.substring(i);segment=segment.substring(0,i);this.sourcePath=pattern.substring(0,last+i);if(search.length>0){last=0;while((m=searchPlaceholder.exec(search))){p=matchDetails(m,true);param=addParameter(p.id,p.type,p.cfg,"search");last=placeholder.lastIndex;}}}else{this.sourcePath=pattern;this.sourceSearch='';}
compiled+=quoteRegExp(segment)+(config.strict===false?'\/?':'')+'$';segments.push(segment);this.regexp=new RegExp(compiled,config.caseInsensitive?'i':undefined);this.prefix=segments[0];this.$$paramNames=paramNames;}
UrlMatcher.prototype.concat=function(pattern,config){var defaultConfig={caseInsensitive:$$UMFP.caseInsensitive(),strict:$$UMFP.strictMode(),squash:$$UMFP.defaultSquashPolicy()};return new UrlMatcher(this.sourcePath+pattern+this.sourceSearch,extend(defaultConfig,config),this);};UrlMatcher.prototype.toString=function(){return this.source;};UrlMatcher.prototype.exec=function(path,searchParams){var m=this.regexp.exec(path);if(!m)return null;searchParams=searchParams||{};var paramNames=this.parameters(),nTotal=paramNames.length,nPath=this.segments.length-1,values={},i,j,cfg,paramName;if(nPath!==m.length-1)throw new Error("Unbalanced capture group in route '"+this.source+"'");function decodePathArray(string){function reverseString(str){return str.split("").reverse().join("");}
function unquoteDashes(str){return str.replace(/\\-/g,"-");}
var split=reverseString(string).split(/-(?!\\)/);var allReversed=map(split,reverseString);return map(allReversed,unquoteDashes).reverse();}
for(i=0;i<nPath;i++){paramName=paramNames[i];var param=this.params[paramName];var paramVal=m[i+1];for(j=0;j<param.replace;j++){if(param.replace[j].from===paramVal)paramVal=param.replace[j].to;}
if(paramVal&&param.array===true)paramVal=decodePathArray(paramVal);values[paramName]=param.value(paramVal);}
for(;i<nTotal;i++){paramName=paramNames[i];values[paramName]=this.params[paramName].value(searchParams[paramName]);}
return values;};UrlMatcher.prototype.parameters=function(param){if(!isDefined(param))return this.$$paramNames;return this.params[param]||null;};UrlMatcher.prototype.validates=function(params){return this.params.$$validates(params);};UrlMatcher.prototype.format=function(values){values=values||{};var segments=this.segments,params=this.parameters(),paramset=this.params;if(!this.validates(values))return null;var i,search=false,nPath=segments.length-1,nTotal=params.length,result=segments[0];function encodeDashes(str){return encodeURIComponent(str).replace(/-/g,function(c){return'%5C%'+c.charCodeAt(0).toString(16).toUpperCase();});}
for(i=0;i<nTotal;i++){var isPathParam=i<nPath;var name=params[i],param=paramset[name],value=param.value(values[name]);var isDefaultValue=param.isOptional&&param.type.equals(param.value(),value);var squash=isDefaultValue?param.squash:false;var encoded=param.type.encode(value);if(isPathParam){var nextSegment=segments[i+1];if(squash===false){if(encoded!=null){if(isArray(encoded)){result+=map(encoded,encodeDashes).join("-");}else{result+=encodeURIComponent(encoded);}}
result+=nextSegment;}else if(squash===true){var capture=result.match(/\/$/)?/\/?(.*)/:/(.*)/;result+=nextSegment.match(capture)[1];}else if(isString(squash)){result+=squash+nextSegment;}}else{if(encoded==null||(isDefaultValue&&squash!==false))continue;if(!isArray(encoded))encoded=[encoded];encoded=map(encoded,encodeURIComponent).join('&'+name+'=');result+=(search?'&':'?')+(name+'='+encoded);search=true;}}
return result;};function Type(config){extend(this,config);}
Type.prototype.is=function(val,key){return true;};Type.prototype.encode=function(val,key){return val;};Type.prototype.decode=function(val,key){return val;};Type.prototype.equals=function(a,b){return a==b;};Type.prototype.$subPattern=function(){var sub=this.pattern.toString();return sub.substr(1,sub.length-2);};Type.prototype.pattern=/.*/;Type.prototype.toString=function(){return"{Type:"+this.name+"}";};Type.prototype.$normalize=function(val){return this.is(val)?val:this.decode(val);};Type.prototype.$asArray=function(mode,isSearch){if(!mode)return this;if(mode==="auto"&&!isSearch)throw new Error("'auto' array mode is for query parameters only");function ArrayType(type,mode){function bindTo(type,callbackName){return function(){return type[callbackName].apply(type,arguments);};}
function arrayWrap(val){return isArray(val)?val:(isDefined(val)?[val]:[]);}
function arrayUnwrap(val){switch(val.length){case 0:return undefined;case 1:return mode==="auto"?val[0]:val;default:return val;}}
function falsey(val){return!val;}
function arrayHandler(callback,allTruthyMode){return function handleArray(val){val=arrayWrap(val);var result=map(val,callback);if(allTruthyMode===true)
return filter(result,falsey).length===0;return arrayUnwrap(result);};}
function arrayEqualsHandler(callback){return function handleArray(val1,val2){var left=arrayWrap(val1),right=arrayWrap(val2);if(left.length!==right.length)return false;for(var i=0;i<left.length;i++){if(!callback(left[i],right[i]))return false;}
return true;};}
this.encode=arrayHandler(bindTo(type,'encode'));this.decode=arrayHandler(bindTo(type,'decode'));this.is=arrayHandler(bindTo(type,'is'),true);this.equals=arrayEqualsHandler(bindTo(type,'equals'));this.pattern=type.pattern;this.$normalize=arrayHandler(bindTo(type,'$normalize'));this.name=type.name;this.$arrayMode=mode;}
return new ArrayType(this,mode);};function $UrlMatcherFactory(){$$UMFP=this;var isCaseInsensitive=false,isStrictMode=true,defaultSquashPolicy=false;function valToString(val){return val!=null?val.toString().replace(/\//g,"%2F"):val;}
function valFromString(val){return val!=null?val.toString().replace(/%2F/g,"/"):val;}
var $types={},enqueue=true,typeQueue=[],injector,defaultTypes={string:{encode:valToString,decode:valFromString,is:function(val){return val==null||!isDefined(val)||typeof val==="string";},pattern:/[^/]*/},int:{encode:valToString,decode:function(val){return parseInt(val,10);},is:function(val){return isDefined(val)&&this.decode(val.toString())===val;},pattern:/\d+/},bool:{encode:function(val){return val?1:0;},decode:function(val){return parseInt(val,10)!==0;},is:function(val){return val===true||val===false;},pattern:/0|1/},date:{encode:function(val){if(!this.is(val))
return undefined;return[val.getFullYear(),('0'+(val.getMonth()+1)).slice(-2),('0'+val.getDate()).slice(-2)].join("-");},decode:function(val){if(this.is(val))return val;var match=this.capture.exec(val);return match?new Date(match[1],match[2]-1,match[3]):undefined;},is:function(val){return val instanceof Date&&!isNaN(val.valueOf());},equals:function(a,b){return this.is(a)&&this.is(b)&&a.toISOString()===b.toISOString();},pattern:/[0-9]{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1])/,capture:/([0-9]{4})-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])/},json:{encode:angular.toJson,decode:angular.fromJson,is:angular.isObject,equals:angular.equals,pattern:/[^/]*/},any:{encode:angular.identity,decode:angular.identity,equals:angular.equals,pattern:/.*/}};function getDefaultConfig(){return{strict:isStrictMode,caseInsensitive:isCaseInsensitive};}
function isInjectable(value){return(isFunction(value)||(isArray(value)&&isFunction(value[value.length-1])));}
$UrlMatcherFactory.$$getDefaultValue=function(config){if(!isInjectable(config.value))return config.value;if(!injector)throw new Error("Injectable functions cannot be called at configuration time");return injector.invoke(config.value);};this.caseInsensitive=function(value){if(isDefined(value))
isCaseInsensitive=value;return isCaseInsensitive;};this.strictMode=function(value){if(isDefined(value))
isStrictMode=value;return isStrictMode;};this.defaultSquashPolicy=function(value){if(!isDefined(value))return defaultSquashPolicy;if(value!==true&&value!==false&&!isString(value))
throw new Error("Invalid squash policy: "+value+". Valid policies: false, true, arbitrary-string");defaultSquashPolicy=value;return value;};this.compile=function(pattern,config){return new UrlMatcher(pattern,extend(getDefaultConfig(),config));};this.isMatcher=function(o){if(!isObject(o))return false;var result=true;forEach(UrlMatcher.prototype,function(val,name){if(isFunction(val)){result=result&&(isDefined(o[name])&&isFunction(o[name]));}});return result;};this.type=function(name,definition,definitionFn){if(!isDefined(definition))return $types[name];if($types.hasOwnProperty(name))throw new Error("A type named '"+name+"' has already been defined.");$types[name]=new Type(extend({name:name},definition));if(definitionFn){typeQueue.push({name:name,def:definitionFn});if(!enqueue)flushTypeQueue();}
return this;};function flushTypeQueue(){while(typeQueue.length){var type=typeQueue.shift();if(type.pattern)throw new Error("You cannot override a type's .pattern at runtime.");angular.extend($types[type.name],injector.invoke(type.def));}}
forEach(defaultTypes,function(type,name){$types[name]=new Type(extend({name:name},type));});$types=inherit($types,{});this.$get=['$injector',function($injector){injector=$injector;enqueue=false;flushTypeQueue();forEach(defaultTypes,function(type,name){if(!$types[name])$types[name]=new Type(type);});return this;}];this.Param=function Param(id,type,config,location){var self=this;config=unwrapShorthand(config);type=getType(config,type,location);var arrayMode=getArrayMode();type=arrayMode?type.$asArray(arrayMode,location==="search"):type;if(type.name==="string"&&!arrayMode&&location==="path"&&config.value===undefined)
config.value="";var isOptional=config.value!==undefined;var squash=getSquashPolicy(config,isOptional);var replace=getReplace(config,arrayMode,isOptional,squash);function unwrapShorthand(config){var keys=isObject(config)?objectKeys(config):[];var isShorthand=indexOf(keys,"value")===-1&&indexOf(keys,"type")===-1&&indexOf(keys,"squash")===-1&&indexOf(keys,"array")===-1;if(isShorthand)config={value:config};config.$$fn=isInjectable(config.value)?config.value:function(){return config.value;};return config;}
function getType(config,urlType,location){if(config.type&&urlType)throw new Error("Param '"+id+"' has two type configurations.");if(urlType)return urlType;if(!config.type)return(location==="config"?$types.any:$types.string);return config.type instanceof Type?config.type:new Type(config.type);}
function getArrayMode(){var arrayDefaults={array:(location==="search"?"auto":false)};var arrayParamNomenclature=id.match(/\[\]$/)?{array:true}:{};return extend(arrayDefaults,arrayParamNomenclature,config).array;}
function getSquashPolicy(config,isOptional){var squash=config.squash;if(!isOptional||squash===false)return false;if(!isDefined(squash)||squash==null)return defaultSquashPolicy;if(squash===true||isString(squash))return squash;throw new Error("Invalid squash policy: '"+squash+"'. Valid policies: false, true, or arbitrary string");}
function getReplace(config,arrayMode,isOptional,squash){var replace,configuredKeys,defaultPolicy=[{from:"",to:(isOptional||arrayMode?undefined:"")},{from:null,to:(isOptional||arrayMode?undefined:"")}];replace=isArray(config.replace)?config.replace:[];if(isString(squash))
replace.push({from:squash,to:undefined});configuredKeys=map(replace,function(item){return item.from;});return filter(defaultPolicy,function(item){return indexOf(configuredKeys,item.from)===-1;}).concat(replace);}
function $$getDefaultValue(){if(!injector)throw new Error("Injectable functions cannot be called at configuration time");var defaultValue=injector.invoke(config.$$fn);if(defaultValue!==null&&defaultValue!==undefined&&!self.type.is(defaultValue))
throw new Error("Default value ("+defaultValue+") for parameter '"+self.id+"' is not an instance of Type ("+self.type.name+")");return defaultValue;}
function $value(value){function hasReplaceVal(val){return function(obj){return obj.from===val;};}
function $replace(value){var replacement=map(filter(self.replace,hasReplaceVal(value)),function(obj){return obj.to;});return replacement.length?replacement[0]:value;}
value=$replace(value);return!isDefined(value)?$$getDefaultValue():self.type.$normalize(value);}
function toString(){return"{Param:"+id+" "+type+" squash: '"+squash+"' optional: "+isOptional+"}";}
extend(this,{id:id,type:type,location:location,array:arrayMode,squash:squash,replace:replace,isOptional:isOptional,value:$value,dynamic:undefined,config:config,toString:toString});};function ParamSet(params){extend(this,params||{});}
ParamSet.prototype={$$new:function(){return inherit(this,extend(new ParamSet(),{$$parent:this}));},$$keys:function(){var keys=[],chain=[],parent=this,ignore=objectKeys(ParamSet.prototype);while(parent){chain.push(parent);parent=parent.$$parent;}
chain.reverse();forEach(chain,function(paramset){forEach(objectKeys(paramset),function(key){if(indexOf(keys,key)===-1&&indexOf(ignore,key)===-1)keys.push(key);});});return keys;},$$values:function(paramValues){var values={},self=this;forEach(self.$$keys(),function(key){values[key]=self[key].value(paramValues&&paramValues[key]);});return values;},$$equals:function(paramValues1,paramValues2){var equal=true,self=this;forEach(self.$$keys(),function(key){var left=paramValues1&&paramValues1[key],right=paramValues2&&paramValues2[key];if(!self[key].type.equals(left,right))equal=false;});return equal;},$$validates:function $$validate(paramValues){var keys=this.$$keys(),i,param,rawVal,normalized,encoded;for(i=0;i<keys.length;i++){param=this[keys[i]];rawVal=paramValues[keys[i]];if((rawVal===undefined||rawVal===null)&&param.isOptional)
break;normalized=param.type.$normalize(rawVal);if(!param.type.is(normalized))
return false;encoded=param.type.encode(normalized);if(angular.isString(encoded)&&!param.type.pattern.exec(encoded))
return false;}
return true;},$$parent:undefined};this.ParamSet=ParamSet;}
angular.module('ui.router.util').provider('$urlMatcherFactory',$UrlMatcherFactory);angular.module('ui.router.util').run(['$urlMatcherFactory',function($urlMatcherFactory){}]);$UrlRouterProvider.$inject=['$locationProvider','$urlMatcherFactoryProvider'];function $UrlRouterProvider($locationProvider,$urlMatcherFactory){var rules=[],otherwise=null,interceptDeferred=false,listener;function regExpPrefix(re){var prefix=/^\^((?:\\[^a-zA-Z0-9]|[^\\\[\]\^$*+?.()|{}]+)*)/.exec(re.source);return(prefix!=null)?prefix[1].replace(/\\(.)/g,"$1"):'';}
function interpolate(pattern,match){return pattern.replace(/\$(\$|\d{1,2})/,function(m,what){return match[what==='$'?0:Number(what)];});}
this.rule=function(rule){if(!isFunction(rule))throw new Error("'rule' must be a function");rules.push(rule);return this;};this.otherwise=function(rule){if(isString(rule)){var redirect=rule;rule=function(){return redirect;};}
else if(!isFunction(rule))throw new Error("'rule' must be a function");otherwise=rule;return this;};function handleIfMatch($injector,handler,match){if(!match)return false;var result=$injector.invoke(handler,handler,{$match:match});return isDefined(result)?result:true;}
this.when=function(what,handler){var redirect,handlerIsString=isString(handler);if(isString(what))what=$urlMatcherFactory.compile(what);if(!handlerIsString&&!isFunction(handler)&&!isArray(handler))
throw new Error("invalid 'handler' in when()");var strategies={matcher:function(what,handler){if(handlerIsString){redirect=$urlMatcherFactory.compile(handler);handler=['$match',function($match){return redirect.format($match);}];}
return extend(function($injector,$location){return handleIfMatch($injector,handler,what.exec($location.path(),$location.search()));},{prefix:isString(what.prefix)?what.prefix:''});},regex:function(what,handler){if(what.global||what.sticky)throw new Error("when() RegExp must not be global or sticky");if(handlerIsString){redirect=handler;handler=['$match',function($match){return interpolate(redirect,$match);}];}
return extend(function($injector,$location){return handleIfMatch($injector,handler,what.exec($location.path()));},{prefix:regExpPrefix(what)});}};var check={matcher:$urlMatcherFactory.isMatcher(what),regex:what instanceof RegExp};for(var n in check){if(check[n])return this.rule(strategies[n](what,handler));}
throw new Error("invalid 'what' in when()");};this.deferIntercept=function(defer){if(defer===undefined)defer=true;interceptDeferred=defer;};this.$get=$get;$get.$inject=['$location','$rootScope','$injector','$browser'];function $get($location,$rootScope,$injector,$browser){var baseHref=$browser.baseHref(),location=$location.url(),lastPushedUrl;function appendBasePath(url,isHtml5,absolute){if(baseHref==='/')return url;if(isHtml5)return baseHref.slice(0,-1)+url;if(absolute)return baseHref.slice(1)+url;return url;}
function update(evt){if(evt&&evt.defaultPrevented)return;var ignoreUpdate=lastPushedUrl&&$location.url()===lastPushedUrl;lastPushedUrl=undefined;function check(rule){var handled=rule($injector,$location);if(!handled)return false;if(isString(handled))$location.replace().url(handled);return true;}
var n=rules.length,i;for(i=0;i<n;i++){if(check(rules[i]))return;}
if(otherwise)check(otherwise);}
function listen(){listener=listener||$rootScope.$on('$locationChangeSuccess',update);return listener;}
if(!interceptDeferred)listen();return{sync:function(){update();},listen:function(){return listen();},update:function(read){if(read){location=$location.url();return;}
if($location.url()===location)return;$location.url(location);$location.replace();},push:function(urlMatcher,params,options){var url=urlMatcher.format(params||{});if(url!==null&&params&&params['#']){url+='#'+params['#'];}
$location.url(url);lastPushedUrl=options&&options.$$avoidResync?$location.url():undefined;if(options&&options.replace)$location.replace();},href:function(urlMatcher,params,options){if(!urlMatcher.validates(params))return null;var isHtml5=$locationProvider.html5Mode();if(angular.isObject(isHtml5)){isHtml5=isHtml5.enabled;}
var url=urlMatcher.format(params);options=options||{};if(!isHtml5&&url!==null){url="#"+$locationProvider.hashPrefix()+url;}
if(url!==null&&params&&params['#']){url+='#'+params['#'];}
url=appendBasePath(url,isHtml5,options.absolute);if(!options.absolute||!url){return url;}
var slash=(!isHtml5&&url?'/':''),port=$location.port();port=(port===80||port===443?'':':'+port);return[$location.protocol(),'://',$location.host(),port,slash,url].join('');}};}}
angular.module('ui.router.router').provider('$urlRouter',$UrlRouterProvider);$StateProvider.$inject=['$urlRouterProvider','$urlMatcherFactoryProvider'];function $StateProvider($urlRouterProvider,$urlMatcherFactory){var root,states={},$state,queue={},abstractKey='abstract';var stateBuilder={parent:function(state){if(isDefined(state.parent)&&state.parent)return findState(state.parent);var compositeName=/^(.+)\.[^.]+$/.exec(state.name);return compositeName?findState(compositeName[1]):root;},data:function(state){if(state.parent&&state.parent.data){state.data=state.self.data=extend({},state.parent.data,state.data);}
return state.data;},url:function(state){var url=state.url,config={params:state.params||{}};if(isString(url)){if(url.charAt(0)=='^')return $urlMatcherFactory.compile(url.substring(1),config);return(state.parent.navigable||root).url.concat(url,config);}
if(!url||$urlMatcherFactory.isMatcher(url))return url;throw new Error("Invalid url '"+url+"' in state '"+state+"'");},navigable:function(state){return state.url?state:(state.parent?state.parent.navigable:null);},ownParams:function(state){var params=state.url&&state.url.params||new $$UMFP.ParamSet();forEach(state.params||{},function(config,id){if(!params[id])params[id]=new $$UMFP.Param(id,null,config,"config");});return params;},params:function(state){return state.parent&&state.parent.params?extend(state.parent.params.$$new(),state.ownParams):new $$UMFP.ParamSet();},views:function(state){var views={};forEach(isDefined(state.views)?state.views:{'':state},function(view,name){if(name.indexOf('@')<0)name+='@'+state.parent.name;views[name]=view;});return views;},path:function(state){return state.parent?state.parent.path.concat(state):[];},includes:function(state){var includes=state.parent?extend({},state.parent.includes):{};includes[state.name]=true;return includes;},$delegates:{}};function isRelative(stateName){return stateName.indexOf(".")===0||stateName.indexOf("^")===0;}
function findState(stateOrName,base){if(!stateOrName)return undefined;var isStr=isString(stateOrName),name=isStr?stateOrName:stateOrName.name,path=isRelative(name);if(path){if(!base)throw new Error("No reference point given for path '"+name+"'");base=findState(base);var rel=name.split("."),i=0,pathLength=rel.length,current=base;for(;i<pathLength;i++){if(rel[i]===""&&i===0){current=base;continue;}
if(rel[i]==="^"){if(!current.parent)throw new Error("Path '"+name+"' not valid for state '"+base.name+"'");current=current.parent;continue;}
break;}
rel=rel.slice(i).join(".");name=current.name+(current.name&&rel?".":"")+rel;}
var state=states[name];if(state&&(isStr||(!isStr&&(state===stateOrName||state.self===stateOrName)))){return state;}
return undefined;}
function queueState(parentName,state){if(!queue[parentName]){queue[parentName]=[];}
queue[parentName].push(state);}
function flushQueuedChildren(parentName){var queued=queue[parentName]||[];while(queued.length){registerState(queued.shift());}}
function registerState(state){state=inherit(state,{self:state,resolve:state.resolve||{},toString:function(){return this.name;}});var name=state.name;if(!isString(name)||name.indexOf('@')>=0)throw new Error("State must have a valid name");if(states.hasOwnProperty(name))throw new Error("State '"+name+"'' is already defined");var parentName=(name.indexOf('.')!==-1)?name.substring(0,name.lastIndexOf('.')):(isString(state.parent))?state.parent:(isObject(state.parent)&&isString(state.parent.name))?state.parent.name:'';if(parentName&&!states[parentName]){return queueState(parentName,state.self);}
for(var key in stateBuilder){if(isFunction(stateBuilder[key]))state[key]=stateBuilder[key](state,stateBuilder.$delegates[key]);}
states[name]=state;if(!state[abstractKey]&&state.url){$urlRouterProvider.when(state.url,['$match','$stateParams',function($match,$stateParams){if($state.$current.navigable!=state||!equalForKeys($match,$stateParams)){$state.transitionTo(state,$match,{inherit:true,location:false});}}]);}
flushQueuedChildren(name);return state;}
function isGlob(text){return text.indexOf('*')>-1;}
function doesStateMatchGlob(glob){var globSegments=glob.split('.'),segments=$state.$current.name.split('.');for(var i=0,l=globSegments.length;i<l;i++){if(globSegments[i]==='*'){segments[i]='*';}}
if(globSegments[0]==='**'){segments=segments.slice(indexOf(segments,globSegments[1]));segments.unshift('**');}
if(globSegments[globSegments.length-1]==='**'){segments.splice(indexOf(segments,globSegments[globSegments.length-2])+1,Number.MAX_VALUE);segments.push('**');}
if(globSegments.length!=segments.length){return false;}
return segments.join('')===globSegments.join('');}
root=registerState({name:'',url:'^',views:null,'abstract':true});root.navigable=null;this.decorator=decorator;function decorator(name,func){if(isString(name)&&!isDefined(func)){return stateBuilder[name];}
if(!isFunction(func)||!isString(name)){return this;}
if(stateBuilder[name]&&!stateBuilder.$delegates[name]){stateBuilder.$delegates[name]=stateBuilder[name];}
stateBuilder[name]=func;return this;}
this.state=state;function state(name,definition){if(isObject(name))definition=name;else definition.name=name;registerState(definition);return this;}
this.$get=$get;$get.$inject=['$rootScope','$q','$view','$injector','$resolve','$stateParams','$urlRouter','$location','$urlMatcherFactory'];function $get($rootScope,$q,$view,$injector,$resolve,$stateParams,$urlRouter,$location,$urlMatcherFactory){var TransitionSuperseded=$q.reject(new Error('transition superseded'));var TransitionPrevented=$q.reject(new Error('transition prevented'));var TransitionAborted=$q.reject(new Error('transition aborted'));var TransitionFailed=$q.reject(new Error('transition failed'));function handleRedirect(redirect,state,params,options){var evt=$rootScope.$broadcast('$stateNotFound',redirect,state,params);if(evt.defaultPrevented){$urlRouter.update();return TransitionAborted;}
if(!evt.retry){return null;}
if(options.$retry){$urlRouter.update();return TransitionFailed;}
var retryTransition=$state.transition=$q.when(evt.retry);retryTransition.then(function(){if(retryTransition!==$state.transition)return TransitionSuperseded;redirect.options.$retry=true;return $state.transitionTo(redirect.to,redirect.toParams,redirect.options);},function(){return TransitionAborted;});$urlRouter.update();return retryTransition;}
root.locals={resolve:null,globals:{$stateParams:{}}};$state={params:{},current:root.self,$current:root,transition:null};$state.reload=function reload(state){return $state.transitionTo($state.current,$stateParams,{reload:state||true,inherit:false,notify:true});};$state.go=function go(to,params,options){return $state.transitionTo(to,params,extend({inherit:true,relative:$state.$current},options));};$state.transitionTo=function transitionTo(to,toParams,options){toParams=toParams||{};options=extend({location:true,inherit:false,relative:null,notify:true,reload:false,$retry:false},options||{});var from=$state.$current,fromParams=$state.params,fromPath=from.path;var evt,toState=findState(to,options.relative);var hash=toParams['#'];if(!isDefined(toState)){var redirect={to:to,toParams:toParams,options:options};var redirectResult=handleRedirect(redirect,from.self,fromParams,options);if(redirectResult){return redirectResult;}
to=redirect.to;toParams=redirect.toParams;options=redirect.options;toState=findState(to,options.relative);if(!isDefined(toState)){if(!options.relative)throw new Error("No such state '"+to+"'");throw new Error("Could not resolve '"+to+"' from state '"+options.relative+"'");}}
if(toState[abstractKey])throw new Error("Cannot transition to abstract state '"+to+"'");if(options.inherit)toParams=inheritParams($stateParams,toParams||{},$state.$current,toState);if(!toState.params.$$validates(toParams))return TransitionFailed;toParams=toState.params.$$values(toParams);to=toState;var toPath=to.path;var keep=0,state=toPath[keep],locals=root.locals,toLocals=[];if(!options.reload){while(state&&state===fromPath[keep]&&state.ownParams.$$equals(toParams,fromParams)){locals=toLocals[keep]=state.locals;keep++;state=toPath[keep];}}else if(isString(options.reload)||isObject(options.reload)){if(isObject(options.reload)&&!options.reload.name){throw new Error('Invalid reload state object');}
var reloadState=options.reload===true?fromPath[0]:findState(options.reload);if(options.reload&&!reloadState){throw new Error("No such reload state '"+(isString(options.reload)?options.reload:options.reload.name)+"'");}
while(state&&state===fromPath[keep]&&state!==reloadState){locals=toLocals[keep]=state.locals;keep++;state=toPath[keep];}}
if(shouldSkipReload(to,toParams,from,fromParams,locals,options)){if(hash)toParams['#']=hash;$state.params=toParams;copy($state.params,$stateParams);if(options.location&&to.navigable&&to.navigable.url){$urlRouter.push(to.navigable.url,toParams,{$$avoidResync:true,replace:options.location==='replace'});$urlRouter.update(true);}
$state.transition=null;return $q.when($state.current);}
toParams=filterByKeys(to.params.$$keys(),toParams||{});if(options.notify){if($rootScope.$broadcast('$stateChangeStart',to.self,toParams,from.self,fromParams).defaultPrevented){$rootScope.$broadcast('$stateChangeCancel',to.self,toParams,from.self,fromParams);$urlRouter.update();return TransitionPrevented;}}
var resolved=$q.when(locals);for(var l=keep;l<toPath.length;l++,state=toPath[l]){locals=toLocals[l]=inherit(locals);resolved=resolveState(state,toParams,state===to,resolved,locals,options);}
var transition=$state.transition=resolved.then(function(){var l,entering,exiting;if($state.transition!==transition)return TransitionSuperseded;for(l=fromPath.length-1;l>=keep;l--){exiting=fromPath[l];if(exiting.self.onExit){$injector.invoke(exiting.self.onExit,exiting.self,exiting.locals.globals);}
exiting.locals=null;}
for(l=keep;l<toPath.length;l++){entering=toPath[l];entering.locals=toLocals[l];if(entering.self.onEnter){$injector.invoke(entering.self.onEnter,entering.self,entering.locals.globals);}}
if(hash)toParams['#']=hash;if($state.transition!==transition)return TransitionSuperseded;$state.$current=to;$state.current=to.self;$state.params=toParams;copy($state.params,$stateParams);$state.transition=null;if(options.location&&to.navigable){$urlRouter.push(to.navigable.url,to.navigable.locals.globals.$stateParams,{$$avoidResync:true,replace:options.location==='replace'});}
if(options.notify){$rootScope.$broadcast('$stateChangeSuccess',to.self,toParams,from.self,fromParams);}
$urlRouter.update(true);return $state.current;},function(error){if($state.transition!==transition)return TransitionSuperseded;$state.transition=null;evt=$rootScope.$broadcast('$stateChangeError',to.self,toParams,from.self,fromParams,error);if(!evt.defaultPrevented){$urlRouter.update();}
return $q.reject(error);});return transition;};$state.is=function is(stateOrName,params,options){options=extend({relative:$state.$current},options||{});var state=findState(stateOrName,options.relative);if(!isDefined(state)){return undefined;}
if($state.$current!==state){return false;}
return params?equalForKeys(state.params.$$values(params),$stateParams):true;};$state.includes=function includes(stateOrName,params,options){options=extend({relative:$state.$current},options||{});if(isString(stateOrName)&&isGlob(stateOrName)){if(!doesStateMatchGlob(stateOrName)){return false;}
stateOrName=$state.$current.name;}
var state=findState(stateOrName,options.relative);if(!isDefined(state)){return undefined;}
if(!isDefined($state.$current.includes[state.name])){return false;}
return params?equalForKeys(state.params.$$values(params),$stateParams,objectKeys(params)):true;};$state.href=function href(stateOrName,params,options){options=extend({lossy:true,inherit:true,absolute:false,relative:$state.$current},options||{});var state=findState(stateOrName,options.relative);if(!isDefined(state))return null;if(options.inherit)params=inheritParams($stateParams,params||{},$state.$current,state);var nav=(state&&options.lossy)?state.navigable:state;if(!nav||nav.url===undefined||nav.url===null){return null;}
return $urlRouter.href(nav.url,filterByKeys(state.params.$$keys().concat('#'),params||{}),{absolute:options.absolute});};$state.get=function(stateOrName,context){if(arguments.length===0)return map(objectKeys(states),function(name){return states[name].self;});var state=findState(stateOrName,context||$state.$current);return(state&&state.self)?state.self:null;};function resolveState(state,params,paramsAreFiltered,inherited,dst,options){var $stateParams=(paramsAreFiltered)?params:filterByKeys(state.params.$$keys(),params);var locals={$stateParams:$stateParams};dst.resolve=$resolve.resolve(state.resolve,locals,dst.resolve,state);var promises=[dst.resolve.then(function(globals){dst.globals=globals;})];if(inherited)promises.push(inherited);function resolveViews(){var viewsPromises=[];forEach(state.views,function(view,name){var injectables=(view.resolve&&view.resolve!==state.resolve?view.resolve:{});injectables.$template=[function(){return $view.load(name,{view:view,locals:dst.globals,params:$stateParams,notify:options.notify})||'';}];viewsPromises.push($resolve.resolve(injectables,dst.globals,dst.resolve,state).then(function(result){if(isFunction(view.controllerProvider)||isArray(view.controllerProvider)){var injectLocals=angular.extend({},injectables,dst.globals);result.$$controller=$injector.invoke(view.controllerProvider,null,injectLocals);}else{result.$$controller=view.controller;}
result.$$state=state;result.$$controllerAs=view.controllerAs;dst[name]=result;}));});return $q.all(viewsPromises).then(function(){return dst.globals;});}
return $q.all(promises).then(resolveViews).then(function(values){return dst;});}
return $state;}
function shouldSkipReload(to,toParams,from,fromParams,locals,options){function nonSearchParamsEqual(fromAndToState,fromParams,toParams){function notSearchParam(key){return fromAndToState.params[key].location!="search";}
var nonQueryParamKeys=fromAndToState.params.$$keys().filter(notSearchParam);var nonQueryParams=pick.apply({},[fromAndToState.params].concat(nonQueryParamKeys));var nonQueryParamSet=new $$UMFP.ParamSet(nonQueryParams);return nonQueryParamSet.$$equals(fromParams,toParams);}
if(!options.reload&&to===from&&(locals===from.locals||(to.self.reloadOnSearch===false&&nonSearchParamsEqual(from,fromParams,toParams)))){return true;}}}
angular.module('ui.router.state').value('$stateParams',{}).provider('$state',$StateProvider);$ViewProvider.$inject=[];function $ViewProvider(){this.$get=$get;$get.$inject=['$rootScope','$templateFactory'];function $get($rootScope,$templateFactory){return{load:function load(name,options){var result,defaults={template:null,controller:null,view:null,locals:null,notify:true,async:true,params:{}};options=extend(defaults,options);if(options.view){result=$templateFactory.fromConfig(options.view,options.params,options.locals);}
if(result&&options.notify){$rootScope.$broadcast('$viewContentLoading',options);}
return result;}};}}
angular.module('ui.router.state').provider('$view',$ViewProvider);function $ViewScrollProvider(){var useAnchorScroll=false;this.useAnchorScroll=function(){useAnchorScroll=true;};this.$get=['$anchorScroll','$timeout',function($anchorScroll,$timeout){if(useAnchorScroll){return $anchorScroll;}
return function($element){return $timeout(function(){$element[0].scrollIntoView();},0,false);};}];}
angular.module('ui.router.state').provider('$uiViewScroll',$ViewScrollProvider);$ViewDirective.$inject=['$state','$injector','$uiViewScroll','$interpolate'];function $ViewDirective($state,$injector,$uiViewScroll,$interpolate){function getService(){return($injector.has)?function(service){return $injector.has(service)?$injector.get(service):null;}:function(service){try{return $injector.get(service);}catch(e){return null;}};}
var service=getService(),$animator=service('$animator'),$animate=service('$animate');function getRenderer(attrs,scope){var statics=function(){return{enter:function(element,target,cb){target.after(element);cb();},leave:function(element,cb){element.remove();cb();}};};if($animate){return{enter:function(element,target,cb){var promise=$animate.enter(element,null,target,cb);if(promise&&promise.then)promise.then(cb);},leave:function(element,cb){var promise=$animate.leave(element,cb);if(promise&&promise.then)promise.then(cb);}};}
if($animator){var animate=$animator&&$animator(scope,attrs);return{enter:function(element,target,cb){animate.enter(element,null,target);cb();},leave:function(element,cb){animate.leave(element);cb();}};}
return statics();}
var directive={restrict:'ECA',terminal:true,priority:400,transclude:'element',compile:function(tElement,tAttrs,$transclude){return function(scope,$element,attrs){var previousEl,currentEl,currentScope,latestLocals,onloadExp=attrs.onload||'',autoScrollExp=attrs.autoscroll,renderer=getRenderer(attrs,scope);scope.$on('$stateChangeSuccess',function(){updateView(false);});scope.$on('$viewContentLoading',function(){updateView(false);});updateView(true);function cleanupLastView(){if(previousEl){previousEl.remove();previousEl=null;}
if(currentScope){currentScope.$destroy();currentScope=null;}
if(currentEl){renderer.leave(currentEl,function(){previousEl=null;});previousEl=currentEl;currentEl=null;}}
function updateView(firstTime){var newScope,name=getUiViewName(scope,attrs,$element,$interpolate),previousLocals=name&&$state.$current&&$state.$current.locals[name];if(!firstTime&&previousLocals===latestLocals)return;newScope=scope.$new();latestLocals=$state.$current.locals[name];var clone=$transclude(newScope,function(clone){renderer.enter(clone,$element,function onUiViewEnter(){if(currentScope){currentScope.$emit('$viewContentAnimationEnded');}
if(angular.isDefined(autoScrollExp)&&!autoScrollExp||scope.$eval(autoScrollExp)){$uiViewScroll(clone);}});cleanupLastView();});currentEl=clone;currentScope=newScope;currentScope.$emit('$viewContentLoaded');currentScope.$eval(onloadExp);}};}};return directive;}
$ViewDirectiveFill.$inject=['$compile','$controller','$state','$interpolate'];function $ViewDirectiveFill($compile,$controller,$state,$interpolate){return{restrict:'ECA',priority:-400,compile:function(tElement){var initial=tElement.html();return function(scope,$element,attrs){var current=$state.$current,name=getUiViewName(scope,attrs,$element,$interpolate),locals=current&&current.locals[name];if(!locals){return;}
$element.data('$uiView',{name:name,state:locals.$$state});$element.html(locals.$template?locals.$template:initial);var link=$compile($element.contents());if(locals.$$controller){locals.$scope=scope;locals.$element=$element;var controller=$controller(locals.$$controller,locals);if(locals.$$controllerAs){scope[locals.$$controllerAs]=controller;}
$element.data('$ngControllerController',controller);$element.children().data('$ngControllerController',controller);}
link(scope);};}};}
function getUiViewName(scope,attrs,element,$interpolate){var name=$interpolate(attrs.uiView||attrs.name||'')(scope);var inherited=element.inheritedData('$uiView');return name.indexOf('@')>=0?name:(name+'@'+(inherited?inherited.state.name:''));}
angular.module('ui.router.state').directive('uiView',$ViewDirective);angular.module('ui.router.state').directive('uiView',$ViewDirectiveFill);function parseStateRef(ref,current){var preparsed=ref.match(/^\s*({[^}]*})\s*$/),parsed;if(preparsed)ref=current+'('+preparsed[1]+')';parsed=ref.replace(/\n/g," ").match(/^([^(]+?)\s*(\((.*)\))?$/);if(!parsed||parsed.length!==4)throw new Error("Invalid state ref '"+ref+"'");return{state:parsed[1],paramExpr:parsed[3]||null};}
function stateContext(el){var stateData=el.parent().inheritedData('$uiView');if(stateData&&stateData.state&&stateData.state.name){return stateData.state;}}
$StateRefDirective.$inject=['$state','$timeout'];function $StateRefDirective($state,$timeout){var allowedOptions=['location','inherit','reload','absolute'];return{restrict:'A',require:['?^uiSrefActive','?^uiSrefActiveEq'],link:function(scope,element,attrs,uiSrefActive){var ref=parseStateRef(attrs.uiSref,$state.current.name);var params=null,url=null,base=stateContext(element)||$state.$current;var hrefKind=Object.prototype.toString.call(element.prop('href'))==='[object SVGAnimatedString]'?'xlink:href':'href';var newHref=null,isAnchor=element.prop("tagName").toUpperCase()==="A";var isForm=element[0].nodeName==="FORM";var attr=isForm?"action":hrefKind,nav=true;var options={relative:base,inherit:true};var optionsOverride=scope.$eval(attrs.uiSrefOpts)||{};angular.forEach(allowedOptions,function(option){if(option in optionsOverride){options[option]=optionsOverride[option];}});var update=function(newVal){if(newVal)params=angular.copy(newVal);if(!nav)return;newHref=$state.href(ref.state,params,options);var activeDirective=uiSrefActive[1]||uiSrefActive[0];if(activeDirective){activeDirective.$$addStateInfo(ref.state,params);}
if(newHref===null){nav=false;return false;}
attrs.$set(attr,newHref);};if(ref.paramExpr){scope.$watch(ref.paramExpr,function(newVal,oldVal){if(newVal!==params)update(newVal);},true);params=angular.copy(scope.$eval(ref.paramExpr));}
update();if(isForm)return;element.bind("click",function(e){var button=e.which||e.button;if(!(button>1||e.ctrlKey||e.metaKey||e.shiftKey||element.attr('target'))){var transition=$timeout(function(){$state.go(ref.state,params,options);});e.preventDefault();var ignorePreventDefaultCount=isAnchor&&!newHref?1:0;e.preventDefault=function(){if(ignorePreventDefaultCount--<=0)
$timeout.cancel(transition);};}});}};}
$StateRefActiveDirective.$inject=['$state','$stateParams','$interpolate'];function $StateRefActiveDirective($state,$stateParams,$interpolate){return{restrict:"A",controller:['$scope','$element','$attrs',function($scope,$element,$attrs){var states=[],activeClass;activeClass=$interpolate($attrs.uiSrefActiveEq||$attrs.uiSrefActive||'',false)($scope);this.$$addStateInfo=function(newState,newParams){var state=$state.get(newState,stateContext($element));states.push({state:state||{name:newState},params:newParams});update();};$scope.$on('$stateChangeSuccess',update);function update(){if(anyMatch()){$element.addClass(activeClass);}else{$element.removeClass(activeClass);}}
function anyMatch(){for(var i=0;i<states.length;i++){if(isMatch(states[i].state,states[i].params)){return true;}}
return false;}
function isMatch(state,params){if(typeof $attrs.uiSrefActiveEq!=='undefined'){return $state.is(state.name,params);}else{return $state.includes(state.name,params);}}}]};}
angular.module('ui.router.state').directive('uiSref',$StateRefDirective).directive('uiSrefActive',$StateRefActiveDirective).directive('uiSrefActiveEq',$StateRefActiveDirective);$IsStateFilter.$inject=['$state'];function $IsStateFilter($state){var isFilter=function(state){return $state.is(state);};isFilter.$stateful=true;return isFilter;}
$IncludedByStateFilter.$inject=['$state'];function $IncludedByStateFilter($state){var includesFilter=function(state){return $state.includes(state);};includesFilter.$stateful=true;return includesFilter;}
angular.module('ui.router.state').filter('isState',$IsStateFilter).filter('includedByState',$IncludedByStateFilter);})(window,window.angular);(function(window,angular,undefined){'use strict';var settings={};var flags={sdk:false,ready:false};var loadDeferred;angular.module('facebook',[]).value('settings',settings).value('flags',flags).provider('Facebook',[function(){settings.appId=null;this.setAppId=function(appId){settings.appId=appId;};this.getAppId=function(){return settings.appId;};settings.locale='en_US';this.setLocale=function(locale){settings.locale=locale;};this.getLocale=function(){return settings.locale;};settings.status=true;this.setStatus=function(status){settings.status=status;};this.getStatus=function(){return settings.status;};settings.channelUrl=null;this.setChannel=function(channel){settings.channelUrl=channel;};this.getChannel=function(){return settings.channelUrl;};settings.cookie=true;this.setCookie=function(cookie){settings.cookie=cookie;};this.getCookie=function(){return settings.cookie;};settings.xfbml=true;this.setXfbml=function(enable){settings.xfbml=enable;};this.getXfbml=function(){return settings.xfbml;};this.setAuthResponse=function(obj){settings.authResponse=obj||true;};this.getAuthResponse=function(){return settings.authResponse;};settings.frictionlessRequests=false;this.setFrictionlessRequests=function(enable){settings.frictionlessRequests=enable;};this.getFrictionlessRequests=function(){return settings.frictionlessRequests;};settings.hideFlashCallback=null;this.setHideFlashCallback=function(obj){settings.hideFlashCallback=obj||null;};this.getHideFlashCallback=function(){return settings.hideFlashCallback;};this.setInitCustomOption=function(key,value){if(!angular.isString(key)){return false;}
settings[key]=value;return settings[key];};this.getInitOption=function(key){if(!angular.isString(key)||!settings.hasOwnProperty(key)){return false;}
return settings[key];};settings.loadSDK=true;this.setLoadSDK=function(a){settings.loadSDK=!!a;};this.getLoadSDK=function(){return settings.loadSDK;};settings.version='v2.0';this.setSdkVersion=function(version){settings.version=version;};this.getSdkVersion=function(){return settings.version;};this.init=function(initSettings,_loadSDK){if(angular.isString(initSettings)){settings.appId=initSettings||settings.appId;}
if(angular.isObject(initSettings)){angular.extend(settings,initSettings);}
if(angular.isDefined(_loadSDK)){settings.loadSDK=!!_loadSDK;}};this.$get=['$q','$rootScope','$timeout','$window',function($q,$rootScope,$timeout,$window){function NgFacebook(){this.appId=settings.appId;}
NgFacebook.prototype.isReady=function(){return flags.ready;};NgFacebook.prototype.login=function(){var d=$q.defer(),args=Array.prototype.slice.call(arguments),userFn,userFnIndex;angular.forEach(args,function(arg,index){if(angular.isFunction(arg)){userFn=arg;userFnIndex=index;}});if(angular.isFunction(userFn)&&angular.isNumber(userFnIndex)){args.splice(userFnIndex,1,function(response){$timeout(function(){if(angular.isUndefined(response.error)){d.resolve(response);}else{d.reject(response);}
if(angular.isFunction(userFn)){userFn(response);}});});}
if(this.isReady()){$window.FB.login.apply($window.FB,args);}else{$timeout(function(){d.reject("Facebook.login() called before Facebook SDK has loaded.");});}
return d.promise;};angular.forEach(['logout','api','ui','getLoginStatus'],function(name){NgFacebook.prototype[name]=function(){var d=$q.defer(),args=Array.prototype.slice.call(arguments),userFn,userFnIndex;angular.forEach(args,function(arg,index){if(angular.isFunction(arg)){userFn=arg;userFnIndex=index;}});if(angular.isFunction(userFn)&&angular.isNumber(userFnIndex)){args.splice(userFnIndex,1,function(response){$timeout(function(){if(response&&typeof response.error==='undefined'){d.resolve(response);}else{d.reject(response);}
if(angular.isFunction(userFn)){userFn(response);}});});}
$timeout(function(){loadDeferred.promise.then(function(){$window.FB[name].apply(FB,args);},function(){throw'Facebook API could not be initialized properly';});});return d.promise;};});NgFacebook.prototype.parseXFBML=function(){var d=$q.defer();$timeout(function(){loadDeferred.promise.then(function(){$window.FB.XFBML.parse();d.resolve();},function(){throw'Facebook API could not be initialized properly';});});return d.promise;};NgFacebook.prototype.subscribe=function(){var d=$q.defer(),args=Array.prototype.slice.call(arguments),userFn,userFnIndex;angular.forEach(args,function(arg,index){if(angular.isFunction(arg)){userFn=arg;userFnIndex=index;}});if(angular.isFunction(userFn)&&angular.isNumber(userFnIndex)){args.splice(userFnIndex,1,function(response){$timeout(function(){if(response&&typeof response.error==='undefined'){d.resolve(response);}else{d.reject(response);}
if(angular.isFunction(userFn)){userFn(response);}});});}
$timeout(function(){loadDeferred.promise.then(function(){$window.FB.Event.subscribe.apply(FB,args);},function(){throw'Facebook API could not be initialized properly';});});return d.promise;};NgFacebook.prototype.unsubscribe=function(){var d=$q.defer(),args=Array.prototype.slice.call(arguments),userFn,userFnIndex;angular.forEach(args,function(arg,index){if(angular.isFunction(arg)){userFn=arg;userFnIndex=index;}});if(angular.isFunction(userFn)&&angular.isNumber(userFnIndex)){args.splice(userFnIndex,1,function(response){$timeout(function(){if(response&&typeof response.error==='undefined'){d.resolve(response);}else{d.reject(response);}
if(angular.isFunction(userFn)){userFn(response);}});});}
$timeout(function(){loadDeferred.promise.then(function(){$window.FB.Event.unsubscribe.apply(FB,args);},function(){throw'Facebook API could not be initialized properly';});});return d.promise;};return new NgFacebook();}];}]).run(['$rootScope','$q','$window','$timeout',function($rootScope,$q,$window,$timeout){loadDeferred=$q.defer();var loadSDK=settings.loadSDK;delete(settings['loadSDK']);$window.fbAsyncInit=function(){$timeout(function(){if(!settings.appId){throw'Missing appId setting.';}
FB.init(settings);flags.ready=true;angular.forEach({'auth.login':'login','auth.logout':'logout','auth.prompt':'prompt','auth.sessionChange':'sessionChange','auth.statusChange':'statusChange','auth.authResponseChange':'authResponseChange','xfbml.render':'xfbmlRender','edge.create':'like','edge.remove':'unlike','comment.create':'comment','comment.remove':'uncomment'},function(mapped,name){FB.Event.subscribe(name,function(response){$timeout(function(){$rootScope.$broadcast('Facebook:'+mapped,response);});});});$rootScope.$broadcast('Facebook:load');loadDeferred.resolve(FB);});};(function addFBRoot(){var fbroot=document.getElementById('fb-root');if(!fbroot){fbroot=document.createElement('div');fbroot.id='fb-root';document.body.insertBefore(fbroot,document.body.childNodes[0]);}
return fbroot;})();if(loadSDK){(function injectScript(){var src='//connect.facebook.net/'+settings.locale+'/sdk.js',script=document.createElement('script');script.id='facebook-jssdk';script.async=true;if(['file','file:'].indexOf($window.location.protocol)!==-1){src='https:'+src;}
script.src=src;script.onload=function(){flags.sdk=true;};document.getElementsByTagName('head')[0].appendChild(script);})();}}]);})(window,angular);(function(window,angular,undefined){'use strict';var $sanitizeMinErr=angular.$$minErr('$sanitize');function $SanitizeProvider(){var svgEnabled=false;this.$get=['$$sanitizeUri',function($$sanitizeUri){if(svgEnabled){angular.extend(validElements,svgElements);}
return function(html){var buf=[];htmlParser(html,htmlSanitizeWriter(buf,function(uri,isImage){return!/^unsafe:/.test($$sanitizeUri(uri,isImage));}));return buf.join('');};}];this.enableSvg=function(enableSvg){if(angular.isDefined(enableSvg)){svgEnabled=enableSvg;return this;}else{return svgEnabled;}};}
function sanitizeText(chars){var buf=[];var writer=htmlSanitizeWriter(buf,angular.noop);writer.chars(chars);return buf.join('');}
var SURROGATE_PAIR_REGEXP=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,NON_ALPHANUMERIC_REGEXP=/([^\#-~ |!])/g;var voidElements=toMap("area,br,col,hr,img,wbr");var optionalEndTagBlockElements=toMap("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),optionalEndTagInlineElements=toMap("rp,rt"),optionalEndTagElements=angular.extend({},optionalEndTagInlineElements,optionalEndTagBlockElements);var blockElements=angular.extend({},optionalEndTagBlockElements,toMap("address,article,"+"aside,blockquote,caption,center,del,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,"+"h6,header,hgroup,hr,ins,map,menu,nav,ol,pre,section,table,ul"));var inlineElements=angular.extend({},optionalEndTagInlineElements,toMap("a,abbr,acronym,b,"+"bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,q,ruby,rp,rt,s,"+"samp,small,span,strike,strong,sub,sup,time,tt,u,var"));var svgElements=toMap("circle,defs,desc,ellipse,font-face,font-face-name,font-face-src,g,glyph,"+"hkern,image,linearGradient,line,marker,metadata,missing-glyph,mpath,path,polygon,polyline,"+"radialGradient,rect,stop,svg,switch,text,title,tspan,use");var blockedElements=toMap("script,style");var validElements=angular.extend({},voidElements,blockElements,inlineElements,optionalEndTagElements);var uriAttrs=toMap("background,cite,href,longdesc,src,usemap,xlink:href");var htmlAttrs=toMap('abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,'+'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,'+'ismap,lang,language,nohref,nowrap,rel,rev,rows,rowspan,rules,'+'scope,scrolling,shape,size,span,start,summary,tabindex,target,title,type,'+'valign,value,vspace,width');var svgAttrs=toMap('accent-height,accumulate,additive,alphabetic,arabic-form,ascent,'+'baseProfile,bbox,begin,by,calcMode,cap-height,class,color,color-rendering,content,'+'cx,cy,d,dx,dy,descent,display,dur,end,fill,fill-rule,font-family,font-size,font-stretch,'+'font-style,font-variant,font-weight,from,fx,fy,g1,g2,glyph-name,gradientUnits,hanging,'+'height,horiz-adv-x,horiz-origin-x,ideographic,k,keyPoints,keySplines,keyTimes,lang,'+'marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mathematical,'+'max,min,offset,opacity,orient,origin,overline-position,overline-thickness,panose-1,'+'path,pathLength,points,preserveAspectRatio,r,refX,refY,repeatCount,repeatDur,'+'requiredExtensions,requiredFeatures,restart,rotate,rx,ry,slope,stemh,stemv,stop-color,'+'stop-opacity,strikethrough-position,strikethrough-thickness,stroke,stroke-dasharray,'+'stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,'+'stroke-width,systemLanguage,target,text-anchor,to,transform,type,u1,u2,underline-position,'+'underline-thickness,unicode,unicode-range,units-per-em,values,version,viewBox,visibility,'+'width,widths,x,x-height,x1,x2,xlink:actuate,xlink:arcrole,xlink:role,xlink:show,xlink:title,'+'xlink:type,xml:base,xml:lang,xml:space,xmlns,xmlns:xlink,y,y1,y2,zoomAndPan',true);var validAttrs=angular.extend({},uriAttrs,svgAttrs,htmlAttrs);function toMap(str,lowercaseKeys){var obj={},items=str.split(','),i;for(i=0;i<items.length;i++){obj[lowercaseKeys?angular.lowercase(items[i]):items[i]]=true;}
return obj;}
var inertBodyElement;(function(window){var doc;if(window.document&&window.document.implementation){doc=window.document.implementation.createHTMLDocument("inert");}else{throw $sanitizeMinErr('noinert',"Can't create an inert html document");}
var docElement=doc.documentElement||doc.getDocumentElement();var bodyElements=docElement.getElementsByTagName('body');if(bodyElements.length===1){inertBodyElement=bodyElements[0];}else{var html=doc.createElement('html');inertBodyElement=doc.createElement('body');html.appendChild(inertBodyElement);doc.appendChild(html);}})(window);function htmlParser(html,handler){if(html===null||html===undefined){html='';}else if(typeof html!=='string'){html=''+html;}
inertBodyElement.innerHTML=html;var mXSSAttempts=5;do{if(mXSSAttempts===0){throw $sanitizeMinErr('uinput',"Failed to sanitize html because the input is unstable");}
mXSSAttempts--;if(document.documentMode<=11){stripCustomNsAttrs(inertBodyElement);}
html=inertBodyElement.innerHTML;inertBodyElement.innerHTML=html;}while(html!==inertBodyElement.innerHTML);var node=inertBodyElement.firstChild;while(node){switch(node.nodeType){case 1:handler.start(node.nodeName.toLowerCase(),attrToMap(node.attributes));break;case 3:handler.chars(node.textContent);break;}
var nextNode;if(!(nextNode=node.firstChild)){if(node.nodeType==1){handler.end(node.nodeName.toLowerCase());}
nextNode=node.nextSibling;if(!nextNode){while(nextNode==null){node=node.parentNode;if(node===inertBodyElement)break;nextNode=node.nextSibling;if(node.nodeType==1){handler.end(node.nodeName.toLowerCase());}}}}
node=nextNode;}
while(node=inertBodyElement.firstChild){inertBodyElement.removeChild(node);}}
function attrToMap(attrs){var map={};for(var i=0,ii=attrs.length;i<ii;i++){var attr=attrs[i];map[attr.name]=attr.value;}
return map;}
function encodeEntities(value){return value.replace(/&/g,'&amp;').replace(SURROGATE_PAIR_REGEXP,function(value){var hi=value.charCodeAt(0);var low=value.charCodeAt(1);return'&#'+(((hi-0xD800)*0x400)+(low-0xDC00)+0x10000)+';';}).replace(NON_ALPHANUMERIC_REGEXP,function(value){return'&#'+value.charCodeAt(0)+';';}).replace(/</g,'&lt;').replace(/>/g,'&gt;');}
function htmlSanitizeWriter(buf,uriValidator){var ignoreCurrentElement=false;var out=angular.bind(buf,buf.push);return{start:function(tag,attrs){tag=angular.lowercase(tag);if(!ignoreCurrentElement&&blockedElements[tag]){ignoreCurrentElement=tag;}
if(!ignoreCurrentElement&&validElements[tag]===true){out('<');out(tag);angular.forEach(attrs,function(value,key){var lkey=angular.lowercase(key);var isImage=(tag==='img'&&lkey==='src')||(lkey==='background');if(validAttrs[lkey]===true&&(uriAttrs[lkey]!==true||uriValidator(value,isImage))){out(' ');out(key);out('="');out(encodeEntities(value));out('"');}});out('>');}},end:function(tag){tag=angular.lowercase(tag);if(!ignoreCurrentElement&&validElements[tag]===true&&voidElements[tag]!==true){out('</');out(tag);out('>');}
if(tag==ignoreCurrentElement){ignoreCurrentElement=false;}},chars:function(chars){if(!ignoreCurrentElement){out(encodeEntities(chars));}}};}
function stripCustomNsAttrs(node){if(node.nodeType===Node.ELEMENT_NODE){var attrs=node.attributes;for(var i=0,l=attrs.length;i<l;i++){var attrNode=attrs[i];var attrName=attrNode.name.toLowerCase();if(attrName==='xmlns:ns1'||attrName.indexOf('ns1:')===0){node.removeAttributeNode(attrNode);i--;l--;}}}
var nextNode=node.firstChild;if(nextNode){stripCustomNsAttrs(nextNode);}
nextNode=node.nextSibling;if(nextNode){stripCustomNsAttrs(nextNode);}}
angular.module('ngSanitize',[]).provider('$sanitize',$SanitizeProvider);angular.module('ngSanitize').filter('linky',['$sanitize',function($sanitize){var LINKY_URL_REGEXP=/((ftp|https?):\/\/|(www\.)|(mailto:)?[A-Za-z0-9._%+-]+@)\S*[^\s.;,(){}<>"\u201d\u2019]/i,MAILTO_REGEXP=/^mailto:/i;return function(text,target,attributes){if(!text)return text;var match;var raw=text;var html=[];var url;var i;while((match=raw.match(LINKY_URL_REGEXP))){url=match[0];if(!match[2]&&!match[4]){url=(match[3]?'http://':'mailto:')+url;}
i=match.index;addText(raw.substr(0,i));addLink(url,match[0].replace(MAILTO_REGEXP,''));raw=raw.substring(i+match[0].length);}
addText(raw);return $sanitize(html.join(''));function addText(text){if(!text){return;}
html.push(sanitizeText(text));}
function addLink(url,text){var key;html.push('<a ');if(angular.isFunction(attributes)){attributes=attributes(url);}
if(angular.isObject(attributes)){for(key in attributes){html.push(key+'="'+attributes[key]+'" ');}}else{attributes={};}
if(angular.isDefined(target)&&!('target'in attributes)){html.push('target="',target,'" ');}
html.push('href="',url.replace(/"/g,'&quot;'),'">');addText(text);html.push('</a>');}};}]);})(window,window.angular);;(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define(factory):global.moment=factory()}(this,(function(){'use strict';var hookCallback;function hooks(){return hookCallback.apply(null,arguments);}
function setHookCallback(callback){hookCallback=callback;}
function isArray(input){return(input instanceof Array||Object.prototype.toString.call(input)==='[object Array]');}
function isObject(input){return(input!=null&&Object.prototype.toString.call(input)==='[object Object]');}
function hasOwnProp(a,b){return Object.prototype.hasOwnProperty.call(a,b);}
function isObjectEmpty(obj){if(Object.getOwnPropertyNames){return Object.getOwnPropertyNames(obj).length===0;}else{var k;for(k in obj){if(hasOwnProp(obj,k)){return false;}}
return true;}}
function isUndefined(input){return input===void 0;}
function isNumber(input){return(typeof input==='number'||Object.prototype.toString.call(input)==='[object Number]');}
function isDate(input){return(input instanceof Date||Object.prototype.toString.call(input)==='[object Date]');}
function map(arr,fn){var res=[],i,arrLen=arr.length;for(i=0;i<arrLen;++i){res.push(fn(arr[i],i));}
return res;}
function extend(a,b){for(var i in b){if(hasOwnProp(b,i)){a[i]=b[i];}}
if(hasOwnProp(b,'toString')){a.toString=b.toString;}
if(hasOwnProp(b,'valueOf')){a.valueOf=b.valueOf;}
return a;}
function createUTC(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,true).utc();}
function defaultParsingFlags(){return{empty:false,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:false,invalidEra:null,invalidMonth:null,invalidFormat:false,userInvalidated:false,iso:false,parsedDateParts:[],era:null,meridiem:null,rfc2822:false,weekdayMismatch:false,};}
function getParsingFlags(m){if(m._pf==null){m._pf=defaultParsingFlags();}
return m._pf;}
var some;if(Array.prototype.some){some=Array.prototype.some;}else{some=function(fun){var t=Object(this),len=t.length>>>0,i;for(i=0;i<len;i++){if(i in t&&fun.call(this,t[i],i,t)){return true;}}
return false;};}
function isValid(m){if(m._isValid==null){var flags=getParsingFlags(m),parsedParts=some.call(flags.parsedDateParts,function(i){return i!=null;}),isNowValid=!isNaN(m._d.getTime())&&flags.overflow<0&&!flags.empty&&!flags.invalidEra&&!flags.invalidMonth&&!flags.invalidWeekday&&!flags.weekdayMismatch&&!flags.nullInput&&!flags.invalidFormat&&!flags.userInvalidated&&(!flags.meridiem||(flags.meridiem&&parsedParts));if(m._strict){isNowValid=isNowValid&&flags.charsLeftOver===0&&flags.unusedTokens.length===0&&flags.bigHour===undefined;}
if(Object.isFrozen==null||!Object.isFrozen(m)){m._isValid=isNowValid;}else{return isNowValid;}}
return m._isValid;}
function createInvalid(flags){var m=createUTC(NaN);if(flags!=null){extend(getParsingFlags(m),flags);}else{getParsingFlags(m).userInvalidated=true;}
return m;}
var momentProperties=(hooks.momentProperties=[]),updateInProgress=false;function copyConfig(to,from){var i,prop,val,momentPropertiesLen=momentProperties.length;if(!isUndefined(from._isAMomentObject)){to._isAMomentObject=from._isAMomentObject;}
if(!isUndefined(from._i)){to._i=from._i;}
if(!isUndefined(from._f)){to._f=from._f;}
if(!isUndefined(from._l)){to._l=from._l;}
if(!isUndefined(from._strict)){to._strict=from._strict;}
if(!isUndefined(from._tzm)){to._tzm=from._tzm;}
if(!isUndefined(from._isUTC)){to._isUTC=from._isUTC;}
if(!isUndefined(from._offset)){to._offset=from._offset;}
if(!isUndefined(from._pf)){to._pf=getParsingFlags(from);}
if(!isUndefined(from._locale)){to._locale=from._locale;}
if(momentPropertiesLen>0){for(i=0;i<momentPropertiesLen;i++){prop=momentProperties[i];val=from[prop];if(!isUndefined(val)){to[prop]=val;}}}
return to;}
function Moment(config){copyConfig(this,config);this._d=new Date(config._d!=null?config._d.getTime():NaN);if(!this.isValid()){this._d=new Date(NaN);}
if(updateInProgress===false){updateInProgress=true;hooks.updateOffset(this);updateInProgress=false;}}
function isMoment(obj){return(obj instanceof Moment||(obj!=null&&obj._isAMomentObject!=null));}
function warn(msg){if(hooks.suppressDeprecationWarnings===false&&typeof console!=='undefined'&&console.warn){console.warn('Deprecation warning: '+msg);}}
function deprecate(msg,fn){var firstTime=true;return extend(function(){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(null,msg);}
if(firstTime){var args=[],arg,i,key,argLen=arguments.length;for(i=0;i<argLen;i++){arg='';if(typeof arguments[i]==='object'){arg+='\n['+i+'] ';for(key in arguments[0]){if(hasOwnProp(arguments[0],key)){arg+=key+': '+arguments[0][key]+', ';}}
arg=arg.slice(0,-2);}else{arg=arguments[i];}
args.push(arg);}
warn(msg+'\nArguments: '+
Array.prototype.slice.call(args).join('')+'\n'+
new Error().stack);firstTime=false;}
return fn.apply(this,arguments);},fn);}
var deprecations={};function deprecateSimple(name,msg){if(hooks.deprecationHandler!=null){hooks.deprecationHandler(name,msg);}
if(!deprecations[name]){warn(msg);deprecations[name]=true;}}
hooks.suppressDeprecationWarnings=false;hooks.deprecationHandler=null;function isFunction(input){return((typeof Function!=='undefined'&&input instanceof Function)||Object.prototype.toString.call(input)==='[object Function]');}
function set(config){var prop,i;for(i in config){if(hasOwnProp(config,i)){prop=config[i];if(isFunction(prop)){this[i]=prop;}else{this['_'+i]=prop;}}}
this._config=config;this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+'|'+
/\d{1,2}/.source);}
function mergeConfigs(parentConfig,childConfig){var res=extend({},parentConfig),prop;for(prop in childConfig){if(hasOwnProp(childConfig,prop)){if(isObject(parentConfig[prop])&&isObject(childConfig[prop])){res[prop]={};extend(res[prop],parentConfig[prop]);extend(res[prop],childConfig[prop]);}else if(childConfig[prop]!=null){res[prop]=childConfig[prop];}else{delete res[prop];}}}
for(prop in parentConfig){if(hasOwnProp(parentConfig,prop)&&!hasOwnProp(childConfig,prop)&&isObject(parentConfig[prop])){res[prop]=extend({},res[prop]);}}
return res;}
function Locale(config){if(config!=null){this.set(config);}}
var keys;if(Object.keys){keys=Object.keys;}else{keys=function(obj){var i,res=[];for(i in obj){if(hasOwnProp(obj,i)){res.push(i);}}
return res;};}
var defaultCalendar={sameDay:'[Today at] LT',nextDay:'[Tomorrow at] LT',nextWeek:'dddd [at] LT',lastDay:'[Yesterday at] LT',lastWeek:'[Last] dddd [at] LT',sameElse:'L',};function calendar(key,mom,now){var output=this._calendar[key]||this._calendar['sameElse'];return isFunction(output)?output.call(mom,now):output;}
function zeroFill(number,targetLength,forceSign){var absNumber=''+Math.abs(number),zerosToFill=targetLength-absNumber.length,sign=number>=0;return((sign?(forceSign?'+':''):'-')+
Math.pow(10,Math.max(0,zerosToFill)).toString().substr(1)+
absNumber);}
var formattingTokens=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,localFormattingTokens=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,formatFunctions={},formatTokenFunctions={};function addFormatToken(token,padded,ordinal,callback){var func=callback;if(typeof callback==='string'){func=function(){return this[callback]();};}
if(token){formatTokenFunctions[token]=func;}
if(padded){formatTokenFunctions[padded[0]]=function(){return zeroFill(func.apply(this,arguments),padded[1],padded[2]);};}
if(ordinal){formatTokenFunctions[ordinal]=function(){return this.localeData().ordinal(func.apply(this,arguments),token);};}}
function removeFormattingTokens(input){if(input.match(/\[[\s\S]/)){return input.replace(/^\[|\]$/g,'');}
return input.replace(/\\/g,'');}
function makeFormatFunction(format){var array=format.match(formattingTokens),i,length;for(i=0,length=array.length;i<length;i++){if(formatTokenFunctions[array[i]]){array[i]=formatTokenFunctions[array[i]];}else{array[i]=removeFormattingTokens(array[i]);}}
return function(mom){var output='',i;for(i=0;i<length;i++){output+=isFunction(array[i])?array[i].call(mom,format):array[i];}
return output;};}
function formatMoment(m,format){if(!m.isValid()){return m.localeData().invalidDate();}
format=expandFormat(format,m.localeData());formatFunctions[format]=formatFunctions[format]||makeFormatFunction(format);return formatFunctions[format](m);}
function expandFormat(format,locale){var i=5;function replaceLongDateFormatTokens(input){return locale.longDateFormat(input)||input;}
localFormattingTokens.lastIndex=0;while(i>=0&&localFormattingTokens.test(format)){format=format.replace(localFormattingTokens,replaceLongDateFormatTokens);localFormattingTokens.lastIndex=0;i-=1;}
return format;}
var defaultLongDateFormat={LTS:'h:mm:ss A',LT:'h:mm A',L:'MM/DD/YYYY',LL:'MMMM D, YYYY',LLL:'MMMM D, YYYY h:mm A',LLLL:'dddd, MMMM D, YYYY h:mm A',};function longDateFormat(key){var format=this._longDateFormat[key],formatUpper=this._longDateFormat[key.toUpperCase()];if(format||!formatUpper){return format;}
this._longDateFormat[key]=formatUpper.match(formattingTokens).map(function(tok){if(tok==='MMMM'||tok==='MM'||tok==='DD'||tok==='dddd'){return tok.slice(1);}
return tok;}).join('');return this._longDateFormat[key];}
var defaultInvalidDate='Invalid date';function invalidDate(){return this._invalidDate;}
var defaultOrdinal='%d',defaultDayOfMonthOrdinalParse=/\d{1,2}/;function ordinal(number){return this._ordinal.replace('%d',number);}
var defaultRelativeTime={future:'in %s',past:'%s ago',s:'a few seconds',ss:'%d seconds',m:'a minute',mm:'%d minutes',h:'an hour',hh:'%d hours',d:'a day',dd:'%d days',w:'a week',ww:'%d weeks',M:'a month',MM:'%d months',y:'a year',yy:'%d years',};function relativeTime(number,withoutSuffix,string,isFuture){var output=this._relativeTime[string];return isFunction(output)?output(number,withoutSuffix,string,isFuture):output.replace(/%d/i,number);}
function pastFuture(diff,output){var format=this._relativeTime[diff>0?'future':'past'];return isFunction(format)?format(output):format.replace(/%s/i,output);}
var aliases={};function addUnitAlias(unit,shorthand){var lowerCase=unit.toLowerCase();aliases[lowerCase]=aliases[lowerCase+'s']=aliases[shorthand]=unit;}
function normalizeUnits(units){return typeof units==='string'?aliases[units]||aliases[units.toLowerCase()]:undefined;}
function normalizeObjectUnits(inputObject){var normalizedInput={},normalizedProp,prop;for(prop in inputObject){if(hasOwnProp(inputObject,prop)){normalizedProp=normalizeUnits(prop);if(normalizedProp){normalizedInput[normalizedProp]=inputObject[prop];}}}
return normalizedInput;}
var priorities={};function addUnitPriority(unit,priority){priorities[unit]=priority;}
function getPrioritizedUnits(unitsObj){var units=[],u;for(u in unitsObj){if(hasOwnProp(unitsObj,u)){units.push({unit:u,priority:priorities[u]});}}
units.sort(function(a,b){return a.priority-b.priority;});return units;}
function isLeapYear(year){return(year%4===0&&year%100!==0)||year%400===0;}
function absFloor(number){if(number<0){return Math.ceil(number)||0;}else{return Math.floor(number);}}
function toInt(argumentForCoercion){var coercedNumber=+argumentForCoercion,value=0;if(coercedNumber!==0&&isFinite(coercedNumber)){value=absFloor(coercedNumber);}
return value;}
function makeGetSet(unit,keepTime){return function(value){if(value!=null){set$1(this,unit,value);hooks.updateOffset(this,keepTime);return this;}else{return get(this,unit);}};}
function get(mom,unit){return mom.isValid()?mom._d['get'+(mom._isUTC?'UTC':'')+unit]():NaN;}
function set$1(mom,unit,value){if(mom.isValid()&&!isNaN(value)){if(unit==='FullYear'&&isLeapYear(mom.year())&&mom.month()===1&&mom.date()===29){value=toInt(value);mom._d['set'+(mom._isUTC?'UTC':'')+unit](value,mom.month(),daysInMonth(value,mom.month()));}else{mom._d['set'+(mom._isUTC?'UTC':'')+unit](value);}}}
function stringGet(units){units=normalizeUnits(units);if(isFunction(this[units])){return this[units]();}
return this;}
function stringSet(units,value){if(typeof units==='object'){units=normalizeObjectUnits(units);var prioritized=getPrioritizedUnits(units),i,prioritizedLen=prioritized.length;for(i=0;i<prioritizedLen;i++){this[prioritized[i].unit](units[prioritized[i].unit]);}}else{units=normalizeUnits(units);if(isFunction(this[units])){return this[units](value);}}
return this;}
var match1=/\d/,match2=/\d\d/,match3=/\d{3}/,match4=/\d{4}/,match6=/[+-]?\d{6}/,match1to2=/\d\d?/,match3to4=/\d\d\d\d?/,match5to6=/\d\d\d\d\d\d?/,match1to3=/\d{1,3}/,match1to4=/\d{1,4}/,match1to6=/[+-]?\d{1,6}/,matchUnsigned=/\d+/,matchSigned=/[+-]?\d+/,matchOffset=/Z|[+-]\d\d:?\d\d/gi,matchShortOffset=/Z|[+-]\d\d(?::?\d\d)?/gi,matchTimestamp=/[+-]?\d+(\.\d{1,3})?/,matchWord=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,regexes;regexes={};function addRegexToken(token,regex,strictRegex){regexes[token]=isFunction(regex)?regex:function(isStrict,localeData){return isStrict&&strictRegex?strictRegex:regex;};}
function getParseRegexForToken(token,config){if(!hasOwnProp(regexes,token)){return new RegExp(unescapeFormat(token));}
return regexes[token](config._strict,config._locale);}
function unescapeFormat(s){return regexEscape(s.replace('\\','').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(matched,p1,p2,p3,p4){return p1||p2||p3||p4;}));}
function regexEscape(s){return s.replace(/[-\/\\^$*+?.()|[\]{}]/g,'\\$&');}
var tokens={};function addParseToken(token,callback){var i,func=callback,tokenLen;if(typeof token==='string'){token=[token];}
if(isNumber(callback)){func=function(input,array){array[callback]=toInt(input);};}
tokenLen=token.length;for(i=0;i<tokenLen;i++){tokens[token[i]]=func;}}
function addWeekParseToken(token,callback){addParseToken(token,function(input,array,config,token){config._w=config._w||{};callback(input,config._w,config,token);});}
function addTimeToArrayFromToken(token,input,config){if(input!=null&&hasOwnProp(tokens,token)){tokens[token](input,config._a,config,token);}}
var YEAR=0,MONTH=1,DATE=2,HOUR=3,MINUTE=4,SECOND=5,MILLISECOND=6,WEEK=7,WEEKDAY=8;function mod(n,x){return((n%x)+x)%x;}
var indexOf;if(Array.prototype.indexOf){indexOf=Array.prototype.indexOf;}else{indexOf=function(o){var i;for(i=0;i<this.length;++i){if(this[i]===o){return i;}}
return-1;};}
function daysInMonth(year,month){if(isNaN(year)||isNaN(month)){return NaN;}
var modMonth=mod(month,12);year+=(month-modMonth)/12;return modMonth===1?isLeapYear(year)?29:28:31-((modMonth%7)%2);}
addFormatToken('M',['MM',2],'Mo',function(){return this.month()+1;});addFormatToken('MMM',0,0,function(format){return this.localeData().monthsShort(this,format);});addFormatToken('MMMM',0,0,function(format){return this.localeData().months(this,format);});addUnitAlias('month','M');addUnitPriority('month',8);addRegexToken('M',match1to2);addRegexToken('MM',match1to2,match2);addRegexToken('MMM',function(isStrict,locale){return locale.monthsShortRegex(isStrict);});addRegexToken('MMMM',function(isStrict,locale){return locale.monthsRegex(isStrict);});addParseToken(['M','MM'],function(input,array){array[MONTH]=toInt(input)-1;});addParseToken(['MMM','MMMM'],function(input,array,config,token){var month=config._locale.monthsParse(input,token,config._strict);if(month!=null){array[MONTH]=month;}else{getParsingFlags(config).invalidMonth=input;}});var defaultLocaleMonths='January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),defaultLocaleMonthsShort='Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),MONTHS_IN_FORMAT=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,defaultMonthsShortRegex=matchWord,defaultMonthsRegex=matchWord;function localeMonths(m,format){if(!m){return isArray(this._months)?this._months:this._months['standalone'];}
return isArray(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||MONTHS_IN_FORMAT).test(format)?'format':'standalone'][m.month()];}
function localeMonthsShort(m,format){if(!m){return isArray(this._monthsShort)?this._monthsShort:this._monthsShort['standalone'];}
return isArray(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[MONTHS_IN_FORMAT.test(format)?'format':'standalone'][m.month()];}
function handleStrictParse(monthName,format,strict){var i,ii,mom,llc=monthName.toLocaleLowerCase();if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[];for(i=0;i<12;++i){mom=createUTC([2000,i]);this._shortMonthsParse[i]=this.monthsShort(mom,'').toLocaleLowerCase();this._longMonthsParse[i]=this.months(mom,'').toLocaleLowerCase();}}
if(strict){if(format==='MMM'){ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null;}else{ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null;}}else{if(format==='MMM'){ii=indexOf.call(this._shortMonthsParse,llc);if(ii!==-1){return ii;}
ii=indexOf.call(this._longMonthsParse,llc);return ii!==-1?ii:null;}else{ii=indexOf.call(this._longMonthsParse,llc);if(ii!==-1){return ii;}
ii=indexOf.call(this._shortMonthsParse,llc);return ii!==-1?ii:null;}}}
function localeMonthsParse(monthName,format,strict){var i,mom,regex;if(this._monthsParseExact){return handleStrictParse.call(this,monthName,format,strict);}
if(!this._monthsParse){this._monthsParse=[];this._longMonthsParse=[];this._shortMonthsParse=[];}
for(i=0;i<12;i++){mom=createUTC([2000,i]);if(strict&&!this._longMonthsParse[i]){this._longMonthsParse[i]=new RegExp('^'+this.months(mom,'').replace('.','')+'$','i');this._shortMonthsParse[i]=new RegExp('^'+this.monthsShort(mom,'').replace('.','')+'$','i');}
if(!strict&&!this._monthsParse[i]){regex='^'+this.months(mom,'')+'|^'+this.monthsShort(mom,'');this._monthsParse[i]=new RegExp(regex.replace('.',''),'i');}
if(strict&&format==='MMMM'&&this._longMonthsParse[i].test(monthName)){return i;}else if(strict&&format==='MMM'&&this._shortMonthsParse[i].test(monthName)){return i;}else if(!strict&&this._monthsParse[i].test(monthName)){return i;}}}
function setMonth(mom,value){var dayOfMonth;if(!mom.isValid()){return mom;}
if(typeof value==='string'){if(/^\d+$/.test(value)){value=toInt(value);}else{value=mom.localeData().monthsParse(value);if(!isNumber(value)){return mom;}}}
dayOfMonth=Math.min(mom.date(),daysInMonth(mom.year(),value));mom._d['set'+(mom._isUTC?'UTC':'')+'Month'](value,dayOfMonth);return mom;}
function getSetMonth(value){if(value!=null){setMonth(this,value);hooks.updateOffset(this,true);return this;}else{return get(this,'Month');}}
function getDaysInMonth(){return daysInMonth(this.year(),this.month());}
function monthsShortRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,'_monthsRegex')){computeMonthsParse.call(this);}
if(isStrict){return this._monthsShortStrictRegex;}else{return this._monthsShortRegex;}}else{if(!hasOwnProp(this,'_monthsShortRegex')){this._monthsShortRegex=defaultMonthsShortRegex;}
return this._monthsShortStrictRegex&&isStrict?this._monthsShortStrictRegex:this._monthsShortRegex;}}
function monthsRegex(isStrict){if(this._monthsParseExact){if(!hasOwnProp(this,'_monthsRegex')){computeMonthsParse.call(this);}
if(isStrict){return this._monthsStrictRegex;}else{return this._monthsRegex;}}else{if(!hasOwnProp(this,'_monthsRegex')){this._monthsRegex=defaultMonthsRegex;}
return this._monthsStrictRegex&&isStrict?this._monthsStrictRegex:this._monthsRegex;}}
function computeMonthsParse(){function cmpLenRev(a,b){return b.length-a.length;}
var shortPieces=[],longPieces=[],mixedPieces=[],i,mom;for(i=0;i<12;i++){mom=createUTC([2000,i]);shortPieces.push(this.monthsShort(mom,''));longPieces.push(this.months(mom,''));mixedPieces.push(this.months(mom,''));mixedPieces.push(this.monthsShort(mom,''));}
shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);for(i=0;i<12;i++){shortPieces[i]=regexEscape(shortPieces[i]);longPieces[i]=regexEscape(longPieces[i]);}
for(i=0;i<24;i++){mixedPieces[i]=regexEscape(mixedPieces[i]);}
this._monthsRegex=new RegExp('^('+mixedPieces.join('|')+')','i');this._monthsShortRegex=this._monthsRegex;this._monthsStrictRegex=new RegExp('^('+longPieces.join('|')+')','i');this._monthsShortStrictRegex=new RegExp('^('+shortPieces.join('|')+')','i');}
addFormatToken('Y',0,0,function(){var y=this.year();return y<=9999?zeroFill(y,4):'+'+y;});addFormatToken(0,['YY',2],0,function(){return this.year()%100;});addFormatToken(0,['YYYY',4],0,'year');addFormatToken(0,['YYYYY',5],0,'year');addFormatToken(0,['YYYYYY',6,true],0,'year');addUnitAlias('year','y');addUnitPriority('year',1);addRegexToken('Y',matchSigned);addRegexToken('YY',match1to2,match2);addRegexToken('YYYY',match1to4,match4);addRegexToken('YYYYY',match1to6,match6);addRegexToken('YYYYYY',match1to6,match6);addParseToken(['YYYYY','YYYYYY'],YEAR);addParseToken('YYYY',function(input,array){array[YEAR]=input.length===2?hooks.parseTwoDigitYear(input):toInt(input);});addParseToken('YY',function(input,array){array[YEAR]=hooks.parseTwoDigitYear(input);});addParseToken('Y',function(input,array){array[YEAR]=parseInt(input,10);});function daysInYear(year){return isLeapYear(year)?366:365;}
hooks.parseTwoDigitYear=function(input){return toInt(input)+(toInt(input)>68?1900:2000);};var getSetYear=makeGetSet('FullYear',true);function getIsLeapYear(){return isLeapYear(this.year());}
function createDate(y,m,d,h,M,s,ms){var date;if(y<100&&y>=0){date=new Date(y+400,m,d,h,M,s,ms);if(isFinite(date.getFullYear())){date.setFullYear(y);}}else{date=new Date(y,m,d,h,M,s,ms);}
return date;}
function createUTCDate(y){var date,args;if(y<100&&y>=0){args=Array.prototype.slice.call(arguments);args[0]=y+400;date=new Date(Date.UTC.apply(null,args));if(isFinite(date.getUTCFullYear())){date.setUTCFullYear(y);}}else{date=new Date(Date.UTC.apply(null,arguments));}
return date;}
function firstWeekOffset(year,dow,doy){var
fwd=7+dow-doy,fwdlw=(7+createUTCDate(year,0,fwd).getUTCDay()-dow)%7;return-fwdlw+fwd-1;}
function dayOfYearFromWeeks(year,week,weekday,dow,doy){var localWeekday=(7+weekday-dow)%7,weekOffset=firstWeekOffset(year,dow,doy),dayOfYear=1+7*(week-1)+localWeekday+weekOffset,resYear,resDayOfYear;if(dayOfYear<=0){resYear=year-1;resDayOfYear=daysInYear(resYear)+dayOfYear;}else if(dayOfYear>daysInYear(year)){resYear=year+1;resDayOfYear=dayOfYear-daysInYear(year);}else{resYear=year;resDayOfYear=dayOfYear;}
return{year:resYear,dayOfYear:resDayOfYear,};}
function weekOfYear(mom,dow,doy){var weekOffset=firstWeekOffset(mom.year(),dow,doy),week=Math.floor((mom.dayOfYear()-weekOffset-1)/7)+1,resWeek,resYear;if(week<1){resYear=mom.year()-1;resWeek=week+weeksInYear(resYear,dow,doy);}else if(week>weeksInYear(mom.year(),dow,doy)){resWeek=week-weeksInYear(mom.year(),dow,doy);resYear=mom.year()+1;}else{resYear=mom.year();resWeek=week;}
return{week:resWeek,year:resYear,};}
function weeksInYear(year,dow,doy){var weekOffset=firstWeekOffset(year,dow,doy),weekOffsetNext=firstWeekOffset(year+1,dow,doy);return(daysInYear(year)-weekOffset+weekOffsetNext)/7;}
addFormatToken('w',['ww',2],'wo','week');addFormatToken('W',['WW',2],'Wo','isoWeek');addUnitAlias('week','w');addUnitAlias('isoWeek','W');addUnitPriority('week',5);addUnitPriority('isoWeek',5);addRegexToken('w',match1to2);addRegexToken('ww',match1to2,match2);addRegexToken('W',match1to2);addRegexToken('WW',match1to2,match2);addWeekParseToken(['w','ww','W','WW'],function(input,week,config,token){week[token.substr(0,1)]=toInt(input);});function localeWeek(mom){return weekOfYear(mom,this._week.dow,this._week.doy).week;}
var defaultLocaleWeek={dow:0,doy:6,};function localeFirstDayOfWeek(){return this._week.dow;}
function localeFirstDayOfYear(){return this._week.doy;}
function getSetWeek(input){var week=this.localeData().week(this);return input==null?week:this.add((input-week)*7,'d');}
function getSetISOWeek(input){var week=weekOfYear(this,1,4).week;return input==null?week:this.add((input-week)*7,'d');}
addFormatToken('d',0,'do','day');addFormatToken('dd',0,0,function(format){return this.localeData().weekdaysMin(this,format);});addFormatToken('ddd',0,0,function(format){return this.localeData().weekdaysShort(this,format);});addFormatToken('dddd',0,0,function(format){return this.localeData().weekdays(this,format);});addFormatToken('e',0,0,'weekday');addFormatToken('E',0,0,'isoWeekday');addUnitAlias('day','d');addUnitAlias('weekday','e');addUnitAlias('isoWeekday','E');addUnitPriority('day',11);addUnitPriority('weekday',11);addUnitPriority('isoWeekday',11);addRegexToken('d',match1to2);addRegexToken('e',match1to2);addRegexToken('E',match1to2);addRegexToken('dd',function(isStrict,locale){return locale.weekdaysMinRegex(isStrict);});addRegexToken('ddd',function(isStrict,locale){return locale.weekdaysShortRegex(isStrict);});addRegexToken('dddd',function(isStrict,locale){return locale.weekdaysRegex(isStrict);});addWeekParseToken(['dd','ddd','dddd'],function(input,week,config,token){var weekday=config._locale.weekdaysParse(input,token,config._strict);if(weekday!=null){week.d=weekday;}else{getParsingFlags(config).invalidWeekday=input;}});addWeekParseToken(['d','e','E'],function(input,week,config,token){week[token]=toInt(input);});function parseWeekday(input,locale){if(typeof input!=='string'){return input;}
if(!isNaN(input)){return parseInt(input,10);}
input=locale.weekdaysParse(input);if(typeof input==='number'){return input;}
return null;}
function parseIsoWeekday(input,locale){if(typeof input==='string'){return locale.weekdaysParse(input)%7||7;}
return isNaN(input)?null:input;}
function shiftWeekdays(ws,n){return ws.slice(n,7).concat(ws.slice(0,n));}
var defaultLocaleWeekdays='Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),defaultLocaleWeekdaysShort='Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),defaultLocaleWeekdaysMin='Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),defaultWeekdaysRegex=matchWord,defaultWeekdaysShortRegex=matchWord,defaultWeekdaysMinRegex=matchWord;function localeWeekdays(m,format){var weekdays=isArray(this._weekdays)?this._weekdays:this._weekdays[m&&m!==true&&this._weekdays.isFormat.test(format)?'format':'standalone'];return m===true?shiftWeekdays(weekdays,this._week.dow):m?weekdays[m.day()]:weekdays;}
function localeWeekdaysShort(m){return m===true?shiftWeekdays(this._weekdaysShort,this._week.dow):m?this._weekdaysShort[m.day()]:this._weekdaysShort;}
function localeWeekdaysMin(m){return m===true?shiftWeekdays(this._weekdaysMin,this._week.dow):m?this._weekdaysMin[m.day()]:this._weekdaysMin;}
function handleStrictParse$1(weekdayName,format,strict){var i,ii,mom,llc=weekdayName.toLocaleLowerCase();if(!this._weekdaysParse){this._weekdaysParse=[];this._shortWeekdaysParse=[];this._minWeekdaysParse=[];for(i=0;i<7;++i){mom=createUTC([2000,1]).day(i);this._minWeekdaysParse[i]=this.weekdaysMin(mom,'').toLocaleLowerCase();this._shortWeekdaysParse[i]=this.weekdaysShort(mom,'').toLocaleLowerCase();this._weekdaysParse[i]=this.weekdays(mom,'').toLocaleLowerCase();}}
if(strict){if(format==='dddd'){ii=indexOf.call(this._weekdaysParse,llc);return ii!==-1?ii:null;}else if(format==='ddd'){ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null;}else{ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null;}}else{if(format==='dddd'){ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii;}
ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii;}
ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null;}else if(format==='ddd'){ii=indexOf.call(this._shortWeekdaysParse,llc);if(ii!==-1){return ii;}
ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii;}
ii=indexOf.call(this._minWeekdaysParse,llc);return ii!==-1?ii:null;}else{ii=indexOf.call(this._minWeekdaysParse,llc);if(ii!==-1){return ii;}
ii=indexOf.call(this._weekdaysParse,llc);if(ii!==-1){return ii;}
ii=indexOf.call(this._shortWeekdaysParse,llc);return ii!==-1?ii:null;}}}
function localeWeekdaysParse(weekdayName,format,strict){var i,mom,regex;if(this._weekdaysParseExact){return handleStrictParse$1.call(this,weekdayName,format,strict);}
if(!this._weekdaysParse){this._weekdaysParse=[];this._minWeekdaysParse=[];this._shortWeekdaysParse=[];this._fullWeekdaysParse=[];}
for(i=0;i<7;i++){mom=createUTC([2000,1]).day(i);if(strict&&!this._fullWeekdaysParse[i]){this._fullWeekdaysParse[i]=new RegExp('^'+this.weekdays(mom,'').replace('.','\\.?')+'$','i');this._shortWeekdaysParse[i]=new RegExp('^'+this.weekdaysShort(mom,'').replace('.','\\.?')+'$','i');this._minWeekdaysParse[i]=new RegExp('^'+this.weekdaysMin(mom,'').replace('.','\\.?')+'$','i');}
if(!this._weekdaysParse[i]){regex='^'+
this.weekdays(mom,'')+'|^'+
this.weekdaysShort(mom,'')+'|^'+
this.weekdaysMin(mom,'');this._weekdaysParse[i]=new RegExp(regex.replace('.',''),'i');}
if(strict&&format==='dddd'&&this._fullWeekdaysParse[i].test(weekdayName)){return i;}else if(strict&&format==='ddd'&&this._shortWeekdaysParse[i].test(weekdayName)){return i;}else if(strict&&format==='dd'&&this._minWeekdaysParse[i].test(weekdayName)){return i;}else if(!strict&&this._weekdaysParse[i].test(weekdayName)){return i;}}}
function getSetDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN;}
var day=this._isUTC?this._d.getUTCDay():this._d.getDay();if(input!=null){input=parseWeekday(input,this.localeData());return this.add(input-day,'d');}else{return day;}}
function getSetLocaleDayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN;}
var weekday=(this.day()+7-this.localeData()._week.dow)%7;return input==null?weekday:this.add(input-weekday,'d');}
function getSetISODayOfWeek(input){if(!this.isValid()){return input!=null?this:NaN;}
if(input!=null){var weekday=parseIsoWeekday(input,this.localeData());return this.day(this.day()%7?weekday:weekday-7);}else{return this.day()||7;}}
function weekdaysRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,'_weekdaysRegex')){computeWeekdaysParse.call(this);}
if(isStrict){return this._weekdaysStrictRegex;}else{return this._weekdaysRegex;}}else{if(!hasOwnProp(this,'_weekdaysRegex')){this._weekdaysRegex=defaultWeekdaysRegex;}
return this._weekdaysStrictRegex&&isStrict?this._weekdaysStrictRegex:this._weekdaysRegex;}}
function weekdaysShortRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,'_weekdaysRegex')){computeWeekdaysParse.call(this);}
if(isStrict){return this._weekdaysShortStrictRegex;}else{return this._weekdaysShortRegex;}}else{if(!hasOwnProp(this,'_weekdaysShortRegex')){this._weekdaysShortRegex=defaultWeekdaysShortRegex;}
return this._weekdaysShortStrictRegex&&isStrict?this._weekdaysShortStrictRegex:this._weekdaysShortRegex;}}
function weekdaysMinRegex(isStrict){if(this._weekdaysParseExact){if(!hasOwnProp(this,'_weekdaysRegex')){computeWeekdaysParse.call(this);}
if(isStrict){return this._weekdaysMinStrictRegex;}else{return this._weekdaysMinRegex;}}else{if(!hasOwnProp(this,'_weekdaysMinRegex')){this._weekdaysMinRegex=defaultWeekdaysMinRegex;}
return this._weekdaysMinStrictRegex&&isStrict?this._weekdaysMinStrictRegex:this._weekdaysMinRegex;}}
function computeWeekdaysParse(){function cmpLenRev(a,b){return b.length-a.length;}
var minPieces=[],shortPieces=[],longPieces=[],mixedPieces=[],i,mom,minp,shortp,longp;for(i=0;i<7;i++){mom=createUTC([2000,1]).day(i);minp=regexEscape(this.weekdaysMin(mom,''));shortp=regexEscape(this.weekdaysShort(mom,''));longp=regexEscape(this.weekdays(mom,''));minPieces.push(minp);shortPieces.push(shortp);longPieces.push(longp);mixedPieces.push(minp);mixedPieces.push(shortp);mixedPieces.push(longp);}
minPieces.sort(cmpLenRev);shortPieces.sort(cmpLenRev);longPieces.sort(cmpLenRev);mixedPieces.sort(cmpLenRev);this._weekdaysRegex=new RegExp('^('+mixedPieces.join('|')+')','i');this._weekdaysShortRegex=this._weekdaysRegex;this._weekdaysMinRegex=this._weekdaysRegex;this._weekdaysStrictRegex=new RegExp('^('+longPieces.join('|')+')','i');this._weekdaysShortStrictRegex=new RegExp('^('+shortPieces.join('|')+')','i');this._weekdaysMinStrictRegex=new RegExp('^('+minPieces.join('|')+')','i');}
function hFormat(){return this.hours()%12||12;}
function kFormat(){return this.hours()||24;}
addFormatToken('H',['HH',2],0,'hour');addFormatToken('h',['hh',2],0,hFormat);addFormatToken('k',['kk',2],0,kFormat);addFormatToken('hmm',0,0,function(){return''+hFormat.apply(this)+zeroFill(this.minutes(),2);});addFormatToken('hmmss',0,0,function(){return(''+
hFormat.apply(this)+
zeroFill(this.minutes(),2)+
zeroFill(this.seconds(),2));});addFormatToken('Hmm',0,0,function(){return''+this.hours()+zeroFill(this.minutes(),2);});addFormatToken('Hmmss',0,0,function(){return(''+
this.hours()+
zeroFill(this.minutes(),2)+
zeroFill(this.seconds(),2));});function meridiem(token,lowercase){addFormatToken(token,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),lowercase);});}
meridiem('a',true);meridiem('A',false);addUnitAlias('hour','h');addUnitPriority('hour',13);function matchMeridiem(isStrict,locale){return locale._meridiemParse;}
addRegexToken('a',matchMeridiem);addRegexToken('A',matchMeridiem);addRegexToken('H',match1to2);addRegexToken('h',match1to2);addRegexToken('k',match1to2);addRegexToken('HH',match1to2,match2);addRegexToken('hh',match1to2,match2);addRegexToken('kk',match1to2,match2);addRegexToken('hmm',match3to4);addRegexToken('hmmss',match5to6);addRegexToken('Hmm',match3to4);addRegexToken('Hmmss',match5to6);addParseToken(['H','HH'],HOUR);addParseToken(['k','kk'],function(input,array,config){var kInput=toInt(input);array[HOUR]=kInput===24?0:kInput;});addParseToken(['a','A'],function(input,array,config){config._isPm=config._locale.isPM(input);config._meridiem=input;});addParseToken(['h','hh'],function(input,array,config){array[HOUR]=toInt(input);getParsingFlags(config).bigHour=true;});addParseToken('hmm',function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos));getParsingFlags(config).bigHour=true;});addParseToken('hmmss',function(input,array,config){var pos1=input.length-4,pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2));getParsingFlags(config).bigHour=true;});addParseToken('Hmm',function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos));array[MINUTE]=toInt(input.substr(pos));});addParseToken('Hmmss',function(input,array,config){var pos1=input.length-4,pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1));array[MINUTE]=toInt(input.substr(pos1,2));array[SECOND]=toInt(input.substr(pos2));});function localeIsPM(input){return(input+'').toLowerCase().charAt(0)==='p';}
var defaultLocaleMeridiemParse=/[ap]\.?m?\.?/i,getSetHour=makeGetSet('Hours',true);function localeMeridiem(hours,minutes,isLower){if(hours>11){return isLower?'pm':'PM';}else{return isLower?'am':'AM';}}
var baseConfig={calendar:defaultCalendar,longDateFormat:defaultLongDateFormat,invalidDate:defaultInvalidDate,ordinal:defaultOrdinal,dayOfMonthOrdinalParse:defaultDayOfMonthOrdinalParse,relativeTime:defaultRelativeTime,months:defaultLocaleMonths,monthsShort:defaultLocaleMonthsShort,week:defaultLocaleWeek,weekdays:defaultLocaleWeekdays,weekdaysMin:defaultLocaleWeekdaysMin,weekdaysShort:defaultLocaleWeekdaysShort,meridiemParse:defaultLocaleMeridiemParse,};var locales={},localeFamilies={},globalLocale;function commonPrefix(arr1,arr2){var i,minl=Math.min(arr1.length,arr2.length);for(i=0;i<minl;i+=1){if(arr1[i]!==arr2[i]){return i;}}
return minl;}
function normalizeLocale(key){return key?key.toLowerCase().replace('_','-'):key;}
function chooseLocale(names){var i=0,j,next,locale,split;while(i<names.length){split=normalizeLocale(names[i]).split('-');j=split.length;next=normalizeLocale(names[i+1]);next=next?next.split('-'):null;while(j>0){locale=loadLocale(split.slice(0,j).join('-'));if(locale){return locale;}
if(next&&next.length>=j&&commonPrefix(split,next)>=j-1){break;}
j--;}
i++;}
return globalLocale;}
function isLocaleNameSane(name){return name.match('^[^/\\\\]*$')!=null;}
function loadLocale(name){var oldLocale=null,aliasedRequire;if(locales[name]===undefined&&typeof module!=='undefined'&&module&&module.exports&&isLocaleNameSane(name)){try{oldLocale=globalLocale._abbr;aliasedRequire=require;aliasedRequire('./locale/'+name);getSetGlobalLocale(oldLocale);}catch(e){locales[name]=null;}}
return locales[name];}
function getSetGlobalLocale(key,values){var data;if(key){if(isUndefined(values)){data=getLocale(key);}else{data=defineLocale(key,values);}
if(data){globalLocale=data;}else{if(typeof console!=='undefined'&&console.warn){console.warn('Locale '+key+' not found. Did you forget to load it?');}}}
return globalLocale._abbr;}
function defineLocale(name,config){if(config!==null){var locale,parentConfig=baseConfig;config.abbr=name;if(locales[name]!=null){deprecateSimple('defineLocaleOverride','use moment.updateLocale(localeName, config) to change '+'an existing locale. moment.defineLocale(localeName, '+'config) should only be used for creating a new locale '+'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');parentConfig=locales[name]._config;}else if(config.parentLocale!=null){if(locales[config.parentLocale]!=null){parentConfig=locales[config.parentLocale]._config;}else{locale=loadLocale(config.parentLocale);if(locale!=null){parentConfig=locale._config;}else{if(!localeFamilies[config.parentLocale]){localeFamilies[config.parentLocale]=[];}
localeFamilies[config.parentLocale].push({name:name,config:config,});return null;}}}
locales[name]=new Locale(mergeConfigs(parentConfig,config));if(localeFamilies[name]){localeFamilies[name].forEach(function(x){defineLocale(x.name,x.config);});}
getSetGlobalLocale(name);return locales[name];}else{delete locales[name];return null;}}
function updateLocale(name,config){if(config!=null){var locale,tmpLocale,parentConfig=baseConfig;if(locales[name]!=null&&locales[name].parentLocale!=null){locales[name].set(mergeConfigs(locales[name]._config,config));}else{tmpLocale=loadLocale(name);if(tmpLocale!=null){parentConfig=tmpLocale._config;}
config=mergeConfigs(parentConfig,config);if(tmpLocale==null){config.abbr=name;}
locale=new Locale(config);locale.parentLocale=locales[name];locales[name]=locale;}
getSetGlobalLocale(name);}else{if(locales[name]!=null){if(locales[name].parentLocale!=null){locales[name]=locales[name].parentLocale;if(name===getSetGlobalLocale()){getSetGlobalLocale(name);}}else if(locales[name]!=null){delete locales[name];}}}
return locales[name];}
function getLocale(key){var locale;if(key&&key._locale&&key._locale._abbr){key=key._locale._abbr;}
if(!key){return globalLocale;}
if(!isArray(key)){locale=loadLocale(key);if(locale){return locale;}
key=[key];}
return chooseLocale(key);}
function listLocales(){return keys(locales);}
function checkOverflow(m){var overflow,a=m._a;if(a&&getParsingFlags(m).overflow===-2){overflow=a[MONTH]<0||a[MONTH]>11?MONTH:a[DATE]<1||a[DATE]>daysInMonth(a[YEAR],a[MONTH])?DATE:a[HOUR]<0||a[HOUR]>24||(a[HOUR]===24&&(a[MINUTE]!==0||a[SECOND]!==0||a[MILLISECOND]!==0))?HOUR:a[MINUTE]<0||a[MINUTE]>59?MINUTE:a[SECOND]<0||a[SECOND]>59?SECOND:a[MILLISECOND]<0||a[MILLISECOND]>999?MILLISECOND:-1;if(getParsingFlags(m)._overflowDayOfYear&&(overflow<YEAR||overflow>DATE)){overflow=DATE;}
if(getParsingFlags(m)._overflowWeeks&&overflow===-1){overflow=WEEK;}
if(getParsingFlags(m)._overflowWeekday&&overflow===-1){overflow=WEEKDAY;}
getParsingFlags(m).overflow=overflow;}
return m;}
var extendedIsoRegex=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,basicIsoRegex=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,tzRegex=/Z|[+-]\d\d(?::?\d\d)?/,isoDates=[['YYYYYY-MM-DD',/[+-]\d{6}-\d\d-\d\d/],['YYYY-MM-DD',/\d{4}-\d\d-\d\d/],['GGGG-[W]WW-E',/\d{4}-W\d\d-\d/],['GGGG-[W]WW',/\d{4}-W\d\d/,false],['YYYY-DDD',/\d{4}-\d{3}/],['YYYY-MM',/\d{4}-\d\d/,false],['YYYYYYMMDD',/[+-]\d{10}/],['YYYYMMDD',/\d{8}/],['GGGG[W]WWE',/\d{4}W\d{3}/],['GGGG[W]WW',/\d{4}W\d{2}/,false],['YYYYDDD',/\d{7}/],['YYYYMM',/\d{6}/,false],['YYYY',/\d{4}/,false],],isoTimes=[['HH:mm:ss.SSSS',/\d\d:\d\d:\d\d\.\d+/],['HH:mm:ss,SSSS',/\d\d:\d\d:\d\d,\d+/],['HH:mm:ss',/\d\d:\d\d:\d\d/],['HH:mm',/\d\d:\d\d/],['HHmmss.SSSS',/\d\d\d\d\d\d\.\d+/],['HHmmss,SSSS',/\d\d\d\d\d\d,\d+/],['HHmmss',/\d\d\d\d\d\d/],['HHmm',/\d\d\d\d/],['HH',/\d\d/],],aspNetJsonRegex=/^\/?Date\((-?\d+)/i,rfc2822=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,obsOffsets={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60,};function configFromISO(config){var i,l,string=config._i,match=extendedIsoRegex.exec(string)||basicIsoRegex.exec(string),allowTime,dateFormat,timeFormat,tzFormat,isoDatesLen=isoDates.length,isoTimesLen=isoTimes.length;if(match){getParsingFlags(config).iso=true;for(i=0,l=isoDatesLen;i<l;i++){if(isoDates[i][1].exec(match[1])){dateFormat=isoDates[i][0];allowTime=isoDates[i][2]!==false;break;}}
if(dateFormat==null){config._isValid=false;return;}
if(match[3]){for(i=0,l=isoTimesLen;i<l;i++){if(isoTimes[i][1].exec(match[3])){timeFormat=(match[2]||' ')+isoTimes[i][0];break;}}
if(timeFormat==null){config._isValid=false;return;}}
if(!allowTime&&timeFormat!=null){config._isValid=false;return;}
if(match[4]){if(tzRegex.exec(match[4])){tzFormat='Z';}else{config._isValid=false;return;}}
config._f=dateFormat+(timeFormat||'')+(tzFormat||'');configFromStringAndFormat(config);}else{config._isValid=false;}}
function extractFromRFC2822Strings(yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr){var result=[untruncateYear(yearStr),defaultLocaleMonthsShort.indexOf(monthStr),parseInt(dayStr,10),parseInt(hourStr,10),parseInt(minuteStr,10),];if(secondStr){result.push(parseInt(secondStr,10));}
return result;}
function untruncateYear(yearStr){var year=parseInt(yearStr,10);if(year<=49){return 2000+year;}else if(year<=999){return 1900+year;}
return year;}
function preprocessRFC2822(s){return s.replace(/\([^()]*\)|[\n\t]/g,' ').replace(/(\s\s+)/g,' ').replace(/^\s\s*/,'').replace(/\s\s*$/,'');}
function checkWeekday(weekdayStr,parsedInput,config){if(weekdayStr){var weekdayProvided=defaultLocaleWeekdaysShort.indexOf(weekdayStr),weekdayActual=new Date(parsedInput[0],parsedInput[1],parsedInput[2]).getDay();if(weekdayProvided!==weekdayActual){getParsingFlags(config).weekdayMismatch=true;config._isValid=false;return false;}}
return true;}
function calculateOffset(obsOffset,militaryOffset,numOffset){if(obsOffset){return obsOffsets[obsOffset];}else if(militaryOffset){return 0;}else{var hm=parseInt(numOffset,10),m=hm%100,h=(hm-m)/100;return h*60+m;}}
function configFromRFC2822(config){var match=rfc2822.exec(preprocessRFC2822(config._i)),parsedArray;if(match){parsedArray=extractFromRFC2822Strings(match[4],match[3],match[2],match[5],match[6],match[7]);if(!checkWeekday(match[1],parsedArray,config)){return;}
config._a=parsedArray;config._tzm=calculateOffset(match[8],match[9],match[10]);config._d=createUTCDate.apply(null,config._a);config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm);getParsingFlags(config).rfc2822=true;}else{config._isValid=false;}}
function configFromString(config){var matched=aspNetJsonRegex.exec(config._i);if(matched!==null){config._d=new Date(+matched[1]);return;}
configFromISO(config);if(config._isValid===false){delete config._isValid;}else{return;}
configFromRFC2822(config);if(config._isValid===false){delete config._isValid;}else{return;}
if(config._strict){config._isValid=false;}else{hooks.createFromInputFallback(config);}}
hooks.createFromInputFallback=deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), '+'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are '+'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',function(config){config._d=new Date(config._i+(config._useUTC?' UTC':''));});function defaults(a,b,c){if(a!=null){return a;}
if(b!=null){return b;}
return c;}
function currentDateArray(config){var nowValue=new Date(hooks.now());if(config._useUTC){return[nowValue.getUTCFullYear(),nowValue.getUTCMonth(),nowValue.getUTCDate(),];}
return[nowValue.getFullYear(),nowValue.getMonth(),nowValue.getDate()];}
function configFromArray(config){var i,date,input=[],currentDate,expectedWeekday,yearToUse;if(config._d){return;}
currentDate=currentDateArray(config);if(config._w&&config._a[DATE]==null&&config._a[MONTH]==null){dayOfYearFromWeekInfo(config);}
if(config._dayOfYear!=null){yearToUse=defaults(config._a[YEAR],currentDate[YEAR]);if(config._dayOfYear>daysInYear(yearToUse)||config._dayOfYear===0){getParsingFlags(config)._overflowDayOfYear=true;}
date=createUTCDate(yearToUse,0,config._dayOfYear);config._a[MONTH]=date.getUTCMonth();config._a[DATE]=date.getUTCDate();}
for(i=0;i<3&&config._a[i]==null;++i){config._a[i]=input[i]=currentDate[i];}
for(;i<7;i++){config._a[i]=input[i]=config._a[i]==null?(i===2?1:0):config._a[i];}
if(config._a[HOUR]===24&&config._a[MINUTE]===0&&config._a[SECOND]===0&&config._a[MILLISECOND]===0){config._nextDay=true;config._a[HOUR]=0;}
config._d=(config._useUTC?createUTCDate:createDate).apply(null,input);expectedWeekday=config._useUTC?config._d.getUTCDay():config._d.getDay();if(config._tzm!=null){config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm);}
if(config._nextDay){config._a[HOUR]=24;}
if(config._w&&typeof config._w.d!=='undefined'&&config._w.d!==expectedWeekday){getParsingFlags(config).weekdayMismatch=true;}}
function dayOfYearFromWeekInfo(config){var w,weekYear,week,weekday,dow,doy,temp,weekdayOverflow,curWeek;w=config._w;if(w.GG!=null||w.W!=null||w.E!=null){dow=1;doy=4;weekYear=defaults(w.GG,config._a[YEAR],weekOfYear(createLocal(),1,4).year);week=defaults(w.W,1);weekday=defaults(w.E,1);if(weekday<1||weekday>7){weekdayOverflow=true;}}else{dow=config._locale._week.dow;doy=config._locale._week.doy;curWeek=weekOfYear(createLocal(),dow,doy);weekYear=defaults(w.gg,config._a[YEAR],curWeek.year);week=defaults(w.w,curWeek.week);if(w.d!=null){weekday=w.d;if(weekday<0||weekday>6){weekdayOverflow=true;}}else if(w.e!=null){weekday=w.e+dow;if(w.e<0||w.e>6){weekdayOverflow=true;}}else{weekday=dow;}}
if(week<1||week>weeksInYear(weekYear,dow,doy)){getParsingFlags(config)._overflowWeeks=true;}else if(weekdayOverflow!=null){getParsingFlags(config)._overflowWeekday=true;}else{temp=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy);config._a[YEAR]=temp.year;config._dayOfYear=temp.dayOfYear;}}
hooks.ISO_8601=function(){};hooks.RFC_2822=function(){};function configFromStringAndFormat(config){if(config._f===hooks.ISO_8601){configFromISO(config);return;}
if(config._f===hooks.RFC_2822){configFromRFC2822(config);return;}
config._a=[];getParsingFlags(config).empty=true;var string=''+config._i,i,parsedInput,tokens,token,skipped,stringLength=string.length,totalParsedInputLength=0,era,tokenLen;tokens=expandFormat(config._f,config._locale).match(formattingTokens)||[];tokenLen=tokens.length;for(i=0;i<tokenLen;i++){token=tokens[i];parsedInput=(string.match(getParseRegexForToken(token,config))||[])[0];if(parsedInput){skipped=string.substr(0,string.indexOf(parsedInput));if(skipped.length>0){getParsingFlags(config).unusedInput.push(skipped);}
string=string.slice(string.indexOf(parsedInput)+parsedInput.length);totalParsedInputLength+=parsedInput.length;}
if(formatTokenFunctions[token]){if(parsedInput){getParsingFlags(config).empty=false;}else{getParsingFlags(config).unusedTokens.push(token);}
addTimeToArrayFromToken(token,parsedInput,config);}else if(config._strict&&!parsedInput){getParsingFlags(config).unusedTokens.push(token);}}
getParsingFlags(config).charsLeftOver=stringLength-totalParsedInputLength;if(string.length>0){getParsingFlags(config).unusedInput.push(string);}
if(config._a[HOUR]<=12&&getParsingFlags(config).bigHour===true&&config._a[HOUR]>0){getParsingFlags(config).bigHour=undefined;}
getParsingFlags(config).parsedDateParts=config._a.slice(0);getParsingFlags(config).meridiem=config._meridiem;config._a[HOUR]=meridiemFixWrap(config._locale,config._a[HOUR],config._meridiem);era=getParsingFlags(config).era;if(era!==null){config._a[YEAR]=config._locale.erasConvertYear(era,config._a[YEAR]);}
configFromArray(config);checkOverflow(config);}
function meridiemFixWrap(locale,hour,meridiem){var isPm;if(meridiem==null){return hour;}
if(locale.meridiemHour!=null){return locale.meridiemHour(hour,meridiem);}else if(locale.isPM!=null){isPm=locale.isPM(meridiem);if(isPm&&hour<12){hour+=12;}
if(!isPm&&hour===12){hour=0;}
return hour;}else{return hour;}}
function configFromStringAndArray(config){var tempConfig,bestMoment,scoreToBeat,i,currentScore,validFormatFound,bestFormatIsValid=false,configfLen=config._f.length;if(configfLen===0){getParsingFlags(config).invalidFormat=true;config._d=new Date(NaN);return;}
for(i=0;i<configfLen;i++){currentScore=0;validFormatFound=false;tempConfig=copyConfig({},config);if(config._useUTC!=null){tempConfig._useUTC=config._useUTC;}
tempConfig._f=config._f[i];configFromStringAndFormat(tempConfig);if(isValid(tempConfig)){validFormatFound=true;}
currentScore+=getParsingFlags(tempConfig).charsLeftOver;currentScore+=getParsingFlags(tempConfig).unusedTokens.length*10;getParsingFlags(tempConfig).score=currentScore;if(!bestFormatIsValid){if(scoreToBeat==null||currentScore<scoreToBeat||validFormatFound){scoreToBeat=currentScore;bestMoment=tempConfig;if(validFormatFound){bestFormatIsValid=true;}}}else{if(currentScore<scoreToBeat){scoreToBeat=currentScore;bestMoment=tempConfig;}}}
extend(config,bestMoment||tempConfig);}
function configFromObject(config){if(config._d){return;}
var i=normalizeObjectUnits(config._i),dayOrDate=i.day===undefined?i.date:i.day;config._a=map([i.year,i.month,dayOrDate,i.hour,i.minute,i.second,i.millisecond],function(obj){return obj&&parseInt(obj,10);});configFromArray(config);}
function createFromConfig(config){var res=new Moment(checkOverflow(prepareConfig(config)));if(res._nextDay){res.add(1,'d');res._nextDay=undefined;}
return res;}
function prepareConfig(config){var input=config._i,format=config._f;config._locale=config._locale||getLocale(config._l);if(input===null||(format===undefined&&input==='')){return createInvalid({nullInput:true});}
if(typeof input==='string'){config._i=input=config._locale.preparse(input);}
if(isMoment(input)){return new Moment(checkOverflow(input));}else if(isDate(input)){config._d=input;}else if(isArray(format)){configFromStringAndArray(config);}else if(format){configFromStringAndFormat(config);}else{configFromInput(config);}
if(!isValid(config)){config._d=null;}
return config;}
function configFromInput(config){var input=config._i;if(isUndefined(input)){config._d=new Date(hooks.now());}else if(isDate(input)){config._d=new Date(input.valueOf());}else if(typeof input==='string'){configFromString(config);}else if(isArray(input)){config._a=map(input.slice(0),function(obj){return parseInt(obj,10);});configFromArray(config);}else if(isObject(input)){configFromObject(config);}else if(isNumber(input)){config._d=new Date(input);}else{hooks.createFromInputFallback(config);}}
function createLocalOrUTC(input,format,locale,strict,isUTC){var c={};if(format===true||format===false){strict=format;format=undefined;}
if(locale===true||locale===false){strict=locale;locale=undefined;}
if((isObject(input)&&isObjectEmpty(input))||(isArray(input)&&input.length===0)){input=undefined;}
c._isAMomentObject=true;c._useUTC=c._isUTC=isUTC;c._l=locale;c._i=input;c._f=format;c._strict=strict;return createFromConfig(c);}
function createLocal(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,false);}
var prototypeMin=deprecate('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other<this?this:other;}else{return createInvalid();}}),prototypeMax=deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',function(){var other=createLocal.apply(null,arguments);if(this.isValid()&&other.isValid()){return other>this?this:other;}else{return createInvalid();}});function pickBy(fn,moments){var res,i;if(moments.length===1&&isArray(moments[0])){moments=moments[0];}
if(!moments.length){return createLocal();}
res=moments[0];for(i=1;i<moments.length;++i){if(!moments[i].isValid()||moments[i][fn](res)){res=moments[i];}}
return res;}
function min(){var args=[].slice.call(arguments,0);return pickBy('isBefore',args);}
function max(){var args=[].slice.call(arguments,0);return pickBy('isAfter',args);}
var now=function(){return Date.now?Date.now():+new Date();};var ordering=['year','quarter','month','week','day','hour','minute','second','millisecond',];function isDurationValid(m){var key,unitHasDecimal=false,i,orderLen=ordering.length;for(key in m){if(hasOwnProp(m,key)&&!(indexOf.call(ordering,key)!==-1&&(m[key]==null||!isNaN(m[key])))){return false;}}
for(i=0;i<orderLen;++i){if(m[ordering[i]]){if(unitHasDecimal){return false;}
if(parseFloat(m[ordering[i]])!==toInt(m[ordering[i]])){unitHasDecimal=true;}}}
return true;}
function isValid$1(){return this._isValid;}
function createInvalid$1(){return createDuration(NaN);}
function Duration(duration){var normalizedInput=normalizeObjectUnits(duration),years=normalizedInput.year||0,quarters=normalizedInput.quarter||0,months=normalizedInput.month||0,weeks=normalizedInput.week||normalizedInput.isoWeek||0,days=normalizedInput.day||0,hours=normalizedInput.hour||0,minutes=normalizedInput.minute||0,seconds=normalizedInput.second||0,milliseconds=normalizedInput.millisecond||0;this._isValid=isDurationValid(normalizedInput);this._milliseconds=+milliseconds+
seconds*1e3+
minutes*6e4+
hours*1000*60*60;this._days=+days+weeks*7;this._months=+months+quarters*3+years*12;this._data={};this._locale=getLocale();this._bubble();}
function isDuration(obj){return obj instanceof Duration;}
function absRound(number){if(number<0){return Math.round(-1*number)*-1;}else{return Math.round(number);}}
function compareArrays(array1,array2,dontConvert){var len=Math.min(array1.length,array2.length),lengthDiff=Math.abs(array1.length-array2.length),diffs=0,i;for(i=0;i<len;i++){if((dontConvert&&array1[i]!==array2[i])||(!dontConvert&&toInt(array1[i])!==toInt(array2[i]))){diffs++;}}
return diffs+lengthDiff;}
function offset(token,separator){addFormatToken(token,0,0,function(){var offset=this.utcOffset(),sign='+';if(offset<0){offset=-offset;sign='-';}
return(sign+
zeroFill(~~(offset/60),2)+
separator+
zeroFill(~~offset%60,2));});}
offset('Z',':');offset('ZZ','');addRegexToken('Z',matchShortOffset);addRegexToken('ZZ',matchShortOffset);addParseToken(['Z','ZZ'],function(input,array,config){config._useUTC=true;config._tzm=offsetFromString(matchShortOffset,input);});var chunkOffset=/([\+\-]|\d\d)/gi;function offsetFromString(matcher,string){var matches=(string||'').match(matcher),chunk,parts,minutes;if(matches===null){return null;}
chunk=matches[matches.length-1]||[];parts=(chunk+'').match(chunkOffset)||['-',0,0];minutes=+(parts[1]*60)+toInt(parts[2]);return minutes===0?0:parts[0]==='+'?minutes:-minutes;}
function cloneWithOffset(input,model){var res,diff;if(model._isUTC){res=model.clone();diff=(isMoment(input)||isDate(input)?input.valueOf():createLocal(input).valueOf())-res.valueOf();res._d.setTime(res._d.valueOf()+diff);hooks.updateOffset(res,false);return res;}else{return createLocal(input).local();}}
function getDateOffset(m){return-Math.round(m._d.getTimezoneOffset());}
hooks.updateOffset=function(){};function getSetOffset(input,keepLocalTime,keepMinutes){var offset=this._offset||0,localAdjust;if(!this.isValid()){return input!=null?this:NaN;}
if(input!=null){if(typeof input==='string'){input=offsetFromString(matchShortOffset,input);if(input===null){return this;}}else if(Math.abs(input)<16&&!keepMinutes){input=input*60;}
if(!this._isUTC&&keepLocalTime){localAdjust=getDateOffset(this);}
this._offset=input;this._isUTC=true;if(localAdjust!=null){this.add(localAdjust,'m');}
if(offset!==input){if(!keepLocalTime||this._changeInProgress){addSubtract(this,createDuration(input-offset,'m'),1,false);}else if(!this._changeInProgress){this._changeInProgress=true;hooks.updateOffset(this,true);this._changeInProgress=null;}}
return this;}else{return this._isUTC?offset:getDateOffset(this);}}
function getSetZone(input,keepLocalTime){if(input!=null){if(typeof input!=='string'){input=-input;}
this.utcOffset(input,keepLocalTime);return this;}else{return-this.utcOffset();}}
function setOffsetToUTC(keepLocalTime){return this.utcOffset(0,keepLocalTime);}
function setOffsetToLocal(keepLocalTime){if(this._isUTC){this.utcOffset(0,keepLocalTime);this._isUTC=false;if(keepLocalTime){this.subtract(getDateOffset(this),'m');}}
return this;}
function setOffsetToParsedOffset(){if(this._tzm!=null){this.utcOffset(this._tzm,false,true);}else if(typeof this._i==='string'){var tZone=offsetFromString(matchOffset,this._i);if(tZone!=null){this.utcOffset(tZone);}else{this.utcOffset(0,true);}}
return this;}
function hasAlignedHourOffset(input){if(!this.isValid()){return false;}
input=input?createLocal(input).utcOffset():0;return(this.utcOffset()-input)%60===0;}
function isDaylightSavingTime(){return(this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset());}
function isDaylightSavingTimeShifted(){if(!isUndefined(this._isDSTShifted)){return this._isDSTShifted;}
var c={},other;copyConfig(c,this);c=prepareConfig(c);if(c._a){other=c._isUTC?createUTC(c._a):createLocal(c._a);this._isDSTShifted=this.isValid()&&compareArrays(c._a,other.toArray())>0;}else{this._isDSTShifted=false;}
return this._isDSTShifted;}
function isLocal(){return this.isValid()?!this._isUTC:false;}
function isUtcOffset(){return this.isValid()?this._isUTC:false;}
function isUtc(){return this.isValid()?this._isUTC&&this._offset===0:false;}
var aspNetRegex=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,isoRegex=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function createDuration(input,key){var duration=input,match=null,sign,ret,diffRes;if(isDuration(input)){duration={ms:input._milliseconds,d:input._days,M:input._months,};}else if(isNumber(input)||!isNaN(+input)){duration={};if(key){duration[key]=+input;}else{duration.milliseconds=+input;}}else if((match=aspNetRegex.exec(input))){sign=match[1]==='-'?-1:1;duration={y:0,d:toInt(match[DATE])*sign,h:toInt(match[HOUR])*sign,m:toInt(match[MINUTE])*sign,s:toInt(match[SECOND])*sign,ms:toInt(absRound(match[MILLISECOND]*1000))*sign,};}else if((match=isoRegex.exec(input))){sign=match[1]==='-'?-1:1;duration={y:parseIso(match[2],sign),M:parseIso(match[3],sign),w:parseIso(match[4],sign),d:parseIso(match[5],sign),h:parseIso(match[6],sign),m:parseIso(match[7],sign),s:parseIso(match[8],sign),};}else if(duration==null){duration={};}else if(typeof duration==='object'&&('from'in duration||'to'in duration)){diffRes=momentsDifference(createLocal(duration.from),createLocal(duration.to));duration={};duration.ms=diffRes.milliseconds;duration.M=diffRes.months;}
ret=new Duration(duration);if(isDuration(input)&&hasOwnProp(input,'_locale')){ret._locale=input._locale;}
if(isDuration(input)&&hasOwnProp(input,'_isValid')){ret._isValid=input._isValid;}
return ret;}
createDuration.fn=Duration.prototype;createDuration.invalid=createInvalid$1;function parseIso(inp,sign){var res=inp&&parseFloat(inp.replace(',','.'));return(isNaN(res)?0:res)*sign;}
function positiveMomentsDifference(base,other){var res={};res.months=other.month()-base.month()+(other.year()-base.year())*12;if(base.clone().add(res.months,'M').isAfter(other)){--res.months;}
res.milliseconds=+other-+base.clone().add(res.months,'M');return res;}
function momentsDifference(base,other){var res;if(!(base.isValid()&&other.isValid())){return{milliseconds:0,months:0};}
other=cloneWithOffset(other,base);if(base.isBefore(other)){res=positiveMomentsDifference(base,other);}else{res=positiveMomentsDifference(other,base);res.milliseconds=-res.milliseconds;res.months=-res.months;}
return res;}
function createAdder(direction,name){return function(val,period){var dur,tmp;if(period!==null&&!isNaN(+period)){deprecateSimple(name,'moment().'+
name+'(period, number) is deprecated. Please use moment().'+
name+'(number, period). '+'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');tmp=val;val=period;period=tmp;}
dur=createDuration(val,period);addSubtract(this,dur,direction);return this;};}
function addSubtract(mom,duration,isAdding,updateOffset){var milliseconds=duration._milliseconds,days=absRound(duration._days),months=absRound(duration._months);if(!mom.isValid()){return;}
updateOffset=updateOffset==null?true:updateOffset;if(months){setMonth(mom,get(mom,'Month')+months*isAdding);}
if(days){set$1(mom,'Date',get(mom,'Date')+days*isAdding);}
if(milliseconds){mom._d.setTime(mom._d.valueOf()+milliseconds*isAdding);}
if(updateOffset){hooks.updateOffset(mom,days||months);}}
var add=createAdder(1,'add'),subtract=createAdder(-1,'subtract');function isString(input){return typeof input==='string'||input instanceof String;}
function isMomentInput(input){return(isMoment(input)||isDate(input)||isString(input)||isNumber(input)||isNumberOrStringArray(input)||isMomentInputObject(input)||input===null||input===undefined);}
function isMomentInputObject(input){var objectTest=isObject(input)&&!isObjectEmpty(input),propertyTest=false,properties=['years','year','y','months','month','M','days','day','d','dates','date','D','hours','hour','h','minutes','minute','m','seconds','second','s','milliseconds','millisecond','ms',],i,property,propertyLen=properties.length;for(i=0;i<propertyLen;i+=1){property=properties[i];propertyTest=propertyTest||hasOwnProp(input,property);}
return objectTest&&propertyTest;}
function isNumberOrStringArray(input){var arrayTest=isArray(input),dataTypeTest=false;if(arrayTest){dataTypeTest=input.filter(function(item){return!isNumber(item)&&isString(input);}).length===0;}
return arrayTest&&dataTypeTest;}
function isCalendarSpec(input){var objectTest=isObject(input)&&!isObjectEmpty(input),propertyTest=false,properties=['sameDay','nextDay','lastDay','nextWeek','lastWeek','sameElse',],i,property;for(i=0;i<properties.length;i+=1){property=properties[i];propertyTest=propertyTest||hasOwnProp(input,property);}
return objectTest&&propertyTest;}
function getCalendarFormat(myMoment,now){var diff=myMoment.diff(now,'days',true);return diff<-6?'sameElse':diff<-1?'lastWeek':diff<0?'lastDay':diff<1?'sameDay':diff<2?'nextDay':diff<7?'nextWeek':'sameElse';}
function calendar$1(time,formats){if(arguments.length===1){if(!arguments[0]){time=undefined;formats=undefined;}else if(isMomentInput(arguments[0])){time=arguments[0];formats=undefined;}else if(isCalendarSpec(arguments[0])){formats=arguments[0];time=undefined;}}
var now=time||createLocal(),sod=cloneWithOffset(now,this).startOf('day'),format=hooks.calendarFormat(this,sod)||'sameElse',output=formats&&(isFunction(formats[format])?formats[format].call(this,now):formats[format]);return this.format(output||this.localeData().calendar(format,this,createLocal(now)));}
function clone(){return new Moment(this);}
function isAfter(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false;}
units=normalizeUnits(units)||'millisecond';if(units==='millisecond'){return this.valueOf()>localInput.valueOf();}else{return localInput.valueOf()<this.clone().startOf(units).valueOf();}}
function isBefore(input,units){var localInput=isMoment(input)?input:createLocal(input);if(!(this.isValid()&&localInput.isValid())){return false;}
units=normalizeUnits(units)||'millisecond';if(units==='millisecond'){return this.valueOf()<localInput.valueOf();}else{return this.clone().endOf(units).valueOf()<localInput.valueOf();}}
function isBetween(from,to,units,inclusivity){var localFrom=isMoment(from)?from:createLocal(from),localTo=isMoment(to)?to:createLocal(to);if(!(this.isValid()&&localFrom.isValid()&&localTo.isValid())){return false;}
inclusivity=inclusivity||'()';return((inclusivity[0]==='('?this.isAfter(localFrom,units):!this.isBefore(localFrom,units))&&(inclusivity[1]===')'?this.isBefore(localTo,units):!this.isAfter(localTo,units)));}
function isSame(input,units){var localInput=isMoment(input)?input:createLocal(input),inputMs;if(!(this.isValid()&&localInput.isValid())){return false;}
units=normalizeUnits(units)||'millisecond';if(units==='millisecond'){return this.valueOf()===localInput.valueOf();}else{inputMs=localInput.valueOf();return(this.clone().startOf(units).valueOf()<=inputMs&&inputMs<=this.clone().endOf(units).valueOf());}}
function isSameOrAfter(input,units){return this.isSame(input,units)||this.isAfter(input,units);}
function isSameOrBefore(input,units){return this.isSame(input,units)||this.isBefore(input,units);}
function diff(input,units,asFloat){var that,zoneDelta,output;if(!this.isValid()){return NaN;}
that=cloneWithOffset(input,this);if(!that.isValid()){return NaN;}
zoneDelta=(that.utcOffset()-this.utcOffset())*6e4;units=normalizeUnits(units);switch(units){case'year':output=monthDiff(this,that)/12;break;case'month':output=monthDiff(this,that);break;case'quarter':output=monthDiff(this,that)/3;break;case'second':output=(this-that)/1e3;break;case'minute':output=(this-that)/6e4;break;case'hour':output=(this-that)/36e5;break;case'day':output=(this-that-zoneDelta)/864e5;break;case'week':output=(this-that-zoneDelta)/6048e5;break;default:output=this-that;}
return asFloat?output:absFloor(output);}
function monthDiff(a,b){if(a.date()<b.date()){return-monthDiff(b,a);}
var wholeMonthDiff=(b.year()-a.year())*12+(b.month()-a.month()),anchor=a.clone().add(wholeMonthDiff,'months'),anchor2,adjust;if(b-anchor<0){anchor2=a.clone().add(wholeMonthDiff-1,'months');adjust=(b-anchor)/(anchor-anchor2);}else{anchor2=a.clone().add(wholeMonthDiff+1,'months');adjust=(b-anchor)/(anchor2-anchor);}
return-(wholeMonthDiff+adjust)||0;}
hooks.defaultFormat='YYYY-MM-DDTHH:mm:ssZ';hooks.defaultFormatUtc='YYYY-MM-DDTHH:mm:ss[Z]';function toString(){return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');}
function toISOString(keepOffset){if(!this.isValid()){return null;}
var utc=keepOffset!==true,m=utc?this.clone().utc():this;if(m.year()<0||m.year()>9999){return formatMoment(m,utc?'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]':'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');}
if(isFunction(Date.prototype.toISOString)){if(utc){return this.toDate().toISOString();}else{return new Date(this.valueOf()+this.utcOffset()*60*1000).toISOString().replace('Z',formatMoment(m,'Z'));}}
return formatMoment(m,utc?'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]':'YYYY-MM-DD[T]HH:mm:ss.SSSZ');}
function inspect(){if(!this.isValid()){return'moment.invalid(/* '+this._i+' */)';}
var func='moment',zone='',prefix,year,datetime,suffix;if(!this.isLocal()){func=this.utcOffset()===0?'moment.utc':'moment.parseZone';zone='Z';}
prefix='['+func+'("]';year=0<=this.year()&&this.year()<=9999?'YYYY':'YYYYYY';datetime='-MM-DD[T]HH:mm:ss.SSS';suffix=zone+'[")]';return this.format(prefix+year+datetime+suffix);}
function format(inputString){if(!inputString){inputString=this.isUtc()?hooks.defaultFormatUtc:hooks.defaultFormat;}
var output=formatMoment(this,inputString);return this.localeData().postformat(output);}
function from(time,withoutSuffix){if(this.isValid()&&((isMoment(time)&&time.isValid())||createLocal(time).isValid())){return createDuration({to:this,from:time}).locale(this.locale()).humanize(!withoutSuffix);}else{return this.localeData().invalidDate();}}
function fromNow(withoutSuffix){return this.from(createLocal(),withoutSuffix);}
function to(time,withoutSuffix){if(this.isValid()&&((isMoment(time)&&time.isValid())||createLocal(time).isValid())){return createDuration({from:this,to:time}).locale(this.locale()).humanize(!withoutSuffix);}else{return this.localeData().invalidDate();}}
function toNow(withoutSuffix){return this.to(createLocal(),withoutSuffix);}
function locale(key){var newLocaleData;if(key===undefined){return this._locale._abbr;}else{newLocaleData=getLocale(key);if(newLocaleData!=null){this._locale=newLocaleData;}
return this;}}
var lang=deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',function(key){if(key===undefined){return this.localeData();}else{return this.locale(key);}});function localeData(){return this._locale;}
var MS_PER_SECOND=1000,MS_PER_MINUTE=60*MS_PER_SECOND,MS_PER_HOUR=60*MS_PER_MINUTE,MS_PER_400_YEARS=(365*400+97)*24*MS_PER_HOUR;function mod$1(dividend,divisor){return((dividend%divisor)+divisor)%divisor;}
function localStartOfDate(y,m,d){if(y<100&&y>=0){return new Date(y+400,m,d)-MS_PER_400_YEARS;}else{return new Date(y,m,d).valueOf();}}
function utcStartOfDate(y,m,d){if(y<100&&y>=0){return Date.UTC(y+400,m,d)-MS_PER_400_YEARS;}else{return Date.UTC(y,m,d);}}
function startOf(units){var time,startOfDate;units=normalizeUnits(units);if(units===undefined||units==='millisecond'||!this.isValid()){return this;}
startOfDate=this._isUTC?utcStartOfDate:localStartOfDate;switch(units){case'year':time=startOfDate(this.year(),0,1);break;case'quarter':time=startOfDate(this.year(),this.month()-(this.month()%3),1);break;case'month':time=startOfDate(this.year(),this.month(),1);break;case'week':time=startOfDate(this.year(),this.month(),this.date()-this.weekday());break;case'isoWeek':time=startOfDate(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case'day':case'date':time=startOfDate(this.year(),this.month(),this.date());break;case'hour':time=this._d.valueOf();time-=mod$1(time+(this._isUTC?0:this.utcOffset()*MS_PER_MINUTE),MS_PER_HOUR);break;case'minute':time=this._d.valueOf();time-=mod$1(time,MS_PER_MINUTE);break;case'second':time=this._d.valueOf();time-=mod$1(time,MS_PER_SECOND);break;}
this._d.setTime(time);hooks.updateOffset(this,true);return this;}
function endOf(units){var time,startOfDate;units=normalizeUnits(units);if(units===undefined||units==='millisecond'||!this.isValid()){return this;}
startOfDate=this._isUTC?utcStartOfDate:localStartOfDate;switch(units){case'year':time=startOfDate(this.year()+1,0,1)-1;break;case'quarter':time=startOfDate(this.year(),this.month()-(this.month()%3)+3,1)-1;break;case'month':time=startOfDate(this.year(),this.month()+1,1)-1;break;case'week':time=startOfDate(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case'isoWeek':time=startOfDate(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case'day':case'date':time=startOfDate(this.year(),this.month(),this.date()+1)-1;break;case'hour':time=this._d.valueOf();time+=MS_PER_HOUR-
mod$1(time+(this._isUTC?0:this.utcOffset()*MS_PER_MINUTE),MS_PER_HOUR)-
1;break;case'minute':time=this._d.valueOf();time+=MS_PER_MINUTE-mod$1(time,MS_PER_MINUTE)-1;break;case'second':time=this._d.valueOf();time+=MS_PER_SECOND-mod$1(time,MS_PER_SECOND)-1;break;}
this._d.setTime(time);hooks.updateOffset(this,true);return this;}
function valueOf(){return this._d.valueOf()-(this._offset||0)*60000;}
function unix(){return Math.floor(this.valueOf()/1000);}
function toDate(){return new Date(this.valueOf());}
function toArray(){var m=this;return[m.year(),m.month(),m.date(),m.hour(),m.minute(),m.second(),m.millisecond(),];}
function toObject(){var m=this;return{years:m.year(),months:m.month(),date:m.date(),hours:m.hours(),minutes:m.minutes(),seconds:m.seconds(),milliseconds:m.milliseconds(),};}
function toJSON(){return this.isValid()?this.toISOString():null;}
function isValid$2(){return isValid(this);}
function parsingFlags(){return extend({},getParsingFlags(this));}
function invalidAt(){return getParsingFlags(this).overflow;}
function creationData(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict,};}
addFormatToken('N',0,0,'eraAbbr');addFormatToken('NN',0,0,'eraAbbr');addFormatToken('NNN',0,0,'eraAbbr');addFormatToken('NNNN',0,0,'eraName');addFormatToken('NNNNN',0,0,'eraNarrow');addFormatToken('y',['y',1],'yo','eraYear');addFormatToken('y',['yy',2],0,'eraYear');addFormatToken('y',['yyy',3],0,'eraYear');addFormatToken('y',['yyyy',4],0,'eraYear');addRegexToken('N',matchEraAbbr);addRegexToken('NN',matchEraAbbr);addRegexToken('NNN',matchEraAbbr);addRegexToken('NNNN',matchEraName);addRegexToken('NNNNN',matchEraNarrow);addParseToken(['N','NN','NNN','NNNN','NNNNN'],function(input,array,config,token){var era=config._locale.erasParse(input,token,config._strict);if(era){getParsingFlags(config).era=era;}else{getParsingFlags(config).invalidEra=input;}});addRegexToken('y',matchUnsigned);addRegexToken('yy',matchUnsigned);addRegexToken('yyy',matchUnsigned);addRegexToken('yyyy',matchUnsigned);addRegexToken('yo',matchEraYearOrdinal);addParseToken(['y','yy','yyy','yyyy'],YEAR);addParseToken(['yo'],function(input,array,config,token){var match;if(config._locale._eraYearOrdinalRegex){match=input.match(config._locale._eraYearOrdinalRegex);}
if(config._locale.eraYearOrdinalParse){array[YEAR]=config._locale.eraYearOrdinalParse(input,match);}else{array[YEAR]=parseInt(input,10);}});function localeEras(m,format){var i,l,date,eras=this._eras||getLocale('en')._eras;for(i=0,l=eras.length;i<l;++i){switch(typeof eras[i].since){case'string':date=hooks(eras[i].since).startOf('day');eras[i].since=date.valueOf();break;}
switch(typeof eras[i].until){case'undefined':eras[i].until=+Infinity;break;case'string':date=hooks(eras[i].until).startOf('day').valueOf();eras[i].until=date.valueOf();break;}}
return eras;}
function localeErasParse(eraName,format,strict){var i,l,eras=this.eras(),name,abbr,narrow;eraName=eraName.toUpperCase();for(i=0,l=eras.length;i<l;++i){name=eras[i].name.toUpperCase();abbr=eras[i].abbr.toUpperCase();narrow=eras[i].narrow.toUpperCase();if(strict){switch(format){case'N':case'NN':case'NNN':if(abbr===eraName){return eras[i];}
break;case'NNNN':if(name===eraName){return eras[i];}
break;case'NNNNN':if(narrow===eraName){return eras[i];}
break;}}else if([name,abbr,narrow].indexOf(eraName)>=0){return eras[i];}}}
function localeErasConvertYear(era,year){var dir=era.since<=era.until?+1:-1;if(year===undefined){return hooks(era.since).year();}else{return hooks(era.since).year()+(year-era.offset)*dir;}}
function getEraName(){var i,l,val,eras=this.localeData().eras();for(i=0,l=eras.length;i<l;++i){val=this.clone().startOf('day').valueOf();if(eras[i].since<=val&&val<=eras[i].until){return eras[i].name;}
if(eras[i].until<=val&&val<=eras[i].since){return eras[i].name;}}
return'';}
function getEraNarrow(){var i,l,val,eras=this.localeData().eras();for(i=0,l=eras.length;i<l;++i){val=this.clone().startOf('day').valueOf();if(eras[i].since<=val&&val<=eras[i].until){return eras[i].narrow;}
if(eras[i].until<=val&&val<=eras[i].since){return eras[i].narrow;}}
return'';}
function getEraAbbr(){var i,l,val,eras=this.localeData().eras();for(i=0,l=eras.length;i<l;++i){val=this.clone().startOf('day').valueOf();if(eras[i].since<=val&&val<=eras[i].until){return eras[i].abbr;}
if(eras[i].until<=val&&val<=eras[i].since){return eras[i].abbr;}}
return'';}
function getEraYear(){var i,l,dir,val,eras=this.localeData().eras();for(i=0,l=eras.length;i<l;++i){dir=eras[i].since<=eras[i].until?+1:-1;val=this.clone().startOf('day').valueOf();if((eras[i].since<=val&&val<=eras[i].until)||(eras[i].until<=val&&val<=eras[i].since)){return((this.year()-hooks(eras[i].since).year())*dir+
eras[i].offset);}}
return this.year();}
function erasNameRegex(isStrict){if(!hasOwnProp(this,'_erasNameRegex')){computeErasParse.call(this);}
return isStrict?this._erasNameRegex:this._erasRegex;}
function erasAbbrRegex(isStrict){if(!hasOwnProp(this,'_erasAbbrRegex')){computeErasParse.call(this);}
return isStrict?this._erasAbbrRegex:this._erasRegex;}
function erasNarrowRegex(isStrict){if(!hasOwnProp(this,'_erasNarrowRegex')){computeErasParse.call(this);}
return isStrict?this._erasNarrowRegex:this._erasRegex;}
function matchEraAbbr(isStrict,locale){return locale.erasAbbrRegex(isStrict);}
function matchEraName(isStrict,locale){return locale.erasNameRegex(isStrict);}
function matchEraNarrow(isStrict,locale){return locale.erasNarrowRegex(isStrict);}
function matchEraYearOrdinal(isStrict,locale){return locale._eraYearOrdinalRegex||matchUnsigned;}
function computeErasParse(){var abbrPieces=[],namePieces=[],narrowPieces=[],mixedPieces=[],i,l,eras=this.eras();for(i=0,l=eras.length;i<l;++i){namePieces.push(regexEscape(eras[i].name));abbrPieces.push(regexEscape(eras[i].abbr));narrowPieces.push(regexEscape(eras[i].narrow));mixedPieces.push(regexEscape(eras[i].name));mixedPieces.push(regexEscape(eras[i].abbr));mixedPieces.push(regexEscape(eras[i].narrow));}
this._erasRegex=new RegExp('^('+mixedPieces.join('|')+')','i');this._erasNameRegex=new RegExp('^('+namePieces.join('|')+')','i');this._erasAbbrRegex=new RegExp('^('+abbrPieces.join('|')+')','i');this._erasNarrowRegex=new RegExp('^('+narrowPieces.join('|')+')','i');}
addFormatToken(0,['gg',2],0,function(){return this.weekYear()%100;});addFormatToken(0,['GG',2],0,function(){return this.isoWeekYear()%100;});function addWeekYearFormatToken(token,getter){addFormatToken(0,[token,token.length],0,getter);}
addWeekYearFormatToken('gggg','weekYear');addWeekYearFormatToken('ggggg','weekYear');addWeekYearFormatToken('GGGG','isoWeekYear');addWeekYearFormatToken('GGGGG','isoWeekYear');addUnitAlias('weekYear','gg');addUnitAlias('isoWeekYear','GG');addUnitPriority('weekYear',1);addUnitPriority('isoWeekYear',1);addRegexToken('G',matchSigned);addRegexToken('g',matchSigned);addRegexToken('GG',match1to2,match2);addRegexToken('gg',match1to2,match2);addRegexToken('GGGG',match1to4,match4);addRegexToken('gggg',match1to4,match4);addRegexToken('GGGGG',match1to6,match6);addRegexToken('ggggg',match1to6,match6);addWeekParseToken(['gggg','ggggg','GGGG','GGGGG'],function(input,week,config,token){week[token.substr(0,2)]=toInt(input);});addWeekParseToken(['gg','GG'],function(input,week,config,token){week[token]=hooks.parseTwoDigitYear(input);});function getSetWeekYear(input){return getSetWeekYearHelper.call(this,input,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy);}
function getSetISOWeekYear(input){return getSetWeekYearHelper.call(this,input,this.isoWeek(),this.isoWeekday(),1,4);}
function getISOWeeksInYear(){return weeksInYear(this.year(),1,4);}
function getISOWeeksInISOWeekYear(){return weeksInYear(this.isoWeekYear(),1,4);}
function getWeeksInYear(){var weekInfo=this.localeData()._week;return weeksInYear(this.year(),weekInfo.dow,weekInfo.doy);}
function getWeeksInWeekYear(){var weekInfo=this.localeData()._week;return weeksInYear(this.weekYear(),weekInfo.dow,weekInfo.doy);}
function getSetWeekYearHelper(input,week,weekday,dow,doy){var weeksTarget;if(input==null){return weekOfYear(this,dow,doy).year;}else{weeksTarget=weeksInYear(input,dow,doy);if(week>weeksTarget){week=weeksTarget;}
return setWeekAll.call(this,input,week,weekday,dow,doy);}}
function setWeekAll(weekYear,week,weekday,dow,doy){var dayOfYearData=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy),date=createUTCDate(dayOfYearData.year,0,dayOfYearData.dayOfYear);this.year(date.getUTCFullYear());this.month(date.getUTCMonth());this.date(date.getUTCDate());return this;}
addFormatToken('Q',0,'Qo','quarter');addUnitAlias('quarter','Q');addUnitPriority('quarter',7);addRegexToken('Q',match1);addParseToken('Q',function(input,array){array[MONTH]=(toInt(input)-1)*3;});function getSetQuarter(input){return input==null?Math.ceil((this.month()+1)/3):this.month((input-1)*3+(this.month()%3));}
addFormatToken('D',['DD',2],'Do','date');addUnitAlias('date','D');addUnitPriority('date',9);addRegexToken('D',match1to2);addRegexToken('DD',match1to2,match2);addRegexToken('Do',function(isStrict,locale){return isStrict?locale._dayOfMonthOrdinalParse||locale._ordinalParse:locale._dayOfMonthOrdinalParseLenient;});addParseToken(['D','DD'],DATE);addParseToken('Do',function(input,array){array[DATE]=toInt(input.match(match1to2)[0]);});var getSetDayOfMonth=makeGetSet('Date',true);addFormatToken('DDD',['DDDD',3],'DDDo','dayOfYear');addUnitAlias('dayOfYear','DDD');addUnitPriority('dayOfYear',4);addRegexToken('DDD',match1to3);addRegexToken('DDDD',match3);addParseToken(['DDD','DDDD'],function(input,array,config){config._dayOfYear=toInt(input);});function getSetDayOfYear(input){var dayOfYear=Math.round((this.clone().startOf('day')-this.clone().startOf('year'))/864e5)+1;return input==null?dayOfYear:this.add(input-dayOfYear,'d');}
addFormatToken('m',['mm',2],0,'minute');addUnitAlias('minute','m');addUnitPriority('minute',14);addRegexToken('m',match1to2);addRegexToken('mm',match1to2,match2);addParseToken(['m','mm'],MINUTE);var getSetMinute=makeGetSet('Minutes',false);addFormatToken('s',['ss',2],0,'second');addUnitAlias('second','s');addUnitPriority('second',15);addRegexToken('s',match1to2);addRegexToken('ss',match1to2,match2);addParseToken(['s','ss'],SECOND);var getSetSecond=makeGetSet('Seconds',false);addFormatToken('S',0,0,function(){return~~(this.millisecond()/100);});addFormatToken(0,['SS',2],0,function(){return~~(this.millisecond()/10);});addFormatToken(0,['SSS',3],0,'millisecond');addFormatToken(0,['SSSS',4],0,function(){return this.millisecond()*10;});addFormatToken(0,['SSSSS',5],0,function(){return this.millisecond()*100;});addFormatToken(0,['SSSSSS',6],0,function(){return this.millisecond()*1000;});addFormatToken(0,['SSSSSSS',7],0,function(){return this.millisecond()*10000;});addFormatToken(0,['SSSSSSSS',8],0,function(){return this.millisecond()*100000;});addFormatToken(0,['SSSSSSSSS',9],0,function(){return this.millisecond()*1000000;});addUnitAlias('millisecond','ms');addUnitPriority('millisecond',16);addRegexToken('S',match1to3,match1);addRegexToken('SS',match1to3,match2);addRegexToken('SSS',match1to3,match3);var token,getSetMillisecond;for(token='SSSS';token.length<=9;token+='S'){addRegexToken(token,matchUnsigned);}
function parseMs(input,array){array[MILLISECOND]=toInt(('0.'+input)*1000);}
for(token='S';token.length<=9;token+='S'){addParseToken(token,parseMs);}
getSetMillisecond=makeGetSet('Milliseconds',false);addFormatToken('z',0,0,'zoneAbbr');addFormatToken('zz',0,0,'zoneName');function getZoneAbbr(){return this._isUTC?'UTC':'';}
function getZoneName(){return this._isUTC?'Coordinated Universal Time':'';}
var proto=Moment.prototype;proto.add=add;proto.calendar=calendar$1;proto.clone=clone;proto.diff=diff;proto.endOf=endOf;proto.format=format;proto.from=from;proto.fromNow=fromNow;proto.to=to;proto.toNow=toNow;proto.get=stringGet;proto.invalidAt=invalidAt;proto.isAfter=isAfter;proto.isBefore=isBefore;proto.isBetween=isBetween;proto.isSame=isSame;proto.isSameOrAfter=isSameOrAfter;proto.isSameOrBefore=isSameOrBefore;proto.isValid=isValid$2;proto.lang=lang;proto.locale=locale;proto.localeData=localeData;proto.max=prototypeMax;proto.min=prototypeMin;proto.parsingFlags=parsingFlags;proto.set=stringSet;proto.startOf=startOf;proto.subtract=subtract;proto.toArray=toArray;proto.toObject=toObject;proto.toDate=toDate;proto.toISOString=toISOString;proto.inspect=inspect;if(typeof Symbol!=='undefined'&&Symbol.for!=null){proto[Symbol.for('nodejs.util.inspect.custom')]=function(){return'Moment<'+this.format()+'>';};}
proto.toJSON=toJSON;proto.toString=toString;proto.unix=unix;proto.valueOf=valueOf;proto.creationData=creationData;proto.eraName=getEraName;proto.eraNarrow=getEraNarrow;proto.eraAbbr=getEraAbbr;proto.eraYear=getEraYear;proto.year=getSetYear;proto.isLeapYear=getIsLeapYear;proto.weekYear=getSetWeekYear;proto.isoWeekYear=getSetISOWeekYear;proto.quarter=proto.quarters=getSetQuarter;proto.month=getSetMonth;proto.daysInMonth=getDaysInMonth;proto.week=proto.weeks=getSetWeek;proto.isoWeek=proto.isoWeeks=getSetISOWeek;proto.weeksInYear=getWeeksInYear;proto.weeksInWeekYear=getWeeksInWeekYear;proto.isoWeeksInYear=getISOWeeksInYear;proto.isoWeeksInISOWeekYear=getISOWeeksInISOWeekYear;proto.date=getSetDayOfMonth;proto.day=proto.days=getSetDayOfWeek;proto.weekday=getSetLocaleDayOfWeek;proto.isoWeekday=getSetISODayOfWeek;proto.dayOfYear=getSetDayOfYear;proto.hour=proto.hours=getSetHour;proto.minute=proto.minutes=getSetMinute;proto.second=proto.seconds=getSetSecond;proto.millisecond=proto.milliseconds=getSetMillisecond;proto.utcOffset=getSetOffset;proto.utc=setOffsetToUTC;proto.local=setOffsetToLocal;proto.parseZone=setOffsetToParsedOffset;proto.hasAlignedHourOffset=hasAlignedHourOffset;proto.isDST=isDaylightSavingTime;proto.isLocal=isLocal;proto.isUtcOffset=isUtcOffset;proto.isUtc=isUtc;proto.isUTC=isUtc;proto.zoneAbbr=getZoneAbbr;proto.zoneName=getZoneName;proto.dates=deprecate('dates accessor is deprecated. Use date instead.',getSetDayOfMonth);proto.months=deprecate('months accessor is deprecated. Use month instead',getSetMonth);proto.years=deprecate('years accessor is deprecated. Use year instead',getSetYear);proto.zone=deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',getSetZone);proto.isDSTShifted=deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',isDaylightSavingTimeShifted);function createUnix(input){return createLocal(input*1000);}
function createInZone(){return createLocal.apply(null,arguments).parseZone();}
function preParsePostFormat(string){return string;}
var proto$1=Locale.prototype;proto$1.calendar=calendar;proto$1.longDateFormat=longDateFormat;proto$1.invalidDate=invalidDate;proto$1.ordinal=ordinal;proto$1.preparse=preParsePostFormat;proto$1.postformat=preParsePostFormat;proto$1.relativeTime=relativeTime;proto$1.pastFuture=pastFuture;proto$1.set=set;proto$1.eras=localeEras;proto$1.erasParse=localeErasParse;proto$1.erasConvertYear=localeErasConvertYear;proto$1.erasAbbrRegex=erasAbbrRegex;proto$1.erasNameRegex=erasNameRegex;proto$1.erasNarrowRegex=erasNarrowRegex;proto$1.months=localeMonths;proto$1.monthsShort=localeMonthsShort;proto$1.monthsParse=localeMonthsParse;proto$1.monthsRegex=monthsRegex;proto$1.monthsShortRegex=monthsShortRegex;proto$1.week=localeWeek;proto$1.firstDayOfYear=localeFirstDayOfYear;proto$1.firstDayOfWeek=localeFirstDayOfWeek;proto$1.weekdays=localeWeekdays;proto$1.weekdaysMin=localeWeekdaysMin;proto$1.weekdaysShort=localeWeekdaysShort;proto$1.weekdaysParse=localeWeekdaysParse;proto$1.weekdaysRegex=weekdaysRegex;proto$1.weekdaysShortRegex=weekdaysShortRegex;proto$1.weekdaysMinRegex=weekdaysMinRegex;proto$1.isPM=localeIsPM;proto$1.meridiem=localeMeridiem;function get$1(format,index,field,setter){var locale=getLocale(),utc=createUTC().set(setter,index);return locale[field](utc,format);}
function listMonthsImpl(format,index,field){if(isNumber(format)){index=format;format=undefined;}
format=format||'';if(index!=null){return get$1(format,index,field,'month');}
var i,out=[];for(i=0;i<12;i++){out[i]=get$1(format,i,field,'month');}
return out;}
function listWeekdaysImpl(localeSorted,format,index,field){if(typeof localeSorted==='boolean'){if(isNumber(format)){index=format;format=undefined;}
format=format||'';}else{format=localeSorted;index=format;localeSorted=false;if(isNumber(format)){index=format;format=undefined;}
format=format||'';}
var locale=getLocale(),shift=localeSorted?locale._week.dow:0,i,out=[];if(index!=null){return get$1(format,(index+shift)%7,field,'day');}
for(i=0;i<7;i++){out[i]=get$1(format,(i+shift)%7,field,'day');}
return out;}
function listMonths(format,index){return listMonthsImpl(format,index,'months');}
function listMonthsShort(format,index){return listMonthsImpl(format,index,'monthsShort');}
function listWeekdays(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,'weekdays');}
function listWeekdaysShort(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,'weekdaysShort');}
function listWeekdaysMin(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,'weekdaysMin');}
getSetGlobalLocale('en',{eras:[{since:'0001-01-01',until:+Infinity,offset:1,name:'Anno Domini',narrow:'AD',abbr:'AD',},{since:'0000-12-31',until:-Infinity,offset:1,name:'Before Christ',narrow:'BC',abbr:'BC',},],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(number){var b=number%10,output=toInt((number%100)/10)===1?'th':b===1?'st':b===2?'nd':b===3?'rd':'th';return number+output;},});hooks.lang=deprecate('moment.lang is deprecated. Use moment.locale instead.',getSetGlobalLocale);hooks.langData=deprecate('moment.langData is deprecated. Use moment.localeData instead.',getLocale);var mathAbs=Math.abs;function abs(){var data=this._data;this._milliseconds=mathAbs(this._milliseconds);this._days=mathAbs(this._days);this._months=mathAbs(this._months);data.milliseconds=mathAbs(data.milliseconds);data.seconds=mathAbs(data.seconds);data.minutes=mathAbs(data.minutes);data.hours=mathAbs(data.hours);data.months=mathAbs(data.months);data.years=mathAbs(data.years);return this;}
function addSubtract$1(duration,input,value,direction){var other=createDuration(input,value);duration._milliseconds+=direction*other._milliseconds;duration._days+=direction*other._days;duration._months+=direction*other._months;return duration._bubble();}
function add$1(input,value){return addSubtract$1(this,input,value,1);}
function subtract$1(input,value){return addSubtract$1(this,input,value,-1);}
function absCeil(number){if(number<0){return Math.floor(number);}else{return Math.ceil(number);}}
function bubble(){var milliseconds=this._milliseconds,days=this._days,months=this._months,data=this._data,seconds,minutes,hours,years,monthsFromDays;if(!((milliseconds>=0&&days>=0&&months>=0)||(milliseconds<=0&&days<=0&&months<=0))){milliseconds+=absCeil(monthsToDays(months)+days)*864e5;days=0;months=0;}
data.milliseconds=milliseconds%1000;seconds=absFloor(milliseconds/1000);data.seconds=seconds%60;minutes=absFloor(seconds/60);data.minutes=minutes%60;hours=absFloor(minutes/60);data.hours=hours%24;days+=absFloor(hours/24);monthsFromDays=absFloor(daysToMonths(days));months+=monthsFromDays;days-=absCeil(monthsToDays(monthsFromDays));years=absFloor(months/12);months%=12;data.days=days;data.months=months;data.years=years;return this;}
function daysToMonths(days){return(days*4800)/146097;}
function monthsToDays(months){return(months*146097)/4800;}
function as(units){if(!this.isValid()){return NaN;}
var days,months,milliseconds=this._milliseconds;units=normalizeUnits(units);if(units==='month'||units==='quarter'||units==='year'){days=this._days+milliseconds/864e5;months=this._months+daysToMonths(days);switch(units){case'month':return months;case'quarter':return months/3;case'year':return months/12;}}else{days=this._days+Math.round(monthsToDays(this._months));switch(units){case'week':return days/7+milliseconds/6048e5;case'day':return days+milliseconds/864e5;case'hour':return days*24+milliseconds/36e5;case'minute':return days*1440+milliseconds/6e4;case'second':return days*86400+milliseconds/1000;case'millisecond':return Math.floor(days*864e5)+milliseconds;default:throw new Error('Unknown unit '+units);}}}
function valueOf$1(){if(!this.isValid()){return NaN;}
return(this._milliseconds+
this._days*864e5+
(this._months%12)*2592e6+
toInt(this._months/12)*31536e6);}
function makeAs(alias){return function(){return this.as(alias);};}
var asMilliseconds=makeAs('ms'),asSeconds=makeAs('s'),asMinutes=makeAs('m'),asHours=makeAs('h'),asDays=makeAs('d'),asWeeks=makeAs('w'),asMonths=makeAs('M'),asQuarters=makeAs('Q'),asYears=makeAs('y');function clone$1(){return createDuration(this);}
function get$2(units){units=normalizeUnits(units);return this.isValid()?this[units+'s']():NaN;}
function makeGetter(name){return function(){return this.isValid()?this._data[name]:NaN;};}
var milliseconds=makeGetter('milliseconds'),seconds=makeGetter('seconds'),minutes=makeGetter('minutes'),hours=makeGetter('hours'),days=makeGetter('days'),months=makeGetter('months'),years=makeGetter('years');function weeks(){return absFloor(this.days()/7);}
var round=Math.round,thresholds={ss:44,s:45,m:45,h:22,d:26,w:null,M:11,};function substituteTimeAgo(string,number,withoutSuffix,isFuture,locale){return locale.relativeTime(number||1,!!withoutSuffix,string,isFuture);}
function relativeTime$1(posNegDuration,withoutSuffix,thresholds,locale){var duration=createDuration(posNegDuration).abs(),seconds=round(duration.as('s')),minutes=round(duration.as('m')),hours=round(duration.as('h')),days=round(duration.as('d')),months=round(duration.as('M')),weeks=round(duration.as('w')),years=round(duration.as('y')),a=(seconds<=thresholds.ss&&['s',seconds])||(seconds<thresholds.s&&['ss',seconds])||(minutes<=1&&['m'])||(minutes<thresholds.m&&['mm',minutes])||(hours<=1&&['h'])||(hours<thresholds.h&&['hh',hours])||(days<=1&&['d'])||(days<thresholds.d&&['dd',days]);if(thresholds.w!=null){a=a||(weeks<=1&&['w'])||(weeks<thresholds.w&&['ww',weeks]);}
a=a||(months<=1&&['M'])||(months<thresholds.M&&['MM',months])||(years<=1&&['y'])||['yy',years];a[2]=withoutSuffix;a[3]=+posNegDuration>0;a[4]=locale;return substituteTimeAgo.apply(null,a);}
function getSetRelativeTimeRounding(roundingFunction){if(roundingFunction===undefined){return round;}
if(typeof roundingFunction==='function'){round=roundingFunction;return true;}
return false;}
function getSetRelativeTimeThreshold(threshold,limit){if(thresholds[threshold]===undefined){return false;}
if(limit===undefined){return thresholds[threshold];}
thresholds[threshold]=limit;if(threshold==='s'){thresholds.ss=limit-1;}
return true;}
function humanize(argWithSuffix,argThresholds){if(!this.isValid()){return this.localeData().invalidDate();}
var withSuffix=false,th=thresholds,locale,output;if(typeof argWithSuffix==='object'){argThresholds=argWithSuffix;argWithSuffix=false;}
if(typeof argWithSuffix==='boolean'){withSuffix=argWithSuffix;}
if(typeof argThresholds==='object'){th=Object.assign({},thresholds,argThresholds);if(argThresholds.s!=null&&argThresholds.ss==null){th.ss=argThresholds.s-1;}}
locale=this.localeData();output=relativeTime$1(this,!withSuffix,th,locale);if(withSuffix){output=locale.pastFuture(+this,output);}
return locale.postformat(output);}
var abs$1=Math.abs;function sign(x){return(x>0)-(x<0)||+x;}
function toISOString$1(){if(!this.isValid()){return this.localeData().invalidDate();}
var seconds=abs$1(this._milliseconds)/1000,days=abs$1(this._days),months=abs$1(this._months),minutes,hours,years,s,total=this.asSeconds(),totalSign,ymSign,daysSign,hmsSign;if(!total){return'P0D';}
minutes=absFloor(seconds/60);hours=absFloor(minutes/60);seconds%=60;minutes%=60;years=absFloor(months/12);months%=12;s=seconds?seconds.toFixed(3).replace(/\.?0+$/,''):'';totalSign=total<0?'-':'';ymSign=sign(this._months)!==sign(total)?'-':'';daysSign=sign(this._days)!==sign(total)?'-':'';hmsSign=sign(this._milliseconds)!==sign(total)?'-':'';return(totalSign+'P'+
(years?ymSign+years+'Y':'')+
(months?ymSign+months+'M':'')+
(days?daysSign+days+'D':'')+
(hours||minutes||seconds?'T':'')+
(hours?hmsSign+hours+'H':'')+
(minutes?hmsSign+minutes+'M':'')+
(seconds?hmsSign+s+'S':''));}
var proto$2=Duration.prototype;proto$2.isValid=isValid$1;proto$2.abs=abs;proto$2.add=add$1;proto$2.subtract=subtract$1;proto$2.as=as;proto$2.asMilliseconds=asMilliseconds;proto$2.asSeconds=asSeconds;proto$2.asMinutes=asMinutes;proto$2.asHours=asHours;proto$2.asDays=asDays;proto$2.asWeeks=asWeeks;proto$2.asMonths=asMonths;proto$2.asQuarters=asQuarters;proto$2.asYears=asYears;proto$2.valueOf=valueOf$1;proto$2._bubble=bubble;proto$2.clone=clone$1;proto$2.get=get$2;proto$2.milliseconds=milliseconds;proto$2.seconds=seconds;proto$2.minutes=minutes;proto$2.hours=hours;proto$2.days=days;proto$2.weeks=weeks;proto$2.months=months;proto$2.years=years;proto$2.humanize=humanize;proto$2.toISOString=toISOString$1;proto$2.toString=toISOString$1;proto$2.toJSON=toISOString$1;proto$2.locale=locale;proto$2.localeData=localeData;proto$2.toIsoString=deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',toISOString$1);proto$2.lang=lang;addFormatToken('X',0,0,'unix');addFormatToken('x',0,0,'valueOf');addRegexToken('x',matchSigned);addRegexToken('X',matchTimestamp);addParseToken('X',function(input,array,config){config._d=new Date(parseFloat(input)*1000);});addParseToken('x',function(input,array,config){config._d=new Date(toInt(input));});hooks.version='2.29.4';setHookCallback(createLocal);hooks.fn=proto;hooks.min=min;hooks.max=max;hooks.now=now;hooks.utc=createUTC;hooks.unix=createUnix;hooks.months=listMonths;hooks.isDate=isDate;hooks.locale=getSetGlobalLocale;hooks.invalid=createInvalid;hooks.duration=createDuration;hooks.isMoment=isMoment;hooks.weekdays=listWeekdays;hooks.parseZone=createInZone;hooks.localeData=getLocale;hooks.isDuration=isDuration;hooks.monthsShort=listMonthsShort;hooks.weekdaysMin=listWeekdaysMin;hooks.defineLocale=defineLocale;hooks.updateLocale=updateLocale;hooks.locales=listLocales;hooks.weekdaysShort=listWeekdaysShort;hooks.normalizeUnits=normalizeUnits;hooks.relativeTimeRounding=getSetRelativeTimeRounding;hooks.relativeTimeThreshold=getSetRelativeTimeThreshold;hooks.calendarFormat=getCalendarFormat;hooks.prototype=proto;hooks.HTML5_FMT={DATETIME_LOCAL:'YYYY-MM-DDTHH:mm',DATETIME_LOCAL_SECONDS:'YYYY-MM-DDTHH:mm:ss',DATETIME_LOCAL_MS:'YYYY-MM-DDTHH:mm:ss.SSS',DATE:'YYYY-MM-DD',TIME:'HH:mm',TIME_SECONDS:'HH:mm:ss',TIME_MS:'HH:mm:ss.SSS',WEEK:'GGGG-[W]WW',MONTH:'YYYY-MM',};return hooks;})));(function(root,factory){"use strict";if(typeof define==='function'&&define.amd){define(['moment'],factory);}else if(typeof module==='object'&&module.exports){module.exports=factory(require('moment'));}else{factory(root.moment);}}(this,function(moment){"use strict";var VERSION="0.5.17",zones={},links={},names={},guesses={},cachedGuess,momentVersion=moment.version.split('.'),major=+momentVersion[0],minor=+momentVersion[1];if(major<2||(major===2&&minor<6)){logError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js '+moment.version+'. See momentjs.com');}
function charCodeToInt(charCode){if(charCode>96){return charCode-87;}else if(charCode>64){return charCode-29;}
return charCode-48;}
function unpackBase60(string){var i=0,parts=string.split('.'),whole=parts[0],fractional=parts[1]||'',multiplier=1,num,out=0,sign=1;if(string.charCodeAt(0)===45){i=1;sign=-1;}
for(i;i<whole.length;i++){num=charCodeToInt(whole.charCodeAt(i));out=60*out+num;}
for(i=0;i<fractional.length;i++){multiplier=multiplier/60;num=charCodeToInt(fractional.charCodeAt(i));out+=num*multiplier;}
return out*sign;}
function arrayToInt(array){for(var i=0;i<array.length;i++){array[i]=unpackBase60(array[i]);}}
function intToUntil(array,length){for(var i=0;i<length;i++){array[i]=Math.round((array[i-1]||0)+(array[i]*60000));}
array[length-1]=Infinity;}
function mapIndices(source,indices){var out=[],i;for(i=0;i<indices.length;i++){out[i]=source[indices[i]];}
return out;}
function unpack(string){var data=string.split('|'),offsets=data[2].split(' '),indices=data[3].split(''),untils=data[4].split(' ');arrayToInt(offsets);arrayToInt(indices);arrayToInt(untils);intToUntil(untils,indices.length);return{name:data[0],abbrs:mapIndices(data[1].split(' '),indices),offsets:mapIndices(offsets,indices),untils:untils,population:data[5]|0};}
function Zone(packedString){if(packedString){this._set(unpack(packedString));}}
Zone.prototype={_set:function(unpacked){this.name=unpacked.name;this.abbrs=unpacked.abbrs;this.untils=unpacked.untils;this.offsets=unpacked.offsets;this.population=unpacked.population;},_index:function(timestamp){var target=+timestamp,untils=this.untils,i;for(i=0;i<untils.length;i++){if(target<untils[i]){return i;}}},parse:function(timestamp){var target=+timestamp,offsets=this.offsets,untils=this.untils,max=untils.length-1,offset,offsetNext,offsetPrev,i;for(i=0;i<max;i++){offset=offsets[i];offsetNext=offsets[i+1];offsetPrev=offsets[i?i-1:i];if(offset<offsetNext&&tz.moveAmbiguousForward){offset=offsetNext;}else if(offset>offsetPrev&&tz.moveInvalidForward){offset=offsetPrev;}
if(target<untils[i]-(offset*60000)){return offsets[i];}}
return offsets[max];},abbr:function(mom){return this.abbrs[this._index(mom)];},offset:function(mom){logError("zone.offset has been deprecated in favor of zone.utcOffset");return this.offsets[this._index(mom)];},utcOffset:function(mom){return this.offsets[this._index(mom)];}};function OffsetAt(at){var timeString=at.toTimeString();var abbr=timeString.match(/\([a-z ]+\)/i);if(abbr&&abbr[0]){abbr=abbr[0].match(/[A-Z]/g);abbr=abbr?abbr.join(''):undefined;}else{abbr=timeString.match(/[A-Z]{3,5}/g);abbr=abbr?abbr[0]:undefined;}
if(abbr==='GMT'){abbr=undefined;}
this.at=+at;this.abbr=abbr;this.offset=at.getTimezoneOffset();}
function ZoneScore(zone){this.zone=zone;this.offsetScore=0;this.abbrScore=0;}
ZoneScore.prototype.scoreOffsetAt=function(offsetAt){this.offsetScore+=Math.abs(this.zone.utcOffset(offsetAt.at)-offsetAt.offset);if(this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g,'')!==offsetAt.abbr){this.abbrScore++;}};function findChange(low,high){var mid,diff;while((diff=((high.at-low.at)/12e4|0)*6e4)){mid=new OffsetAt(new Date(low.at+diff));if(mid.offset===low.offset){low=mid;}else{high=mid;}}
return low;}
function userOffsets(){var startYear=new Date().getFullYear()-2,last=new OffsetAt(new Date(startYear,0,1)),offsets=[last],change,next,i;for(i=1;i<48;i++){next=new OffsetAt(new Date(startYear,i,1));if(next.offset!==last.offset){change=findChange(last,next);offsets.push(change);offsets.push(new OffsetAt(new Date(change.at+6e4)));}
last=next;}
for(i=0;i<4;i++){offsets.push(new OffsetAt(new Date(startYear+i,0,1)));offsets.push(new OffsetAt(new Date(startYear+i,6,1)));}
return offsets;}
function sortZoneScores(a,b){if(a.offsetScore!==b.offsetScore){return a.offsetScore-b.offsetScore;}
if(a.abbrScore!==b.abbrScore){return a.abbrScore-b.abbrScore;}
return b.zone.population-a.zone.population;}
function addToGuesses(name,offsets){var i,offset;arrayToInt(offsets);for(i=0;i<offsets.length;i++){offset=offsets[i];guesses[offset]=guesses[offset]||{};guesses[offset][name]=true;}}
function guessesForUserOffsets(offsets){var offsetsLength=offsets.length,filteredGuesses={},out=[],i,j,guessesOffset;for(i=0;i<offsetsLength;i++){guessesOffset=guesses[offsets[i].offset]||{};for(j in guessesOffset){if(guessesOffset.hasOwnProperty(j)){filteredGuesses[j]=true;}}}
for(i in filteredGuesses){if(filteredGuesses.hasOwnProperty(i)){out.push(names[i]);}}
return out;}
function rebuildGuess(){try{var intlName=Intl.DateTimeFormat().resolvedOptions().timeZone;if(intlName&&intlName.length>3){var name=names[normalizeName(intlName)];if(name){return name;}
logError("Moment Timezone found "+intlName+" from the Intl api, but did not have that data loaded.");}}catch(e){}
var offsets=userOffsets(),offsetsLength=offsets.length,guesses=guessesForUserOffsets(offsets),zoneScores=[],zoneScore,i,j;for(i=0;i<guesses.length;i++){zoneScore=new ZoneScore(getZone(guesses[i]),offsetsLength);for(j=0;j<offsetsLength;j++){zoneScore.scoreOffsetAt(offsets[j]);}
zoneScores.push(zoneScore);}
zoneScores.sort(sortZoneScores);return zoneScores.length>0?zoneScores[0].zone.name:undefined;}
function guess(ignoreCache){if(!cachedGuess||ignoreCache){cachedGuess=rebuildGuess();}
return cachedGuess;}
function normalizeName(name){return(name||'').toLowerCase().replace(/\//g,'_');}
function addZone(packed){var i,name,split,normalized;if(typeof packed==="string"){packed=[packed];}
for(i=0;i<packed.length;i++){split=packed[i].split('|');name=split[0];normalized=normalizeName(name);zones[normalized]=packed[i];names[normalized]=name;addToGuesses(normalized,split[2].split(' '));}}
function getZone(name,caller){name=normalizeName(name);var zone=zones[name];var link;if(zone instanceof Zone){return zone;}
if(typeof zone==='string'){zone=new Zone(zone);zones[name]=zone;return zone;}
if(links[name]&&caller!==getZone&&(link=getZone(links[name],getZone))){zone=zones[name]=new Zone();zone._set(link);zone.name=names[name];return zone;}
return null;}
function getNames(){var i,out=[];for(i in names){if(names.hasOwnProperty(i)&&(zones[i]||zones[links[i]])&&names[i]){out.push(names[i]);}}
return out.sort();}
function addLink(aliases){var i,alias,normal0,normal1;if(typeof aliases==="string"){aliases=[aliases];}
for(i=0;i<aliases.length;i++){alias=aliases[i].split('|');normal0=normalizeName(alias[0]);normal1=normalizeName(alias[1]);links[normal0]=normal1;names[normal0]=alias[0];links[normal1]=normal0;names[normal1]=alias[1];}}
function loadData(data){addZone(data.zones);addLink(data.links);tz.dataVersion=data.version;}
function zoneExists(name){if(!zoneExists.didShowError){zoneExists.didShowError=true;logError("moment.tz.zoneExists('"+name+"') has been deprecated in favor of !moment.tz.zone('"+name+"')");}
return!!getZone(name);}
function needsOffset(m){var isUnixTimestamp=(m._f==='X'||m._f==='x');return!!(m._a&&(m._tzm===undefined)&&!isUnixTimestamp);}
function logError(message){if(typeof console!=='undefined'&&typeof console.error==='function'){console.error(message);}}
function tz(input){var args=Array.prototype.slice.call(arguments,0,-1),name=arguments[arguments.length-1],zone=getZone(name),out=moment.utc.apply(null,args);if(zone&&!moment.isMoment(input)&&needsOffset(out)){out.add(zone.parse(out),'minutes');}
out.tz(name);return out;}
tz.version=VERSION;tz.dataVersion='';tz._zones=zones;tz._links=links;tz._names=names;tz.add=addZone;tz.link=addLink;tz.load=loadData;tz.zone=getZone;tz.zoneExists=zoneExists;tz.guess=guess;tz.names=getNames;tz.Zone=Zone;tz.unpack=unpack;tz.unpackBase60=unpackBase60;tz.needsOffset=needsOffset;tz.moveInvalidForward=true;tz.moveAmbiguousForward=false;var fn=moment.fn;moment.tz=tz;moment.defaultZone=null;moment.updateOffset=function(mom,keepTime){var zone=moment.defaultZone,offset;if(mom._z===undefined){if(zone&&needsOffset(mom)&&!mom._isUTC){mom._d=moment.utc(mom._a)._d;mom.utc().add(zone.parse(mom),'minutes');}
mom._z=zone;}
if(mom._z){offset=mom._z.utcOffset(mom);if(Math.abs(offset)<16){offset=offset/60;}
if(mom.utcOffset!==undefined){mom.utcOffset(-offset,keepTime);}else{mom.zone(offset,keepTime);}}};fn.tz=function(name,keepTime){if(name){this._z=getZone(name);if(this._z){moment.updateOffset(this,keepTime);}else{logError("Moment Timezone has no data for "+name+". See http://momentjs.com/timezone/docs/#/data-loading/.");}
return this;}
if(this._z){return this._z.name;}};function abbrWrap(old){return function(){if(this._z){return this._z.abbr(this);}
return old.call(this);};}
function resetZoneWrap(old){return function(){this._z=null;return old.apply(this,arguments);};}
fn.zoneName=abbrWrap(fn.zoneName);fn.zoneAbbr=abbrWrap(fn.zoneAbbr);fn.utc=resetZoneWrap(fn.utc);moment.tz.setDefault=function(name){if(major<2||(major===2&&minor<9)){logError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js '+moment.version+'.');}
moment.defaultZone=name?getZone(name):null;return moment;};var momentProperties=moment.momentProperties;if(Object.prototype.toString.call(momentProperties)==='[object Array]'){momentProperties.push('_z');momentProperties.push('_a');}else if(momentProperties){momentProperties._z=null;}
return moment;}));(function(root,factory){"use strict";if(typeof define==='function'&&define.amd){define(['moment'],factory);}else if(typeof module==='object'&&module.exports){module.exports=factory(require('moment'));}else{factory(root.moment);}}(this,function(moment){"use strict";var VERSION="0.5.17",zones={},links={},names={},guesses={},cachedGuess,momentVersion=moment.version.split('.'),major=+momentVersion[0],minor=+momentVersion[1];if(major<2||(major===2&&minor<6)){logError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js '+moment.version+'. See momentjs.com');}
function charCodeToInt(charCode){if(charCode>96){return charCode-87;}else if(charCode>64){return charCode-29;}
return charCode-48;}
function unpackBase60(string){var i=0,parts=string.split('.'),whole=parts[0],fractional=parts[1]||'',multiplier=1,num,out=0,sign=1;if(string.charCodeAt(0)===45){i=1;sign=-1;}
for(i;i<whole.length;i++){num=charCodeToInt(whole.charCodeAt(i));out=60*out+num;}
for(i=0;i<fractional.length;i++){multiplier=multiplier/60;num=charCodeToInt(fractional.charCodeAt(i));out+=num*multiplier;}
return out*sign;}
function arrayToInt(array){for(var i=0;i<array.length;i++){array[i]=unpackBase60(array[i]);}}
function intToUntil(array,length){for(var i=0;i<length;i++){array[i]=Math.round((array[i-1]||0)+(array[i]*60000));}
array[length-1]=Infinity;}
function mapIndices(source,indices){var out=[],i;for(i=0;i<indices.length;i++){out[i]=source[indices[i]];}
return out;}
function unpack(string){var data=string.split('|'),offsets=data[2].split(' '),indices=data[3].split(''),untils=data[4].split(' ');arrayToInt(offsets);arrayToInt(indices);arrayToInt(untils);intToUntil(untils,indices.length);return{name:data[0],abbrs:mapIndices(data[1].split(' '),indices),offsets:mapIndices(offsets,indices),untils:untils,population:data[5]|0};}
function Zone(packedString){if(packedString){this._set(unpack(packedString));}}
Zone.prototype={_set:function(unpacked){this.name=unpacked.name;this.abbrs=unpacked.abbrs;this.untils=unpacked.untils;this.offsets=unpacked.offsets;this.population=unpacked.population;},_index:function(timestamp){var target=+timestamp,untils=this.untils,i;for(i=0;i<untils.length;i++){if(target<untils[i]){return i;}}},parse:function(timestamp){var target=+timestamp,offsets=this.offsets,untils=this.untils,max=untils.length-1,offset,offsetNext,offsetPrev,i;for(i=0;i<max;i++){offset=offsets[i];offsetNext=offsets[i+1];offsetPrev=offsets[i?i-1:i];if(offset<offsetNext&&tz.moveAmbiguousForward){offset=offsetNext;}else if(offset>offsetPrev&&tz.moveInvalidForward){offset=offsetPrev;}
if(target<untils[i]-(offset*60000)){return offsets[i];}}
return offsets[max];},abbr:function(mom){return this.abbrs[this._index(mom)];},offset:function(mom){logError("zone.offset has been deprecated in favor of zone.utcOffset");return this.offsets[this._index(mom)];},utcOffset:function(mom){return this.offsets[this._index(mom)];}};function OffsetAt(at){var timeString=at.toTimeString();var abbr=timeString.match(/\([a-z ]+\)/i);if(abbr&&abbr[0]){abbr=abbr[0].match(/[A-Z]/g);abbr=abbr?abbr.join(''):undefined;}else{abbr=timeString.match(/[A-Z]{3,5}/g);abbr=abbr?abbr[0]:undefined;}
if(abbr==='GMT'){abbr=undefined;}
this.at=+at;this.abbr=abbr;this.offset=at.getTimezoneOffset();}
function ZoneScore(zone){this.zone=zone;this.offsetScore=0;this.abbrScore=0;}
ZoneScore.prototype.scoreOffsetAt=function(offsetAt){this.offsetScore+=Math.abs(this.zone.utcOffset(offsetAt.at)-offsetAt.offset);if(this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g,'')!==offsetAt.abbr){this.abbrScore++;}};function findChange(low,high){var mid,diff;while((diff=((high.at-low.at)/12e4|0)*6e4)){mid=new OffsetAt(new Date(low.at+diff));if(mid.offset===low.offset){low=mid;}else{high=mid;}}
return low;}
function userOffsets(){var startYear=new Date().getFullYear()-2,last=new OffsetAt(new Date(startYear,0,1)),offsets=[last],change,next,i;for(i=1;i<48;i++){next=new OffsetAt(new Date(startYear,i,1));if(next.offset!==last.offset){change=findChange(last,next);offsets.push(change);offsets.push(new OffsetAt(new Date(change.at+6e4)));}
last=next;}
for(i=0;i<4;i++){offsets.push(new OffsetAt(new Date(startYear+i,0,1)));offsets.push(new OffsetAt(new Date(startYear+i,6,1)));}
return offsets;}
function sortZoneScores(a,b){if(a.offsetScore!==b.offsetScore){return a.offsetScore-b.offsetScore;}
if(a.abbrScore!==b.abbrScore){return a.abbrScore-b.abbrScore;}
return b.zone.population-a.zone.population;}
function addToGuesses(name,offsets){var i,offset;arrayToInt(offsets);for(i=0;i<offsets.length;i++){offset=offsets[i];guesses[offset]=guesses[offset]||{};guesses[offset][name]=true;}}
function guessesForUserOffsets(offsets){var offsetsLength=offsets.length,filteredGuesses={},out=[],i,j,guessesOffset;for(i=0;i<offsetsLength;i++){guessesOffset=guesses[offsets[i].offset]||{};for(j in guessesOffset){if(guessesOffset.hasOwnProperty(j)){filteredGuesses[j]=true;}}}
for(i in filteredGuesses){if(filteredGuesses.hasOwnProperty(i)){out.push(names[i]);}}
return out;}
function rebuildGuess(){try{var intlName=Intl.DateTimeFormat().resolvedOptions().timeZone;if(intlName&&intlName.length>3){var name=names[normalizeName(intlName)];if(name){return name;}
logError("Moment Timezone found "+intlName+" from the Intl api, but did not have that data loaded.");}}catch(e){}
var offsets=userOffsets(),offsetsLength=offsets.length,guesses=guessesForUserOffsets(offsets),zoneScores=[],zoneScore,i,j;for(i=0;i<guesses.length;i++){zoneScore=new ZoneScore(getZone(guesses[i]),offsetsLength);for(j=0;j<offsetsLength;j++){zoneScore.scoreOffsetAt(offsets[j]);}
zoneScores.push(zoneScore);}
zoneScores.sort(sortZoneScores);return zoneScores.length>0?zoneScores[0].zone.name:undefined;}
function guess(ignoreCache){if(!cachedGuess||ignoreCache){cachedGuess=rebuildGuess();}
return cachedGuess;}
function normalizeName(name){return(name||'').toLowerCase().replace(/\//g,'_');}
function addZone(packed){var i,name,split,normalized;if(typeof packed==="string"){packed=[packed];}
for(i=0;i<packed.length;i++){split=packed[i].split('|');name=split[0];normalized=normalizeName(name);zones[normalized]=packed[i];names[normalized]=name;addToGuesses(normalized,split[2].split(' '));}}
function getZone(name,caller){name=normalizeName(name);var zone=zones[name];var link;if(zone instanceof Zone){return zone;}
if(typeof zone==='string'){zone=new Zone(zone);zones[name]=zone;return zone;}
if(links[name]&&caller!==getZone&&(link=getZone(links[name],getZone))){zone=zones[name]=new Zone();zone._set(link);zone.name=names[name];return zone;}
return null;}
function getNames(){var i,out=[];for(i in names){if(names.hasOwnProperty(i)&&(zones[i]||zones[links[i]])&&names[i]){out.push(names[i]);}}
return out.sort();}
function addLink(aliases){var i,alias,normal0,normal1;if(typeof aliases==="string"){aliases=[aliases];}
for(i=0;i<aliases.length;i++){alias=aliases[i].split('|');normal0=normalizeName(alias[0]);normal1=normalizeName(alias[1]);links[normal0]=normal1;names[normal0]=alias[0];links[normal1]=normal0;names[normal1]=alias[1];}}
function loadData(data){addZone(data.zones);addLink(data.links);tz.dataVersion=data.version;}
function zoneExists(name){if(!zoneExists.didShowError){zoneExists.didShowError=true;logError("moment.tz.zoneExists('"+name+"') has been deprecated in favor of !moment.tz.zone('"+name+"')");}
return!!getZone(name);}
function needsOffset(m){var isUnixTimestamp=(m._f==='X'||m._f==='x');return!!(m._a&&(m._tzm===undefined)&&!isUnixTimestamp);}
function logError(message){if(typeof console!=='undefined'&&typeof console.error==='function'){console.error(message);}}
function tz(input){var args=Array.prototype.slice.call(arguments,0,-1),name=arguments[arguments.length-1],zone=getZone(name),out=moment.utc.apply(null,args);if(zone&&!moment.isMoment(input)&&needsOffset(out)){out.add(zone.parse(out),'minutes');}
out.tz(name);return out;}
tz.version=VERSION;tz.dataVersion='';tz._zones=zones;tz._links=links;tz._names=names;tz.add=addZone;tz.link=addLink;tz.load=loadData;tz.zone=getZone;tz.zoneExists=zoneExists;tz.guess=guess;tz.names=getNames;tz.Zone=Zone;tz.unpack=unpack;tz.unpackBase60=unpackBase60;tz.needsOffset=needsOffset;tz.moveInvalidForward=true;tz.moveAmbiguousForward=false;var fn=moment.fn;moment.tz=tz;moment.defaultZone=null;moment.updateOffset=function(mom,keepTime){var zone=moment.defaultZone,offset;if(mom._z===undefined){if(zone&&needsOffset(mom)&&!mom._isUTC){mom._d=moment.utc(mom._a)._d;mom.utc().add(zone.parse(mom),'minutes');}
mom._z=zone;}
if(mom._z){offset=mom._z.utcOffset(mom);if(Math.abs(offset)<16){offset=offset/60;}
if(mom.utcOffset!==undefined){mom.utcOffset(-offset,keepTime);}else{mom.zone(offset,keepTime);}}};fn.tz=function(name,keepTime){if(name){this._z=getZone(name);if(this._z){moment.updateOffset(this,keepTime);}else{logError("Moment Timezone has no data for "+name+". See http://momentjs.com/timezone/docs/#/data-loading/.");}
return this;}
if(this._z){return this._z.name;}};function abbrWrap(old){return function(){if(this._z){return this._z.abbr(this);}
return old.call(this);};}
function resetZoneWrap(old){return function(){this._z=null;return old.apply(this,arguments);};}
fn.zoneName=abbrWrap(fn.zoneName);fn.zoneAbbr=abbrWrap(fn.zoneAbbr);fn.utc=resetZoneWrap(fn.utc);moment.tz.setDefault=function(name){if(major<2||(major===2&&minor<9)){logError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js '+moment.version+'.');}
moment.defaultZone=name?getZone(name):null;return moment;};var momentProperties=moment.momentProperties;if(Object.prototype.toString.call(momentProperties)==='[object Array]'){momentProperties.push('_z');momentProperties.push('_a');}else if(momentProperties){momentProperties._z=null;}
loadData({"version":"2018e","zones":["Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5","Africa/Accra|LMT GMT +0020|.Q 0 -k|012121212121212121212121212121212121212121212121|-26BbX.8 6tzX.8 MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE|41e5","Africa/Nairobi|LMT EAT +0230 +0245|-2r.g -30 -2u -2J|01231|-1F3Cr.g 3Dzr.g okMu MFXJ|47e5","Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5","Africa/Lagos|LMT WAT|-d.A -10|01|-22y0d.A|17e6","Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4","Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5","Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6","Africa/Casablanca|LMT WET WEST CET|u.k 0 -10 -10|0121212121212121213121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 Rc0 11A0 e00 e00 U00 11A0 8o0 e00 11A0 11A0 5A0 e00 17c0 1fA0 1a00 1a00 1fA0 17c0 1io0 14o0 1lc0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1lc0 14o0 1fA0|32e5","Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3","Africa/El_Aaiun|LMT -01 WET WEST|Q.M 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 Rc0 11A0 e00 e00 U00 11A0 8o0 e00 11A0 11A0 5A0 e00 17c0 1fA0 1a00 1a00 1fA0 17c0 1io0 14o0 1lc0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1lc0 14o0 1fA0|20e4","Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5","Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|01212121212121212121212121212121213|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0","Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5","Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5","Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5","Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|012|-2le00 4i6N0","Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5","Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5","Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4","America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326","America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4","America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3","America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4","America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0","America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0","America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0","America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0","America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0","America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0","America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0","America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0","America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0","America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0","America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0","America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0","America/Curacao|LMT -0430 AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4","America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5","America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2","America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3","America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5","America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4","America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5","America/Belize|LMT CST -0530 CDT|5Q.M 60 5u 50|01212121212121212121212121212121212121212121212121213131|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1f0Mu qn0 lxB0 mn0|57e3","America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2","America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2","America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5","America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4","America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2","America/Campo_Grande|LMT -04 -03|3C.s 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0 IL0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1Kp0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0|77e4","America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4","America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5","America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3","America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5","America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5","America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4","America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5","America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2","America/Cuiaba|LMT -04 -03|3I.k 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0 IL0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1Kp0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0|54e4","America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8","America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3","America/Dawson|YST YDT YWT YPT YDDT PST PDT|90 80 80 80 70 80 70|0101023040565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|13e2","America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5","America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|012342525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 XQp0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5","America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|01212121212121341212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 LFB0 1cL0 3Cp0 1cL0 66N0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5","America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3","America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5","America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5","America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2","America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5","America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3","America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3","America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2","America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|01212121212121212121212121212121212121212121212121212121212121212121212121232121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 5Ip0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2","America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5","America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5","America/Guyana|LMT -0345 -03 -04|3Q.E 3J 30 40|0123|-2dvU7.k 2r6LQ.k Bxbf|80e4","America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4","America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5","America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4","America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2","America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2","America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4","America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3","America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 Bb0 10N0 2bB0 8in0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5","America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6","America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6","America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4","America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5","America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5","America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4","America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4","America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4","America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2","America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5","America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|0120303030303030303030303030303030454545454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2","America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6","America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2","America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3","America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5","America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5","America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5","America/Nassau|LMT EST EDT|59.u 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2kNuO.u 26XdO.u 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4","America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6","America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2","America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2","America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2","America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3","America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2","America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4","America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5","America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5","America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4","America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4","America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5","America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0","America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842","America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2","America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5","America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4","America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229","America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4","America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0|62e5","America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5","America/Sao_Paulo|LMT -03 -02|36.s 30 20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0 IL0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1Kp0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0|20e6","America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452","America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2","America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4","America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3","America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5","America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656","America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4","America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5","America/Whitehorse|YST YDT YWT YPT YDDT PST PDT|90 80 80 80 70 80 70|0101023040565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3","America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4","America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642","America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3","Antarctica/Casey|-00 +08 +11|0 -80 -b0|01212121|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10|10","Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70","Antarctica/DumontDUrville|-00 +10|0 -a0|0101|-U0o0 cfq0 bFm0|80","Antarctica/Macquarie|AEST AEDT -00 +11|-a0 -b0 0 -b0|0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101013|-29E80 19X0 4SL0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0|1","Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60","Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5","Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40","Antarctica/Rothera|-00 -03|0 30|01|gOo0|130","Antarctica/Syowa|-00 +03|0 -30|01|-vs00|20","Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40","Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25","Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4","Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5","Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5","Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5","Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3","Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4","Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4","Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4","Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0","Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5","Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4","Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5","Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6","Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0","Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5","Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4","Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4","Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6","Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4","Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3","Asia/Shanghai|CST CDT|-80 -90|01010101010101010|-1c1I0 LX0 16p0 1jz0 1Myp0 Rb0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6","Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5","Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6","Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5","Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4","Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5","Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4","Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00","Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101012323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0|18e5","Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|01010101010101010101010101010101232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0|25e4","Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5","Asia/Hong_Kong|LMT HKT HKST JST|-7A.G -80 -90 -90|0121312121212121212121212121212121212121212121212121212121212121212121|-2CFHA.G 1sEP6.G 1cL0 ylu 93X0 1qQu 1tX0 Rd0 1In0 NB0 1cL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1kL0 14N0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5","Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3","Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4","Europe/Istanbul|IMT EET EEST +04 +03|-1U.U -20 -30 -40 -30|012121212121212121212121212121212121212121212121212121234343434342121212121212121212121212121212121212121212121212121212121212124|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSp0 CL0 mN0 1Vz0 1gN0 1pz0 5Rd0 1fz0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1jB0 18L0 1ip0 17z0 qdd0 xX0 3S10 Tz0 dA10 11z0 1o10 11z0 1qN0 11z0 1ze0 11B0 WM0 1qO0 WI0 1nX0 1rB0 10L0 11B0 1in0 17d0 1in0 2pX0 19E0 1fU0 16Q0 1iI0 16Q0 1iI0 1Vd0 pb0 3Kp0 14o0 1de0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6","Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6","Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4","Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|01212121212132121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyMk.E 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 3LB0 Em0 or0 1cn0 1dB0 16n0 10O0 1ja0 1tC0 14o0 1cM0 1a00 11A0 1Na0 An0 1MP0 AJ0 1Kp0 LC0 1oo0 Wl0 EQN0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4","Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5","Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4","Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6","Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5","Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5","Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2","Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5","Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5","Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4","Asia/Macau|LMT CST CDT|-7y.k -80 -90|012121212121212121212121212121212121212121|-2le80 1XO3u 1wn0 Rd0 1wn0 R9u 1wqu U10 1tz0 TVu 1tz0 17gu 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cJu 1cL0 1cN0 1fz0 1cN0 1cOu 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cJu 1cL0 1cN0 1fz0 1cN0 1cL0|57e4","Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3","Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5","Asia/Manila|+08 +09|-80 -90|010101010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6","Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4","Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4","Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5","Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5","Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4","Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4","Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BAu|29e5","Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|0123232323232323232323232323232323232323232323|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|73e4","Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5","Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4","Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4","Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -9u -a0|0123141414141414135353|-2um8r.Q 97XV.Q 1m1zu kKo0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6","Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2","Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5","Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5","Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5","Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6","Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3","Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rb0 1ld0 14n0 1zd0 On0 1zd0 On0|38e6","Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5","Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5","Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2","Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4","Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4","Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5","Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5","Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4","Atlantic/Bermuda|LMT AST ADT|4j.i 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1BnRE.G 1LTbE.G 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3","Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4","Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3","Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4","Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4","Atlantic/South_Georgia|-02|20|0||30","Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2","Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5","Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5","Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5","Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3","Australia/Currie|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|746","Australia/Darwin|ACST ACDT|-9u -au|010101010|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0|12e4","Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293kI xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368","Australia/Hobart|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 VfB0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4","Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347","Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10","Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5","Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293jX xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5","CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00","Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0|30e2","CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00","Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","EST|EST|50|0|","EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","Etc/GMT-0|GMT|0|0|","Etc/GMT-1|+01|-10|0|","Pacific/Port_Moresby|+10|-a0|0||25e4","Pacific/Pohnpei|+11|-b0|0||34e3","Pacific/Tarawa|+12|-c0|0||29e3","Etc/GMT-13|+13|-d0|0|","Etc/GMT-14|+14|-e0|0|","Etc/GMT-2|+02|-20|0|","Etc/GMT-3|+03|-30|0|","Etc/GMT-4|+04|-40|0|","Etc/GMT-5|+05|-50|0|","Etc/GMT-6|+06|-60|0|","Indian/Christmas|+07|-70|0||21e2","Etc/GMT-8|+08|-80|0|","Pacific/Palau|+09|-90|0||21e3","Etc/GMT+1|-01|10|0|","Etc/GMT+10|-10|a0|0|","Etc/GMT+11|-11|b0|0|","Etc/GMT+12|-12|c0|0|","Etc/GMT+3|-03|30|0|","Etc/GMT+4|-04|40|0|","Etc/GMT+5|-05|50|0|","Etc/GMT+6|-06|60|0|","Etc/GMT+7|-07|70|0|","Etc/GMT+8|-08|80|0|","Etc/GMT+9|-09|90|0|","Etc/UCT|UCT|0|0|","Etc/UTC|UTC|0|0|","Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5","Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3","Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0","Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5","Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6","Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5","Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5","Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5","Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5","Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1ip0 17b0 1op0 1tb0 Q2m0 3Ne0 WM0 1fA0 1cM0 1cM0 1oJ0 1dc0 1030 1fA0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1iM0 1fA0 8Ha0 Rb0 1wN0 Rb0 1BB0 Lz0 1C20 LB0 SNX0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5","Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4","Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4","Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3","Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Kaliningrad|CET CEST CET CEST MSK MSD EEST EET +03|-10 -20 -20 -30 -30 -40 -30 -20 -30|0101010101010232454545454545454546767676767676767676767676767676767676767676787|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 Am0 Lb0 1en0 op0 1pNz0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4","Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5","Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4","Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5","Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5","Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4","Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5","Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3","Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6","Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco8.l cNb8.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6","Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4","Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5","Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5","Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810","Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4","Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5","Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4","Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4","Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0","Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4","Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1a00 1cM0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5","Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|01232323232323232121212121212121212121212121212121212121212121|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5","Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5","Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4","HST|HST|a0|0|","Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2","Indian/Cocos|+0630|-6u|0||596","Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130","Indian/Mahe|LMT +04|-3F.M -40|01|-2yO3F.M|79e3","Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4","Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4","Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4","Pacific/Kwajalein|+11 -12 +12|-b0 c0 -c0|012|-AX0 W9X0|14e3","MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00","MST|MST|70|0|","MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600","Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3","Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4","Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|0121212121212121212121|-2l9nd.g 2Szcd.g 1cL0 1oN0 10L0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3","Pacific/Enderbury|-12 -11 +13|c0 b0 -d0|012|nIc0 B7X0|1","Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483","Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0|88e4","Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3","Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125","Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4","Pacific/Guam|GST ChST|-a0 -a0|01|1fpq0|17e4","Pacific/Honolulu|HST HDT HST|au 9u a0|010102|-1thLu 8x0 lef0 8Pz0 46p0|37e4","Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2","Pacific/Kosrae|+11 +12|-b0 -c0|010|-AX0 1bdz0|66e2","Pacific/Majuro|+11 +12|-b0 -c0|01|-AX0|28e3","Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2","Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2","Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E PvzB.E 5RCu 1ouJu|10e3","Pacific/Niue|-1120 -1130 -11|bk bu b0|012|-KfME 17y0a|12e2","Pacific/Norfolk|+1112 +1130 +1230 +11|-bc -bu -cu -b0|01213|-Kgbc W01G On0 1COp0|25e4","Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3","Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56","Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3","Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4","Pacific/Tongatapu|+1220 +13 +14|-ck -d0 -e0|0121212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3","PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00"],"links":["Africa/Abidjan|Africa/Bamako","Africa/Abidjan|Africa/Banjul","Africa/Abidjan|Africa/Conakry","Africa/Abidjan|Africa/Dakar","Africa/Abidjan|Africa/Freetown","Africa/Abidjan|Africa/Lome","Africa/Abidjan|Africa/Nouakchott","Africa/Abidjan|Africa/Ouagadougou","Africa/Abidjan|Africa/Timbuktu","Africa/Abidjan|Atlantic/St_Helena","Africa/Cairo|Egypt","Africa/Johannesburg|Africa/Maseru","Africa/Johannesburg|Africa/Mbabane","Africa/Lagos|Africa/Bangui","Africa/Lagos|Africa/Brazzaville","Africa/Lagos|Africa/Douala","Africa/Lagos|Africa/Kinshasa","Africa/Lagos|Africa/Libreville","Africa/Lagos|Africa/Luanda","Africa/Lagos|Africa/Malabo","Africa/Lagos|Africa/Niamey","Africa/Lagos|Africa/Porto-Novo","Africa/Maputo|Africa/Blantyre","Africa/Maputo|Africa/Bujumbura","Africa/Maputo|Africa/Gaborone","Africa/Maputo|Africa/Harare","Africa/Maputo|Africa/Kigali","Africa/Maputo|Africa/Lubumbashi","Africa/Maputo|Africa/Lusaka","Africa/Nairobi|Africa/Addis_Ababa","Africa/Nairobi|Africa/Asmara","Africa/Nairobi|Africa/Asmera","Africa/Nairobi|Africa/Dar_es_Salaam","Africa/Nairobi|Africa/Djibouti","Africa/Nairobi|Africa/Kampala","Africa/Nairobi|Africa/Mogadishu","Africa/Nairobi|Indian/Antananarivo","Africa/Nairobi|Indian/Comoro","Africa/Nairobi|Indian/Mayotte","Africa/Tripoli|Libya","America/Adak|America/Atka","America/Adak|US/Aleutian","America/Anchorage|US/Alaska","America/Argentina/Buenos_Aires|America/Buenos_Aires","America/Argentina/Catamarca|America/Argentina/ComodRivadavia","America/Argentina/Catamarca|America/Catamarca","America/Argentina/Cordoba|America/Cordoba","America/Argentina/Cordoba|America/Rosario","America/Argentina/Jujuy|America/Jujuy","America/Argentina/Mendoza|America/Mendoza","America/Atikokan|America/Coral_Harbour","America/Chicago|US/Central","America/Curacao|America/Aruba","America/Curacao|America/Kralendijk","America/Curacao|America/Lower_Princes","America/Denver|America/Shiprock","America/Denver|Navajo","America/Denver|US/Mountain","America/Detroit|US/Michigan","America/Edmonton|Canada/Mountain","America/Fort_Wayne|America/Indiana/Indianapolis","America/Fort_Wayne|America/Indianapolis","America/Fort_Wayne|US/East-Indiana","America/Halifax|Canada/Atlantic","America/Havana|Cuba","America/Indiana/Knox|America/Knox_IN","America/Indiana/Knox|US/Indiana-Starke","America/Jamaica|Jamaica","America/Kentucky/Louisville|America/Louisville","America/Los_Angeles|US/Pacific","America/Los_Angeles|US/Pacific-New","America/Manaus|Brazil/West","America/Mazatlan|Mexico/BajaSur","America/Mexico_City|Mexico/General","America/New_York|US/Eastern","America/Noronha|Brazil/DeNoronha","America/Panama|America/Cayman","America/Phoenix|US/Arizona","America/Port_of_Spain|America/Anguilla","America/Port_of_Spain|America/Antigua","America/Port_of_Spain|America/Dominica","America/Port_of_Spain|America/Grenada","America/Port_of_Spain|America/Guadeloupe","America/Port_of_Spain|America/Marigot","America/Port_of_Spain|America/Montserrat","America/Port_of_Spain|America/St_Barthelemy","America/Port_of_Spain|America/St_Kitts","America/Port_of_Spain|America/St_Lucia","America/Port_of_Spain|America/St_Thomas","America/Port_of_Spain|America/St_Vincent","America/Port_of_Spain|America/Tortola","America/Port_of_Spain|America/Virgin","America/Regina|Canada/Saskatchewan","America/Rio_Branco|America/Porto_Acre","America/Rio_Branco|Brazil/Acre","America/Santiago|Chile/Continental","America/Sao_Paulo|Brazil/East","America/St_Johns|Canada/Newfoundland","America/Tijuana|America/Ensenada","America/Tijuana|America/Santa_Isabel","America/Tijuana|Mexico/BajaNorte","America/Toronto|America/Montreal","America/Toronto|Canada/Eastern","America/Vancouver|Canada/Pacific","America/Whitehorse|Canada/Yukon","America/Winnipeg|Canada/Central","Asia/Ashgabat|Asia/Ashkhabad","Asia/Bangkok|Asia/Phnom_Penh","Asia/Bangkok|Asia/Vientiane","Asia/Dhaka|Asia/Dacca","Asia/Dubai|Asia/Muscat","Asia/Ho_Chi_Minh|Asia/Saigon","Asia/Hong_Kong|Hongkong","Asia/Jerusalem|Asia/Tel_Aviv","Asia/Jerusalem|Israel","Asia/Kathmandu|Asia/Katmandu","Asia/Kolkata|Asia/Calcutta","Asia/Kuala_Lumpur|Asia/Singapore","Asia/Kuala_Lumpur|Singapore","Asia/Macau|Asia/Macao","Asia/Makassar|Asia/Ujung_Pandang","Asia/Nicosia|Europe/Nicosia","Asia/Qatar|Asia/Bahrain","Asia/Rangoon|Asia/Yangon","Asia/Riyadh|Asia/Aden","Asia/Riyadh|Asia/Kuwait","Asia/Seoul|ROK","Asia/Shanghai|Asia/Chongqing","Asia/Shanghai|Asia/Chungking","Asia/Shanghai|Asia/Harbin","Asia/Shanghai|PRC","Asia/Taipei|ROC","Asia/Tehran|Iran","Asia/Thimphu|Asia/Thimbu","Asia/Tokyo|Japan","Asia/Ulaanbaatar|Asia/Ulan_Bator","Asia/Urumqi|Asia/Kashgar","Atlantic/Faroe|Atlantic/Faeroe","Atlantic/Reykjavik|Iceland","Atlantic/South_Georgia|Etc/GMT+2","Australia/Adelaide|Australia/South","Australia/Brisbane|Australia/Queensland","Australia/Broken_Hill|Australia/Yancowinna","Australia/Darwin|Australia/North","Australia/Hobart|Australia/Tasmania","Australia/Lord_Howe|Australia/LHI","Australia/Melbourne|Australia/Victoria","Australia/Perth|Australia/West","Australia/Sydney|Australia/ACT","Australia/Sydney|Australia/Canberra","Australia/Sydney|Australia/NSW","Etc/GMT-0|Etc/GMT","Etc/GMT-0|Etc/GMT+0","Etc/GMT-0|Etc/GMT0","Etc/GMT-0|Etc/Greenwich","Etc/GMT-0|GMT","Etc/GMT-0|GMT+0","Etc/GMT-0|GMT-0","Etc/GMT-0|GMT0","Etc/GMT-0|Greenwich","Etc/UCT|UCT","Etc/UTC|Etc/Universal","Etc/UTC|Etc/Zulu","Etc/UTC|UTC","Etc/UTC|Universal","Etc/UTC|Zulu","Europe/Belgrade|Europe/Ljubljana","Europe/Belgrade|Europe/Podgorica","Europe/Belgrade|Europe/Sarajevo","Europe/Belgrade|Europe/Skopje","Europe/Belgrade|Europe/Zagreb","Europe/Chisinau|Europe/Tiraspol","Europe/Dublin|Eire","Europe/Helsinki|Europe/Mariehamn","Europe/Istanbul|Asia/Istanbul","Europe/Istanbul|Turkey","Europe/Lisbon|Portugal","Europe/London|Europe/Belfast","Europe/London|Europe/Guernsey","Europe/London|Europe/Isle_of_Man","Europe/London|Europe/Jersey","Europe/London|GB","Europe/London|GB-Eire","Europe/Moscow|W-SU","Europe/Oslo|Arctic/Longyearbyen","Europe/Oslo|Atlantic/Jan_Mayen","Europe/Prague|Europe/Bratislava","Europe/Rome|Europe/San_Marino","Europe/Rome|Europe/Vatican","Europe/Warsaw|Poland","Europe/Zurich|Europe/Busingen","Europe/Zurich|Europe/Vaduz","Indian/Christmas|Etc/GMT-7","Pacific/Auckland|Antarctica/McMurdo","Pacific/Auckland|Antarctica/South_Pole","Pacific/Auckland|NZ","Pacific/Chatham|NZ-CHAT","Pacific/Easter|Chile/EasterIsland","Pacific/Guam|Pacific/Saipan","Pacific/Honolulu|Pacific/Johnston","Pacific/Honolulu|US/Hawaii","Pacific/Kwajalein|Kwajalein","Pacific/Pago_Pago|Pacific/Midway","Pacific/Pago_Pago|Pacific/Samoa","Pacific/Pago_Pago|US/Samoa","Pacific/Palau|Etc/GMT-9","Pacific/Pohnpei|Etc/GMT-11","Pacific/Pohnpei|Pacific/Ponape","Pacific/Port_Moresby|Etc/GMT-10","Pacific/Port_Moresby|Pacific/Chuuk","Pacific/Port_Moresby|Pacific/Truk","Pacific/Port_Moresby|Pacific/Yap","Pacific/Tarawa|Etc/GMT-12","Pacific/Tarawa|Pacific/Funafuti","Pacific/Tarawa|Pacific/Wake","Pacific/Tarawa|Pacific/Wallis"]});return moment;}));'format amd';(function(){'use strict';function isUndefinedOrNull(val){return angular.isUndefined(val)||val===null;}
function angularMoment(angular,moment){return angular.module('angularMoment',[]).constant('angularMomentConfig',{preprocess:null,timezone:null,format:null,statefulFilters:true}).constant('moment',moment).constant('amTimeAgoConfig',{withoutSuffix:false,serverTime:null,titleFormat:null,fullDateThreshold:null,fullDateFormat:null}).directive('amTimeAgo',['$window','moment','amMoment','amTimeAgoConfig',function($window,moment,amMoment,amTimeAgoConfig){return function(scope,element,attr){var activeTimeout=null;var currentValue;var withoutSuffix=amTimeAgoConfig.withoutSuffix;var titleFormat=amTimeAgoConfig.titleFormat;var fullDateThreshold=amTimeAgoConfig.fullDateThreshold;var fullDateFormat=amTimeAgoConfig.fullDateFormat;var localDate=new Date().getTime();var modelName=attr.amTimeAgo;var currentFrom;var isTimeElement=('TIME'===element[0].nodeName.toUpperCase());function getNow(){var now;if(currentFrom){now=currentFrom;}else if(amTimeAgoConfig.serverTime){var localNow=new Date().getTime();var nowMillis=localNow-localDate+amTimeAgoConfig.serverTime;now=moment(nowMillis);}
else{now=moment();}
return now;}
function cancelTimer(){if(activeTimeout){$window.clearTimeout(activeTimeout);activeTimeout=null;}}
function updateTime(momentInstance){var daysAgo=getNow().diff(momentInstance,'day');var showFullDate=fullDateThreshold&&daysAgo>=fullDateThreshold;if(showFullDate){element.text(momentInstance.format(fullDateFormat));}else{element.text(momentInstance.from(getNow(),withoutSuffix));}
if(titleFormat&&!element.attr('title')){element.attr('title',momentInstance.local().format(titleFormat));}
if(!showFullDate){var howOld=Math.abs(getNow().diff(momentInstance,'minute'));var secondsUntilUpdate=3600;if(howOld<1){secondsUntilUpdate=1;}else if(howOld<60){secondsUntilUpdate=30;}else if(howOld<180){secondsUntilUpdate=300;}
activeTimeout=$window.setTimeout(function(){updateTime(momentInstance);},secondsUntilUpdate*1000);}}
function updateDateTimeAttr(value){if(isTimeElement){element.attr('datetime',value);}}
function updateMoment(){cancelTimer();if(currentValue){var momentValue=amMoment.preprocessDate(currentValue);updateTime(momentValue);updateDateTimeAttr(momentValue.toISOString());}}
scope.$watch(modelName,function(value){if(isUndefinedOrNull(value)||(value==='')){cancelTimer();if(currentValue){element.text('');updateDateTimeAttr('');currentValue=null;}
return;}
currentValue=value;updateMoment();});if(angular.isDefined(attr.amFrom)){scope.$watch(attr.amFrom,function(value){if(isUndefinedOrNull(value)||(value==='')){currentFrom=null;}else{currentFrom=moment(value);}
updateMoment();});}
if(angular.isDefined(attr.amWithoutSuffix)){scope.$watch(attr.amWithoutSuffix,function(value){if(typeof value==='boolean'){withoutSuffix=value;updateMoment();}else{withoutSuffix=amTimeAgoConfig.withoutSuffix;}});}
attr.$observe('amFullDateThreshold',function(newValue){fullDateThreshold=newValue;updateMoment();});attr.$observe('amFullDateFormat',function(newValue){fullDateFormat=newValue;updateMoment();});scope.$on('$destroy',function(){cancelTimer();});scope.$on('amMoment:localeChanged',function(){updateMoment();});};}]).service('amMoment',['moment','$rootScope','$log','angularMomentConfig',function(moment,$rootScope,$log,angularMomentConfig){var defaultTimezone=null;this.changeLocale=function(locale,customization){var result=moment.locale(locale,customization);if(angular.isDefined(locale)){$rootScope.$broadcast('amMoment:localeChanged');}
return result;};this.changeTimezone=function(timezone){if(moment.tz&&moment.tz.setDefault){moment.tz.setDefault(timezone);$rootScope.$broadcast('amMoment:timezoneChanged');}else{$log.warn('angular-moment: changeTimezone() works only with moment-timezone.js v0.3.0 or greater.');}
angularMomentConfig.timezone=timezone;defaultTimezone=timezone;};this.preprocessDate=function(value){if(defaultTimezone!==angularMomentConfig.timezone){this.changeTimezone(angularMomentConfig.timezone);}
if(angularMomentConfig.preprocess){return angularMomentConfig.preprocess(value);}
if(!isNaN(parseFloat(value))&&isFinite(value)){return moment(parseInt(value,10));}
return moment(value);};}]).filter('amParse',['moment',function(moment){return function(value,format){return moment(value,format);};}]).filter('amFromUnix',['moment',function(moment){return function(value){return moment.unix(value);};}]).filter('amUtc',['moment',function(moment){return function(value){return moment.utc(value);};}]).filter('amUtcOffset',['amMoment',function(amMoment){function amUtcOffset(value,offset){return amMoment.preprocessDate(value).utcOffset(offset);}
return amUtcOffset;}]).filter('amLocal',['moment',function(moment){return function(value){return moment.isMoment(value)?value.local():null;};}]).filter('amTimezone',['amMoment','angularMomentConfig','$log',function(amMoment,angularMomentConfig,$log){function amTimezone(value,timezone){var aMoment=amMoment.preprocessDate(value);if(!timezone){return aMoment;}
if(aMoment.tz){return aMoment.tz(timezone);}else{$log.warn('angular-moment: named timezone specified but moment.tz() is undefined. Did you forget to include moment-timezone.js ?');return aMoment;}}
return amTimezone;}]).filter('amCalendar',['moment','amMoment','angularMomentConfig',function(moment,amMoment,angularMomentConfig){function amCalendarFilter(value){if(isUndefinedOrNull(value)){return'';}
var date=amMoment.preprocessDate(value);return date.isValid()?date.calendar():'';}
amCalendarFilter.$stateful=angularMomentConfig.statefulFilters;return amCalendarFilter;}]).filter('amDifference',['moment','amMoment','angularMomentConfig',function(moment,amMoment,angularMomentConfig){function amDifferenceFilter(value,otherValue,unit,usePrecision){if(isUndefinedOrNull(value)){return'';}
var date=amMoment.preprocessDate(value);var date2=!isUndefinedOrNull(otherValue)?amMoment.preprocessDate(otherValue):moment();if(!date.isValid()||!date2.isValid()){return'';}
return date.diff(date2,unit,usePrecision);}
amDifferenceFilter.$stateful=angularMomentConfig.statefulFilters;return amDifferenceFilter;}]).filter('amDateFormat',['moment','amMoment','angularMomentConfig',function(moment,amMoment,angularMomentConfig){function amDateFormatFilter(value,format){if(isUndefinedOrNull(value)){return'';}
var date=amMoment.preprocessDate(value);if(!date.isValid()){return'';}
return date.format(format);}
amDateFormatFilter.$stateful=angularMomentConfig.statefulFilters;return amDateFormatFilter;}]).filter('amDurationFormat',['moment','angularMomentConfig',function(moment,angularMomentConfig){function amDurationFormatFilter(value,format,suffix){if(isUndefinedOrNull(value)){return'';}
return moment.duration(value,format).humanize(suffix);}
amDurationFormatFilter.$stateful=angularMomentConfig.statefulFilters;return amDurationFormatFilter;}]).filter('amTimeAgo',['moment','amMoment','angularMomentConfig',function(moment,amMoment,angularMomentConfig){function amTimeAgoFilter(value,suffix,from){var date,dateFrom;if(isUndefinedOrNull(value)){return'';}
value=amMoment.preprocessDate(value);date=moment(value);if(!date.isValid()){return'';}
dateFrom=moment(from);if(!isUndefinedOrNull(from)&&dateFrom.isValid()){return date.from(dateFrom,suffix);}
return date.fromNow(suffix);}
amTimeAgoFilter.$stateful=angularMomentConfig.statefulFilters;return amTimeAgoFilter;}]).filter('amSubtract',['moment','angularMomentConfig',function(moment,angularMomentConfig){function amSubtractFilter(value,amount,type){if(isUndefinedOrNull(value)){return'';}
return moment(value).subtract(parseInt(amount,10),type);}
amSubtractFilter.$stateful=angularMomentConfig.statefulFilters;return amSubtractFilter;}]).filter('amAdd',['moment','angularMomentConfig',function(moment,angularMomentConfig){function amAddFilter(value,amount,type){if(isUndefinedOrNull(value)){return'';}
return moment(value).add(parseInt(amount,10),type);}
amAddFilter.$stateful=angularMomentConfig.statefulFilters;return amAddFilter;}]);}
if(typeof define==='function'&&define.amd){define(['angular','moment'],angularMoment);}else if(typeof module!=='undefined'&&module&&module.exports){angularMoment(require('angular'),require('moment'));module.exports='angularMoment';}else{angularMoment(angular,(typeof global!=='undefined'?global:window).moment);}})();(function(){'use strict';angular.module('angularLoad',[]).service('angularLoad',['$document','$q','$timeout',function($document,$q,$timeout){var document=$document[0];function loader(createElement){var promises={};return function(url){if(typeof promises[url]==='undefined'){var deferred=$q.defer();var element=createElement(url);element.onload=element.onreadystatechange=function(e){if(element.readyState&&element.readyState!=='complete'){return;}
$timeout(function(){deferred.resolve(e);});};element.onerror=function(e){$timeout(function(){deferred.reject(e);});};promises[url]=deferred.promise;}
return promises[url];};}
this.loadScript=loader(function(src){var script=document.createElement('script');script.src=src;document.body.appendChild(script);return script;});this.loadCSS=loader(function(href){var style=document.createElement('link');style.rel='stylesheet';style.type='text/css';style.href=href;document.head.appendChild(style);return style;});}]);})();(function(module,window,angular){"use strict";function test(string,regex){if(typeof regex==='string'||regex instanceof String){regex=new RegExp(regex);}
if(regex instanceof RegExp){return regex.test(string);}
else if(regex&&Array.isArray(regex.and)){return regex.and.every(function(item){return test(string,item);});}
else if(regex&&Array.isArray(regex.or)){return regex.or.some(function(item){return test(string,item);});}
else if(regex&&regex.not){return!test(string,regex.not);}
else{return false;}}
function exec(string,regex){if(typeof regex==='string'||regex instanceof String){regex=new RegExp(regex);}
if(regex instanceof RegExp){return regex.exec(string);}
else if(regex&&Array.isArray(regex)){return regex.reduce(function(res,item){return(!!res)?res:exec(string,item);},null);}
else{return null;}}
if(!!angular){angular.module("reTree",[]).factory("reTree",[function(){return{test:test,exec:exec};}]);}
if(!!window){window.reTree={test:test,exec:exec};}
if(!!module&&!!(module.exports)){module.exports={test:test,exec:exec};}})(typeof module==='undefined'?null:module,typeof window==='undefined'?null:window,typeof angular==='undefined'?null:angular);(function(angular){"use strict";angular.module("ng.deviceDetector",["reTree"]).constant("BROWSERS",{CHROME:"chrome",FIREFOX:"firefox",SAFARI:"safari",OPERA:"opera",IE:"ie",MS_EDGE:"ms-edge",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("DEVICES",{ANDROID:"android",I_PAD:"ipad",IPHONE:"iphone",I_POD:"ipod",BLACKBERRY:"blackberry",FIREFOX_OS:"firefox-os",CHROME_BOOK:"chrome-book",WINDOWS_PHONE:"windows-phone",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("OS",{WINDOWS:"windows",MAC:"mac",IOS:"ios",ANDROID:"android",LINUX:"linux",UNIX:"unix",FIREFOX_OS:"firefox-os",CHROME_OS:"chrome-os",WINDOWS_PHONE:"windows-phone",PS4:"ps4",VITA:"vita",UNKNOWN:"unknown"}).constant("OS_VERSIONS",{WINDOWS_3_11:"windows-3-11",WINDOWS_95:"windows-95",WINDOWS_ME:"windows-me",WINDOWS_98:"windows-98",WINDOWS_CE:"windows-ce",WINDOWS_2000:"windows-2000",WINDOWS_XP:"windows-xp",WINDOWS_SERVER_2003:"windows-server-2003",WINDOWS_VISTA:"windows-vista",WINDOWS_7:"windows-7",WINDOWS_8_1:"windows-8-1",WINDOWS_8:"windows-8",WINDOWS_10:"windows-10",WINDOWS_PHONE_7_5:"windows-phone-7-5",WINDOWS_PHONE_8_1:"windows-phone-8-1",WINDOWS_PHONE_10:"windows-phone-10",WINDOWS_NT_4_0:"windows-nt-4-0",UNKNOWN:"unknown"}).service("detectUtils",["deviceDetector","DEVICES","BROWSERS","OS",function(deviceDetector,DEVICES,BROWSERS,OS){var deviceInfo=deviceDetector;this.isMobile=function(){return deviceInfo.device!=='unknown';};this.isAndroid=function(){return(deviceInfo.device===DEVICES.ANDROID||deviceInfo.OS===OS.ANDROID);};this.isIOS=function(){return(deviceInfo.os===OS.IOS||deviceInfo.device===DEVICES.I_POD||deviceInfo.device===DEVICES.IPHONE);};}]).factory("deviceDetector",["$window","DEVICES","BROWSERS","OS","OS_VERSIONS","reTree",function($window,DEVICES,BROWSERS,OS,OS_VERSIONS,reTree){var OS_RE={WINDOWS:{and:[{or:[/\bWindows|(Win\d\d)\b/,/\bWin 9x\b/]},{not:/\bWindows Phone\b/}]},MAC:{and:[/\bMac OS\b/,{not:/Windows Phone/}]},IOS:{and:[{or:[/\biPad\b/,/\biPhone\b/,/\biPod\b/]},{not:/Windows Phone/}]},ANDROID:{and:[/\bAndroid\b/,{not:/Windows Phone/}]},LINUX:/\bLinux\b/,UNIX:/\bUNIX\b/,FIREFOX_OS:{and:[/\bFirefox\b/,/Mobile\b/]},CHROME_OS:/\bCrOS\b/,WINDOWS_PHONE:{or:[/\bIEMobile\b/,/\bWindows Phone\b/]},PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/};var BROWSERS_RE={CHROME:{and:[{or:[/\bChrome\b/,/\bCriOS\b/]},{not:{or:[/\bOPR\b/,/\bEdge\b/]}}]},FIREFOX:/\bFirefox\b/,SAFARI:{and:[/^((?!CriOS).)*\Safari\b.*$/,{not:{or:[/\bOPR\b/,/\bEdge\b/,/Windows Phone/]}}]},OPERA:{or:[/Opera\b/,/\bOPR\b/]},IE:{or:[/\bMSIE\b/,/\bTrident\b/]},MS_EDGE:{or:[/\bEdge\b/]},PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/};var DEVICES_RE={ANDROID:{and:[/\bAndroid\b/,{not:/Windows Phone/}]},I_PAD:/\biPad\b/,IPHONE:{and:[/\biPhone\b/,{not:/Windows Phone/}]},I_POD:/\biPod\b/,BLACKBERRY:/\bblackberry\b/,FIREFOX_OS:{and:[/\bFirefox\b/,/\bMobile\b/]},CHROME_BOOK:/\bCrOS\b/,WINDOWS_PHONE:{or:[/\bIEMobile\b/,/\bWindows Phone\b/]},PS4:/\bMozilla\/5.0 \(PlayStation 4\b/,VITA:/\bMozilla\/5.0 \(Play(S|s)tation Vita\b/};var OS_VERSIONS_RE={WINDOWS_3_11:/Win16/,WINDOWS_95:/(Windows 95|Win95|Windows_95)/,WINDOWS_ME:/(Win 9x 4.90|Windows ME)/,WINDOWS_98:/(Windows 98|Win98)/,WINDOWS_CE:/Windows CE/,WINDOWS_2000:/(Windows NT 5.0|Windows 2000)/,WINDOWS_XP:/(Windows NT 5.1|Windows XP)/,WINDOWS_SERVER_2003:/Windows NT 5.2/,WINDOWS_VISTA:/Windows NT 6.0/,WINDOWS_7:/(Windows 7|Windows NT 6.1)/,WINDOWS_8_1:/(Windows 8.1|Windows NT 6.3)/,WINDOWS_8:/(Windows 8|Windows NT 6.2)/,WINDOWS_10:/(Windows NT 10.0)/,WINDOWS_PHONE_7_5:/(Windows Phone OS 7.5)/,WINDOWS_PHONE_8_1:/(Windows Phone 8.1)/,WINDOWS_PHONE_10:/(Windows Phone 10)/,WINDOWS_NT_4_0:{and:[/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/,{not:/Windows NT 10.0/}]}};var BROWSER_VERSIONS_RE_MAP={CHROME:/\bChrome\/([\d\.]+)\b/,FIREFOX:/\bFirefox\/([\d\.]+)\b/,SAFARI:/\bVersion\/([\d\.]+)\b/,OPERA:[/\bVersion\/([\d\.]+)\b/,/\bOPR\/([\d\.]+)\b/],IE:[/\bMSIE ([\d\.]+\w?)\b/,/\brv:([\d\.]+\w?)\b/],MS_EDGE:/\bEdge\/([\d\.]+)\b/};var BROWSER_VERSIONS_RE=Object.keys(BROWSER_VERSIONS_RE_MAP).reduce(function(obj,key){obj[BROWSERS[key]]=BROWSER_VERSIONS_RE_MAP[key];return obj;},{});var ua=$window.navigator.userAgent;var deviceInfo={raw:{userAgent:ua,os:{},browser:{},device:{}}};deviceInfo.raw.os=Object.keys(OS).reduce(function(obj,item){obj[OS[item]]=reTree.test(ua,OS_RE[item]);return obj;},{});deviceInfo.raw.browser=Object.keys(BROWSERS).reduce(function(obj,item){obj[BROWSERS[item]]=reTree.test(ua,BROWSERS_RE[item]);return obj;},{});deviceInfo.raw.device=Object.keys(DEVICES).reduce(function(obj,item){obj[DEVICES[item]]=reTree.test(ua,DEVICES_RE[item]);return obj;},{});deviceInfo.raw.os_version=Object.keys(OS_VERSIONS).reduce(function(obj,item){obj[OS_VERSIONS[item]]=reTree.test(ua,OS_VERSIONS_RE[item]);return obj;},{});deviceInfo.os=[OS.WINDOWS,OS.IOS,OS.MAC,OS.ANDROID,OS.LINUX,OS.UNIX,OS.FIREFOX_OS,OS.CHROME_OS,OS.WINDOWS_PHONE,OS.PS4,OS.VITA].reduce(function(previousValue,currentValue){return(previousValue===OS.UNKNOWN&&deviceInfo.raw.os[currentValue])?currentValue:previousValue;},OS.UNKNOWN);deviceInfo.browser=[BROWSERS.CHROME,BROWSERS.FIREFOX,BROWSERS.SAFARI,BROWSERS.OPERA,BROWSERS.IE,BROWSERS.MS_EDGE,BROWSERS.PS4,BROWSERS.VITA].reduce(function(previousValue,currentValue){return(previousValue===BROWSERS.UNKNOWN&&deviceInfo.raw.browser[currentValue])?currentValue:previousValue;},BROWSERS.UNKNOWN);deviceInfo.device=[DEVICES.ANDROID,DEVICES.I_PAD,DEVICES.IPHONE,DEVICES.I_POD,DEVICES.BLACKBERRY,DEVICES.FIREFOX_OS,DEVICES.CHROME_BOOK,DEVICES.WINDOWS_PHONE,DEVICES.PS4,DEVICES.VITA].reduce(function(previousValue,currentValue){return(previousValue===DEVICES.UNKNOWN&&deviceInfo.raw.device[currentValue])?currentValue:previousValue;},DEVICES.UNKNOWN);deviceInfo.os_version=[OS_VERSIONS.WINDOWS_3_11,OS_VERSIONS.WINDOWS_95,OS_VERSIONS.WINDOWS_ME,OS_VERSIONS.WINDOWS_98,OS_VERSIONS.WINDOWS_CE,OS_VERSIONS.WINDOWS_2000,OS_VERSIONS.WINDOWS_XP,OS_VERSIONS.WINDOWS_SERVER_2003,OS_VERSIONS.WINDOWS_VISTA,OS_VERSIONS.WINDOWS_7,OS_VERSIONS.WINDOWS_8_1,OS_VERSIONS.WINDOWS_8,OS_VERSIONS.WINDOWS_10,OS_VERSIONS.WINDOWS_PHONE_7_5,OS_VERSIONS.WINDOWS_PHONE_8_1,OS_VERSIONS.WINDOWS_PHONE_10,OS_VERSIONS.WINDOWS_NT_4_0].reduce(function(previousValue,currentValue){return(previousValue===OS_VERSIONS.UNKNOWN&&deviceInfo.raw.os_version[currentValue])?currentValue:previousValue;},OS_VERSIONS.UNKNOWN);deviceInfo.browser_version="0";if(deviceInfo.browser!==BROWSERS.UNKNOWN){var re=BROWSER_VERSIONS_RE[deviceInfo.browser];var res=reTree.exec(ua,re);if(!!res){deviceInfo.browser_version=res[1];}}
deviceInfo.isMobile=function(){return[DEVICES.ANDROID,DEVICES.I_PAD,DEVICES.IPHONE,DEVICES.I_POD,DEVICES.BLACKBERRY,DEVICES.FIREFOX_OS,DEVICES.WINDOWS_PHONE,DEVICES.VITA].some(function(item){return deviceInfo.device==item;});};deviceInfo.isTablet=function(){return[DEVICES.I_PAD,DEVICES.FIREFOX_OS].some(function(item){return deviceInfo.device==item;});};deviceInfo.isDesktop=function(){return[DEVICES.PS4,DEVICES.CHROME_BOOK,DEVICES.UNKNOWN].some(function(item){return deviceInfo.device==item;});};return deviceInfo;}]).directive('deviceDetector',["deviceDetector",function(deviceDetector){return{restrict:"A",link:function(scope,elm){elm.addClass('os-'+deviceDetector.os);elm.addClass('browser-'+deviceDetector.browser);elm.addClass('device-'+deviceDetector.device);}};}]);})(angular);angular.module("ui.bootstrap",["ui.bootstrap.tpls","ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.dropdown","ui.bootstrap.stackedMap","ui.bootstrap.modal","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]);angular.module("ui.bootstrap.tpls",["template/accordion/accordion-group.html","template/accordion/accordion.html","template/alert/alert.html","template/carousel/carousel.html","template/carousel/slide.html","template/datepicker/datepicker.html","template/datepicker/day.html","template/datepicker/month.html","template/datepicker/popup.html","template/datepicker/year.html","template/modal/backdrop.html","template/modal/window.html","template/pagination/pager.html","template/pagination/pagination.html","template/tooltip/tooltip-html-popup.html","template/tooltip/tooltip-popup.html","template/tooltip/tooltip-template-popup.html","template/popover/popover-html.html","template/popover/popover-template.html","template/popover/popover.html","template/progressbar/bar.html","template/progressbar/progress.html","template/progressbar/progressbar.html","template/rating/rating.html","template/tabs/tab.html","template/tabs/tabset.html","template/timepicker/timepicker.html","template/typeahead/typeahead-match.html","template/typeahead/typeahead-popup.html"]);angular.module('ui.bootstrap.collapse',[]).directive('uibCollapse',['$animate','$injector',function($animate,$injector){var $animateCss=$injector.has('$animateCss')?$injector.get('$animateCss'):null;return{link:function(scope,element,attrs){function expand(){element.removeClass('collapse').addClass('collapsing').attr('aria-expanded',true).attr('aria-hidden',false);if($animateCss){$animateCss(element,{addClass:'in',easing:'ease',to:{height:element[0].scrollHeight+'px'}}).start().finally(expandDone);}else{$animate.addClass(element,'in',{to:{height:element[0].scrollHeight+'px'}}).then(expandDone);}}
function expandDone(){element.removeClass('collapsing').addClass('collapse').css({height:'auto'});}
function collapse(){if(!element.hasClass('collapse')&&!element.hasClass('in')){return collapseDone();}
element.css({height:element[0].scrollHeight+'px'}).removeClass('collapse').addClass('collapsing').attr('aria-expanded',false).attr('aria-hidden',true);if($animateCss){$animateCss(element,{removeClass:'in',to:{height:'0'}}).start().finally(collapseDone);}else{$animate.removeClass(element,'in',{to:{height:'0'}}).then(collapseDone);}}
function collapseDone(){element.css({height:'0'});element.removeClass('collapsing').addClass('collapse');}
scope.$watch(attrs.uibCollapse,function(shouldCollapse){if(shouldCollapse){collapse();}else{expand();}});}};}]);angular.module('ui.bootstrap.collapse').value('$collapseSuppressWarning',false).directive('collapse',['$animate','$injector','$log','$collapseSuppressWarning',function($animate,$injector,$log,$collapseSuppressWarning){var $animateCss=$injector.has('$animateCss')?$injector.get('$animateCss'):null;return{link:function(scope,element,attrs){if(!$collapseSuppressWarning){$log.warn('collapse is now deprecated. Use uib-collapse instead.');}
function expand(){element.removeClass('collapse').addClass('collapsing').attr('aria-expanded',true).attr('aria-hidden',false);if($animateCss){$animateCss(element,{easing:'ease',to:{height:element[0].scrollHeight+'px'}}).start().done(expandDone);}else{$animate.animate(element,{},{height:element[0].scrollHeight+'px'}).then(expandDone);}}
function expandDone(){element.removeClass('collapsing').addClass('collapse in').css({height:'auto'});}
function collapse(){if(!element.hasClass('collapse')&&!element.hasClass('in')){return collapseDone();}
element.css({height:element[0].scrollHeight+'px'}).removeClass('collapse in').addClass('collapsing').attr('aria-expanded',false).attr('aria-hidden',true);if($animateCss){$animateCss(element,{to:{height:'0'}}).start().done(collapseDone);}else{$animate.animate(element,{},{height:'0'}).then(collapseDone);}}
function collapseDone(){element.css({height:'0'});element.removeClass('collapsing').addClass('collapse');}
scope.$watch(attrs.collapse,function(shouldCollapse){if(shouldCollapse){collapse();}else{expand();}});}};}]);angular.module('ui.bootstrap.accordion',['ui.bootstrap.collapse']).constant('uibAccordionConfig',{closeOthers:true}).controller('UibAccordionController',['$scope','$attrs','uibAccordionConfig',function($scope,$attrs,accordionConfig){this.groups=[];this.closeOthers=function(openGroup){var closeOthers=angular.isDefined($attrs.closeOthers)?$scope.$eval($attrs.closeOthers):accordionConfig.closeOthers;if(closeOthers){angular.forEach(this.groups,function(group){if(group!==openGroup){group.isOpen=false;}});}};this.addGroup=function(groupScope){var that=this;this.groups.push(groupScope);groupScope.$on('$destroy',function(event){that.removeGroup(groupScope);});};this.removeGroup=function(group){var index=this.groups.indexOf(group);if(index!==-1){this.groups.splice(index,1);}};}]).directive('uibAccordion',function(){return{controller:'UibAccordionController',controllerAs:'accordion',transclude:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/accordion/accordion.html';}};}).directive('uibAccordionGroup',function(){return{require:'^uibAccordion',transclude:true,replace:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/accordion/accordion-group.html';},scope:{heading:'@',isOpen:'=?',isDisabled:'=?'},controller:function(){this.setHeading=function(element){this.heading=element;};},link:function(scope,element,attrs,accordionCtrl){accordionCtrl.addGroup(scope);scope.openClass=attrs.openClass||'panel-open';scope.panelClass=attrs.panelClass;scope.$watch('isOpen',function(value){element.toggleClass(scope.openClass,!!value);if(value){accordionCtrl.closeOthers(scope);}});scope.toggleOpen=function($event){if(!scope.isDisabled){if(!$event||$event.which===32){scope.isOpen=!scope.isOpen;}}};}};}).directive('uibAccordionHeading',function(){return{transclude:true,template:'',replace:true,require:'^uibAccordionGroup',link:function(scope,element,attrs,accordionGroupCtrl,transclude){accordionGroupCtrl.setHeading(transclude(scope,angular.noop));}};}).directive('uibAccordionTransclude',function(){return{require:['?^uibAccordionGroup','?^accordionGroup'],link:function(scope,element,attrs,controller){controller=controller[0]?controller[0]:controller[1];scope.$watch(function(){return controller[attrs.uibAccordionTransclude];},function(heading){if(heading){element.find('span').html('');element.find('span').append(heading);}});}};});angular.module('ui.bootstrap.accordion').value('$accordionSuppressWarning',false).controller('AccordionController',['$scope','$attrs','$controller','$log','$accordionSuppressWarning',function($scope,$attrs,$controller,$log,$accordionSuppressWarning){if(!$accordionSuppressWarning){$log.warn('AccordionController is now deprecated. Use UibAccordionController instead.');}
angular.extend(this,$controller('UibAccordionController',{$scope:$scope,$attrs:$attrs}));}]).directive('accordion',['$log','$accordionSuppressWarning',function($log,$accordionSuppressWarning){return{restrict:'EA',controller:'AccordionController',controllerAs:'accordion',transclude:true,replace:false,templateUrl:function(element,attrs){return attrs.templateUrl||'template/accordion/accordion.html';},link:function(){if(!$accordionSuppressWarning){$log.warn('accordion is now deprecated. Use uib-accordion instead.');}}};}]).directive('accordionGroup',['$log','$accordionSuppressWarning',function($log,$accordionSuppressWarning){return{require:'^accordion',restrict:'EA',transclude:true,replace:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/accordion/accordion-group.html';},scope:{heading:'@',isOpen:'=?',isDisabled:'=?'},controller:function(){this.setHeading=function(element){this.heading=element;};},link:function(scope,element,attrs,accordionCtrl){if(!$accordionSuppressWarning){$log.warn('accordion-group is now deprecated. Use uib-accordion-group instead.');}
accordionCtrl.addGroup(scope);scope.openClass=attrs.openClass||'panel-open';scope.panelClass=attrs.panelClass;scope.$watch('isOpen',function(value){element.toggleClass(scope.openClass,!!value);if(value){accordionCtrl.closeOthers(scope);}});scope.toggleOpen=function($event){if(!scope.isDisabled){if(!$event||$event.which===32){scope.isOpen=!scope.isOpen;}}};}};}]).directive('accordionHeading',['$log','$accordionSuppressWarning',function($log,$accordionSuppressWarning){return{restrict:'EA',transclude:true,template:'',replace:true,require:'^accordionGroup',link:function(scope,element,attr,accordionGroupCtrl,transclude){if(!$accordionSuppressWarning){$log.warn('accordion-heading is now deprecated. Use uib-accordion-heading instead.');}
accordionGroupCtrl.setHeading(transclude(scope,angular.noop));}};}]).directive('accordionTransclude',['$log','$accordionSuppressWarning',function($log,$accordionSuppressWarning){return{require:'^accordionGroup',link:function(scope,element,attr,controller){if(!$accordionSuppressWarning){$log.warn('accordion-transclude is now deprecated. Use uib-accordion-transclude instead.');}
scope.$watch(function(){return controller[attr.accordionTransclude];},function(heading){if(heading){element.find('span').html('');element.find('span').append(heading);}});}};}]);angular.module('ui.bootstrap.alert',[]).controller('UibAlertController',['$scope','$attrs','$interpolate','$timeout',function($scope,$attrs,$interpolate,$timeout){$scope.closeable=!!$attrs.close;var dismissOnTimeout=angular.isDefined($attrs.dismissOnTimeout)?$interpolate($attrs.dismissOnTimeout)($scope.$parent):null;if(dismissOnTimeout){$timeout(function(){$scope.close();},parseInt(dismissOnTimeout,10));}}]).directive('uibAlert',function(){return{controller:'UibAlertController',controllerAs:'alert',templateUrl:function(element,attrs){return attrs.templateUrl||'template/alert/alert.html';},transclude:true,replace:true,scope:{type:'@',close:'&'}};});angular.module('ui.bootstrap.alert').value('$alertSuppressWarning',false).controller('AlertController',['$scope','$attrs','$controller','$log','$alertSuppressWarning',function($scope,$attrs,$controller,$log,$alertSuppressWarning){if(!$alertSuppressWarning){$log.warn('AlertController is now deprecated. Use UibAlertController instead.');}
angular.extend(this,$controller('UibAlertController',{$scope:$scope,$attrs:$attrs}));}]).directive('alert',['$log','$alertSuppressWarning',function($log,$alertSuppressWarning){return{controller:'AlertController',controllerAs:'alert',templateUrl:function(element,attrs){return attrs.templateUrl||'template/alert/alert.html';},transclude:true,replace:true,scope:{type:'@',close:'&'},link:function(){if(!$alertSuppressWarning){$log.warn('alert is now deprecated. Use uib-alert instead.');}}};}]);angular.module('ui.bootstrap.buttons',[]).constant('uibButtonConfig',{activeClass:'active',toggleEvent:'click'}).controller('UibButtonsController',['uibButtonConfig',function(buttonConfig){this.activeClass=buttonConfig.activeClass||'active';this.toggleEvent=buttonConfig.toggleEvent||'click';}]).directive('uibBtnRadio',function(){return{require:['uibBtnRadio','ngModel'],controller:'UibButtonsController',controllerAs:'buttons',link:function(scope,element,attrs,ctrls){var buttonsCtrl=ctrls[0],ngModelCtrl=ctrls[1];element.find('input').css({display:'none'});ngModelCtrl.$render=function(){element.toggleClass(buttonsCtrl.activeClass,angular.equals(ngModelCtrl.$modelValue,scope.$eval(attrs.uibBtnRadio)));};element.on(buttonsCtrl.toggleEvent,function(){if(attrs.disabled){return;}
var isActive=element.hasClass(buttonsCtrl.activeClass);if(!isActive||angular.isDefined(attrs.uncheckable)){scope.$apply(function(){ngModelCtrl.$setViewValue(isActive?null:scope.$eval(attrs.uibBtnRadio));ngModelCtrl.$render();});}});}};}).directive('uibBtnCheckbox',function(){return{require:['uibBtnCheckbox','ngModel'],controller:'UibButtonsController',controllerAs:'button',link:function(scope,element,attrs,ctrls){var buttonsCtrl=ctrls[0],ngModelCtrl=ctrls[1];element.find('input').css({display:'none'});function getTrueValue(){return getCheckboxValue(attrs.btnCheckboxTrue,true);}
function getFalseValue(){return getCheckboxValue(attrs.btnCheckboxFalse,false);}
function getCheckboxValue(attribute,defaultValue){return angular.isDefined(attribute)?scope.$eval(attribute):defaultValue;}
ngModelCtrl.$render=function(){element.toggleClass(buttonsCtrl.activeClass,angular.equals(ngModelCtrl.$modelValue,getTrueValue()));};element.on(buttonsCtrl.toggleEvent,function(){if(attrs.disabled){return;}
scope.$apply(function(){ngModelCtrl.$setViewValue(element.hasClass(buttonsCtrl.activeClass)?getFalseValue():getTrueValue());ngModelCtrl.$render();});});}};});angular.module('ui.bootstrap.buttons').value('$buttonsSuppressWarning',false).controller('ButtonsController',['$controller','$log','$buttonsSuppressWarning',function($controller,$log,$buttonsSuppressWarning){if(!$buttonsSuppressWarning){$log.warn('ButtonsController is now deprecated. Use UibButtonsController instead.');}
angular.extend(this,$controller('UibButtonsController'));}]).directive('btnRadio',['$log','$buttonsSuppressWarning',function($log,$buttonsSuppressWarning){return{require:['btnRadio','ngModel'],controller:'ButtonsController',controllerAs:'buttons',link:function(scope,element,attrs,ctrls){if(!$buttonsSuppressWarning){$log.warn('btn-radio is now deprecated. Use uib-btn-radio instead.');}
var buttonsCtrl=ctrls[0],ngModelCtrl=ctrls[1];element.find('input').css({display:'none'});ngModelCtrl.$render=function(){element.toggleClass(buttonsCtrl.activeClass,angular.equals(ngModelCtrl.$modelValue,scope.$eval(attrs.btnRadio)));};element.bind(buttonsCtrl.toggleEvent,function(){if(attrs.disabled){return;}
var isActive=element.hasClass(buttonsCtrl.activeClass);if(!isActive||angular.isDefined(attrs.uncheckable)){scope.$apply(function(){ngModelCtrl.$setViewValue(isActive?null:scope.$eval(attrs.btnRadio));ngModelCtrl.$render();});}});}};}]).directive('btnCheckbox',['$document','$log','$buttonsSuppressWarning',function($document,$log,$buttonsSuppressWarning){return{require:['btnCheckbox','ngModel'],controller:'ButtonsController',controllerAs:'button',link:function(scope,element,attrs,ctrls){if(!$buttonsSuppressWarning){$log.warn('btn-checkbox is now deprecated. Use uib-btn-checkbox instead.');}
var buttonsCtrl=ctrls[0],ngModelCtrl=ctrls[1];element.find('input').css({display:'none'});function getTrueValue(){return getCheckboxValue(attrs.btnCheckboxTrue,true);}
function getFalseValue(){return getCheckboxValue(attrs.btnCheckboxFalse,false);}
function getCheckboxValue(attributeValue,defaultValue){var val=scope.$eval(attributeValue);return angular.isDefined(val)?val:defaultValue;}
ngModelCtrl.$render=function(){element.toggleClass(buttonsCtrl.activeClass,angular.equals(ngModelCtrl.$modelValue,getTrueValue()));};element.bind(buttonsCtrl.toggleEvent,function(){if(attrs.disabled){return;}
scope.$apply(function(){ngModelCtrl.$setViewValue(element.hasClass(buttonsCtrl.activeClass)?getFalseValue():getTrueValue());ngModelCtrl.$render();});});element.on('keypress',function(e){if(attrs.disabled||e.which!==32||$document[0].activeElement!==element[0]){return;}
scope.$apply(function(){ngModelCtrl.$setViewValue(element.hasClass(buttonsCtrl.activeClass)?getFalseValue():getTrueValue());ngModelCtrl.$render();});});}};}]);angular.module('ui.bootstrap.carousel',[]).controller('UibCarouselController',['$scope','$element','$interval','$animate',function($scope,$element,$interval,$animate){var self=this,slides=self.slides=$scope.slides=[],NEW_ANIMATE=angular.version.minor>=4,NO_TRANSITION='uib-noTransition',SLIDE_DIRECTION='uib-slideDirection',currentIndex=-1,currentInterval,isPlaying;self.currentSlide=null;var destroyed=false;self.select=$scope.select=function(nextSlide,direction){var nextIndex=$scope.indexOfSlide(nextSlide);if(direction===undefined){direction=nextIndex>self.getCurrentIndex()?'next':'prev';}
if(nextSlide&&nextSlide!==self.currentSlide&&!$scope.$currentTransition){goNext(nextSlide,nextIndex,direction);}};function goNext(slide,index,direction){if(destroyed){return;}
angular.extend(slide,{direction:direction,active:true});angular.extend(self.currentSlide||{},{direction:direction,active:false});if($animate.enabled()&&!$scope.noTransition&&!$scope.$currentTransition&&slide.$element&&self.slides.length>1){slide.$element.data(SLIDE_DIRECTION,slide.direction);if(self.currentSlide&&self.currentSlide.$element){self.currentSlide.$element.data(SLIDE_DIRECTION,slide.direction);}
$scope.$currentTransition=true;if(NEW_ANIMATE){$animate.on('addClass',slide.$element,function(element,phase){if(phase==='close'){$scope.$currentTransition=null;$animate.off('addClass',element);}});}else{slide.$element.one('$animate:close',function closeFn(){$scope.$currentTransition=null;});}}
self.currentSlide=slide;currentIndex=index;restartTimer();}
$scope.$on('$destroy',function(){destroyed=true;});function getSlideByIndex(index){if(angular.isUndefined(slides[index].index)){return slides[index];}
var i,len=slides.length;for(i=0;i<slides.length;++i){if(slides[i].index==index){return slides[i];}}}
self.getCurrentIndex=function(){if(self.currentSlide&&angular.isDefined(self.currentSlide.index)){return+self.currentSlide.index;}
return currentIndex;};$scope.indexOfSlide=function(slide){return angular.isDefined(slide.index)?+slide.index:slides.indexOf(slide);};$scope.next=function(){var newIndex=(self.getCurrentIndex()+1)%slides.length;if(newIndex===0&&$scope.noWrap()){$scope.pause();return;}
return self.select(getSlideByIndex(newIndex),'next');};$scope.prev=function(){var newIndex=self.getCurrentIndex()-1<0?slides.length-1:self.getCurrentIndex()-1;if($scope.noWrap()&&newIndex===slides.length-1){$scope.pause();return;}
return self.select(getSlideByIndex(newIndex),'prev');};$scope.isActive=function(slide){return self.currentSlide===slide;};$scope.$watch('interval',restartTimer);$scope.$watchCollection('slides',resetTransition);$scope.$on('$destroy',resetTimer);function restartTimer(){resetTimer();var interval=+$scope.interval;if(!isNaN(interval)&&interval>0){currentInterval=$interval(timerFn,interval);}}
function resetTimer(){if(currentInterval){$interval.cancel(currentInterval);currentInterval=null;}}
function timerFn(){var interval=+$scope.interval;if(isPlaying&&!isNaN(interval)&&interval>0&&slides.length){$scope.next();}else{$scope.pause();}}
function resetTransition(slides){if(!slides.length){$scope.$currentTransition=null;}}
$scope.play=function(){if(!isPlaying){isPlaying=true;restartTimer();}};$scope.pause=function(){if(!$scope.noPause){isPlaying=false;resetTimer();}};self.addSlide=function(slide,element){slide.$element=element;slides.push(slide);if(slides.length===1||slide.active){self.select(slides[slides.length-1]);if(slides.length===1){$scope.play();}}else{slide.active=false;}};self.removeSlide=function(slide){if(angular.isDefined(slide.index)){slides.sort(function(a,b){return+a.index>+b.index;});}
var index=slides.indexOf(slide);slides.splice(index,1);if(slides.length>0&&slide.active){if(index>=slides.length){self.select(slides[index-1]);}else{self.select(slides[index]);}}else if(currentIndex>index){currentIndex--;}
if(slides.length===0){self.currentSlide=null;}};$scope.$watch('noTransition',function(noTransition){$element.data(NO_TRANSITION,noTransition);});}]).directive('uibCarousel',[function(){return{transclude:true,replace:true,controller:'UibCarouselController',controllerAs:'carousel',require:'carousel',templateUrl:function(element,attrs){return attrs.templateUrl||'template/carousel/carousel.html';},scope:{interval:'=',noTransition:'=',noPause:'=',noWrap:'&'}};}]).directive('uibSlide',function(){return{require:'^uibCarousel',restrict:'EA',transclude:true,replace:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/carousel/slide.html';},scope:{active:'=?',actual:'=?',index:'=?'},link:function(scope,element,attrs,carouselCtrl){carouselCtrl.addSlide(scope,element);scope.$on('$destroy',function(){carouselCtrl.removeSlide(scope);});scope.$watch('active',function(active){if(active){carouselCtrl.select(scope);}});}};}).animation('.item',['$injector','$animate',function($injector,$animate){var NO_TRANSITION='uib-noTransition',SLIDE_DIRECTION='uib-slideDirection',$animateCss=null;if($injector.has('$animateCss')){$animateCss=$injector.get('$animateCss');}
function removeClass(element,className,callback){element.removeClass(className);if(callback){callback();}}
return{beforeAddClass:function(element,className,done){if(className=='active'&&element.parent()&&element.parent().parent()&&!element.parent().parent().data(NO_TRANSITION)){var stopped=false;var direction=element.data(SLIDE_DIRECTION);var directionClass=direction=='next'?'left':'right';var removeClassFn=removeClass.bind(this,element,directionClass+' '+direction,done);element.addClass(direction);if($animateCss){$animateCss(element,{addClass:directionClass}).start().done(removeClassFn);}else{$animate.addClass(element,directionClass).then(function(){if(!stopped){removeClassFn();}
done();});}
return function(){stopped=true;};}
done();},beforeRemoveClass:function(element,className,done){if(className==='active'&&element.parent()&&element.parent().parent()&&!element.parent().parent().data(NO_TRANSITION)){var stopped=false;var direction=element.data(SLIDE_DIRECTION);var directionClass=direction=='next'?'left':'right';var removeClassFn=removeClass.bind(this,element,directionClass,done);if($animateCss){$animateCss(element,{addClass:directionClass}).start().done(removeClassFn);}else{$animate.addClass(element,directionClass).then(function(){if(!stopped){removeClassFn();}
done();});}
return function(){stopped=true;};}
done();}};}]);angular.module('ui.bootstrap.carousel').value('$carouselSuppressWarning',false).controller('CarouselController',['$scope','$element','$controller','$log','$carouselSuppressWarning',function($scope,$element,$controller,$log,$carouselSuppressWarning){if(!$carouselSuppressWarning){$log.warn('CarouselController is now deprecated. Use UibCarouselController instead.');}
angular.extend(this,$controller('UibCarouselController',{$scope:$scope,$element:$element}));}]).directive('carousel',['$log','$carouselSuppressWarning',function($log,$carouselSuppressWarning){return{transclude:true,replace:true,controller:'CarouselController',controllerAs:'carousel',require:'carousel',templateUrl:function(element,attrs){return attrs.templateUrl||'template/carousel/carousel.html';},scope:{interval:'=',noTransition:'=',noPause:'=',noWrap:'&'},link:function(){if(!$carouselSuppressWarning){$log.warn('carousel is now deprecated. Use uib-carousel instead.');}}};}]).directive('slide',['$log','$carouselSuppressWarning',function($log,$carouselSuppressWarning){return{require:'^carousel',transclude:true,replace:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/carousel/slide.html';},scope:{active:'=?',actual:'=?',index:'=?'},link:function(scope,element,attrs,carouselCtrl){if(!$carouselSuppressWarning){$log.warn('slide is now deprecated. Use uib-slide instead.');}
carouselCtrl.addSlide(scope,element);scope.$on('$destroy',function(){carouselCtrl.removeSlide(scope);});scope.$watch('active',function(active){if(active){carouselCtrl.select(scope);}});}};}]);angular.module('ui.bootstrap.dateparser',[]).service('uibDateParser',['$log','$locale','orderByFilter',function($log,$locale,orderByFilter){var SPECIAL_CHARACTERS_REGEXP=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;var localeId;var formatCodeToRegex;this.init=function(){localeId=$locale.id;this.parsers={};formatCodeToRegex={'yyyy':{regex:'\\d{4}',apply:function(value){this.year=+value;}},'yy':{regex:'\\d{2}',apply:function(value){this.year=+value+2000;}},'y':{regex:'\\d{1,4}',apply:function(value){this.year=+value;}},'MMMM':{regex:$locale.DATETIME_FORMATS.MONTH.join('|'),apply:function(value){this.month=$locale.DATETIME_FORMATS.MONTH.indexOf(value);}},'MMM':{regex:$locale.DATETIME_FORMATS.SHORTMONTH.join('|'),apply:function(value){this.month=$locale.DATETIME_FORMATS.SHORTMONTH.indexOf(value);}},'MM':{regex:'0[1-9]|1[0-2]',apply:function(value){this.month=value-1;}},'M':{regex:'[1-9]|1[0-2]',apply:function(value){this.month=value-1;}},'dd':{regex:'[0-2][0-9]{1}|3[0-1]{1}',apply:function(value){this.date=+value;}},'d':{regex:'[1-2]?[0-9]{1}|3[0-1]{1}',apply:function(value){this.date=+value;}},'EEEE':{regex:$locale.DATETIME_FORMATS.DAY.join('|')},'EEE':{regex:$locale.DATETIME_FORMATS.SHORTDAY.join('|')},'HH':{regex:'(?:0|1)[0-9]|2[0-3]',apply:function(value){this.hours=+value;}},'hh':{regex:'0[0-9]|1[0-2]',apply:function(value){this.hours=+value;}},'H':{regex:'1?[0-9]|2[0-3]',apply:function(value){this.hours=+value;}},'h':{regex:'[0-9]|1[0-2]',apply:function(value){this.hours=+value;}},'mm':{regex:'[0-5][0-9]',apply:function(value){this.minutes=+value;}},'m':{regex:'[0-9]|[1-5][0-9]',apply:function(value){this.minutes=+value;}},'sss':{regex:'[0-9][0-9][0-9]',apply:function(value){this.milliseconds=+value;}},'ss':{regex:'[0-5][0-9]',apply:function(value){this.seconds=+value;}},'s':{regex:'[0-9]|[1-5][0-9]',apply:function(value){this.seconds=+value;}},'a':{regex:$locale.DATETIME_FORMATS.AMPMS.join('|'),apply:function(value){if(this.hours===12){this.hours=0;}
if(value==='PM'){this.hours+=12;}}}};};this.init();function createParser(format){var map=[],regex=format.split('');angular.forEach(formatCodeToRegex,function(data,code){var index=format.indexOf(code);if(index>-1){format=format.split('');regex[index]='('+data.regex+')';format[index]='$';for(var i=index+1,n=index+code.length;i<n;i++){regex[i]='';format[i]='$';}
format=format.join('');map.push({index:index,apply:data.apply});}});return{regex:new RegExp('^'+regex.join('')+'$'),map:orderByFilter(map,'index')};}
this.parse=function(input,format,baseDate){if(!angular.isString(input)||!format){return input;}
format=$locale.DATETIME_FORMATS[format]||format;format=format.replace(SPECIAL_CHARACTERS_REGEXP,'\\$&');if($locale.id!==localeId){this.init();}
if(!this.parsers[format]){this.parsers[format]=createParser(format);}
var parser=this.parsers[format],regex=parser.regex,map=parser.map,results=input.match(regex);if(results&&results.length){var fields,dt;if(angular.isDate(baseDate)&&!isNaN(baseDate.getTime())){fields={year:baseDate.getFullYear(),month:baseDate.getMonth(),date:baseDate.getDate(),hours:baseDate.getHours(),minutes:baseDate.getMinutes(),seconds:baseDate.getSeconds(),milliseconds:baseDate.getMilliseconds()};}else{if(baseDate){$log.warn('dateparser:','baseDate is not a valid date');}
fields={year:1900,month:0,date:1,hours:0,minutes:0,seconds:0,milliseconds:0};}
for(var i=1,n=results.length;i<n;i++){var mapper=map[i-1];if(mapper.apply){mapper.apply.call(fields,results[i]);}}
if(isValid(fields.year,fields.month,fields.date)){if(angular.isDate(baseDate)&&!isNaN(baseDate.getTime())){dt=new Date(baseDate);dt.setFullYear(fields.year,fields.month,fields.date,fields.hours,fields.minutes,fields.seconds,fields.milliseconds||0);}else{dt=new Date(fields.year,fields.month,fields.date,fields.hours,fields.minutes,fields.seconds,fields.milliseconds||0);}}
return dt;}};function isValid(year,month,date){if(date<1){return false;}
if(month===1&&date>28){return date===29&&((year%4===0&&year%100!==0)||year%400===0);}
if(month===3||month===5||month===8||month===10){return date<31;}
return true;}}]);angular.module('ui.bootstrap.dateparser').value('$dateParserSuppressWarning',false).service('dateParser',['$log','$dateParserSuppressWarning','uibDateParser',function($log,$dateParserSuppressWarning,uibDateParser){if(!$dateParserSuppressWarning){$log.warn('dateParser is now deprecated. Use uibDateParser instead.');}
angular.extend(this,uibDateParser);}]);angular.module('ui.bootstrap.position',[]).factory('$uibPosition',['$document','$window',function($document,$window){function getStyle(el,cssprop){if(el.currentStyle){return el.currentStyle[cssprop];}else if($window.getComputedStyle){return $window.getComputedStyle(el)[cssprop];}
return el.style[cssprop];}
function isStaticPositioned(element){return(getStyle(element,'position')||'static')==='static';}
var parentOffsetEl=function(element){var docDomEl=$document[0];var offsetParent=element.offsetParent||docDomEl;while(offsetParent&&offsetParent!==docDomEl&&isStaticPositioned(offsetParent)){offsetParent=offsetParent.offsetParent;}
return offsetParent||docDomEl;};return{position:function(element){var elBCR=this.offset(element);var offsetParentBCR={top:0,left:0};var offsetParentEl=parentOffsetEl(element[0]);if(offsetParentEl!=$document[0]){offsetParentBCR=this.offset(angular.element(offsetParentEl));offsetParentBCR.top+=offsetParentEl.clientTop-offsetParentEl.scrollTop;offsetParentBCR.left+=offsetParentEl.clientLeft-offsetParentEl.scrollLeft;}
var boundingClientRect=element[0].getBoundingClientRect();return{width:boundingClientRect.width||element.prop('offsetWidth'),height:boundingClientRect.height||element.prop('offsetHeight'),top:elBCR.top-offsetParentBCR.top,left:elBCR.left-offsetParentBCR.left};},offset:function(element){var boundingClientRect=element[0].getBoundingClientRect();return{width:boundingClientRect.width||element.prop('offsetWidth'),height:boundingClientRect.height||element.prop('offsetHeight'),top:boundingClientRect.top+($window.pageYOffset||$document[0].documentElement.scrollTop),left:boundingClientRect.left+($window.pageXOffset||$document[0].documentElement.scrollLeft)};},positionElements:function(hostEl,targetEl,positionStr,appendToBody){var positionStrParts=positionStr.split('-');var pos0=positionStrParts[0],pos1=positionStrParts[1]||'center';var hostElPos,targetElWidth,targetElHeight,targetElPos;hostElPos=appendToBody?this.offset(hostEl):this.position(hostEl);targetElWidth=targetEl.prop('offsetWidth');targetElHeight=targetEl.prop('offsetHeight');var shiftWidth={center:function(){return hostElPos.left+hostElPos.width/2-targetElWidth/2;},left:function(){return hostElPos.left;},right:function(){return hostElPos.left+hostElPos.width;}};var shiftHeight={center:function(){return hostElPos.top+hostElPos.height/2-targetElHeight/2;},top:function(){return hostElPos.top;},bottom:function(){return hostElPos.top+hostElPos.height;}};switch(pos0){case'right':targetElPos={top:shiftHeight[pos1](),left:shiftWidth[pos0]()};break;case'left':targetElPos={top:shiftHeight[pos1](),left:hostElPos.left-targetElWidth};break;case'bottom':targetElPos={top:shiftHeight[pos0](),left:shiftWidth[pos1]()};break;default:targetElPos={top:hostElPos.top-targetElHeight,left:shiftWidth[pos1]()};break;}
return targetElPos;}};}]);angular.module('ui.bootstrap.position').value('$positionSuppressWarning',false).service('$position',['$log','$positionSuppressWarning','$uibPosition',function($log,$positionSuppressWarning,$uibPosition){if(!$positionSuppressWarning){$log.warn('$position is now deprecated. Use $uibPosition instead.');}
angular.extend(this,$uibPosition);}]);angular.module('ui.bootstrap.datepicker',['ui.bootstrap.dateparser','ui.bootstrap.position']).value('$datepickerSuppressError',false).constant('uibDatepickerConfig',{formatDay:'dd',formatMonth:'MMMM',formatYear:'yyyy',formatDayHeader:'EEE',formatDayTitle:'MMMM yyyy',formatMonthTitle:'yyyy',datepickerMode:'day',minMode:'day',maxMode:'year',showWeeks:true,startingDay:0,yearRange:20,minDate:null,maxDate:null,shortcutPropagation:false}).controller('UibDatepickerController',['$scope','$attrs','$parse','$interpolate','$log','dateFilter','uibDatepickerConfig','$datepickerSuppressError',function($scope,$attrs,$parse,$interpolate,$log,dateFilter,datepickerConfig,$datepickerSuppressError){var self=this,ngModelCtrl={$setViewValue:angular.noop};this.modes=['day','month','year'];angular.forEach(['formatDay','formatMonth','formatYear','formatDayHeader','formatDayTitle','formatMonthTitle','showWeeks','startingDay','yearRange','shortcutPropagation'],function(key,index){self[key]=angular.isDefined($attrs[key])?(index<6?$interpolate($attrs[key])($scope.$parent):$scope.$parent.$eval($attrs[key])):datepickerConfig[key];});angular.forEach(['minDate','maxDate'],function(key){if($attrs[key]){$scope.$parent.$watch($parse($attrs[key]),function(value){self[key]=value?new Date(value):null;self.refreshView();});}else{self[key]=datepickerConfig[key]?new Date(datepickerConfig[key]):null;}});angular.forEach(['minMode','maxMode'],function(key){if($attrs[key]){$scope.$parent.$watch($parse($attrs[key]),function(value){self[key]=angular.isDefined(value)?value:$attrs[key];$scope[key]=self[key];if((key=='minMode'&&self.modes.indexOf($scope.datepickerMode)<self.modes.indexOf(self[key]))||(key=='maxMode'&&self.modes.indexOf($scope.datepickerMode)>self.modes.indexOf(self[key]))){$scope.datepickerMode=self[key];}});}else{self[key]=datepickerConfig[key]||null;$scope[key]=self[key];}});$scope.datepickerMode=$scope.datepickerMode||datepickerConfig.datepickerMode;$scope.uniqueId='datepicker-'+$scope.$id+'-'+Math.floor(Math.random()*10000);if(angular.isDefined($attrs.initDate)){this.activeDate=$scope.$parent.$eval($attrs.initDate)||new Date();$scope.$parent.$watch($attrs.initDate,function(initDate){if(initDate&&(ngModelCtrl.$isEmpty(ngModelCtrl.$modelValue)||ngModelCtrl.$invalid)){self.activeDate=initDate;self.refreshView();}});}else{this.activeDate=new Date();}
$scope.isActive=function(dateObject){if(self.compare(dateObject.date,self.activeDate)===0){$scope.activeDateId=dateObject.uid;return true;}
return false;};this.init=function(ngModelCtrl_){ngModelCtrl=ngModelCtrl_;ngModelCtrl.$render=function(){self.render();};};this.render=function(){if(ngModelCtrl.$viewValue){var date=new Date(ngModelCtrl.$viewValue),isValid=!isNaN(date);if(isValid){this.activeDate=date;}else if(!$datepickerSuppressError){$log.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');}}
this.refreshView();};this.refreshView=function(){if(this.element){this._refreshView();var date=ngModelCtrl.$viewValue?new Date(ngModelCtrl.$viewValue):null;ngModelCtrl.$setValidity('dateDisabled',!date||(this.element&&!this.isDisabled(date)));}};this.createDateObject=function(date,format){var model=ngModelCtrl.$viewValue?new Date(ngModelCtrl.$viewValue):null;return{date:date,label:dateFilter(date,format),selected:model&&this.compare(date,model)===0,disabled:this.isDisabled(date),current:this.compare(date,new Date())===0,customClass:this.customClass(date)};};this.isDisabled=function(date){return((this.minDate&&this.compare(date,this.minDate)<0)||(this.maxDate&&this.compare(date,this.maxDate)>0)||($attrs.dateDisabled&&$scope.dateDisabled({date:date,mode:$scope.datepickerMode})));};this.customClass=function(date){return $scope.customClass({date:date,mode:$scope.datepickerMode});};this.split=function(arr,size){var arrays=[];while(arr.length>0){arrays.push(arr.splice(0,size));}
return arrays;};$scope.select=function(date){if($scope.datepickerMode===self.minMode){var dt=ngModelCtrl.$viewValue?new Date(ngModelCtrl.$viewValue):new Date(0,0,0,0,0,0,0);dt.setFullYear(date.getFullYear(),date.getMonth(),date.getDate());ngModelCtrl.$setViewValue(dt);ngModelCtrl.$render();}else{self.activeDate=date;$scope.datepickerMode=self.modes[self.modes.indexOf($scope.datepickerMode)-1];}};$scope.move=function(direction){var year=self.activeDate.getFullYear()+direction*(self.step.years||0),month=self.activeDate.getMonth()+direction*(self.step.months||0);self.activeDate.setFullYear(year,month,1);self.refreshView();};$scope.toggleMode=function(direction){direction=direction||1;if(($scope.datepickerMode===self.maxMode&&direction===1)||($scope.datepickerMode===self.minMode&&direction===-1)){return;}
$scope.datepickerMode=self.modes[self.modes.indexOf($scope.datepickerMode)+direction];};$scope.keys={13:'enter',32:'space',33:'pageup',34:'pagedown',35:'end',36:'home',37:'left',38:'up',39:'right',40:'down'};var focusElement=function(){self.element[0].focus();};$scope.$on('uib:datepicker.focus',focusElement);$scope.keydown=function(evt){var key=$scope.keys[evt.which];if(!key||evt.shiftKey||evt.altKey){return;}
evt.preventDefault();if(!self.shortcutPropagation){evt.stopPropagation();}
if(key==='enter'||key==='space'){if(self.isDisabled(self.activeDate)){return;}
$scope.select(self.activeDate);}else if(evt.ctrlKey&&(key==='up'||key==='down')){$scope.toggleMode(key==='up'?1:-1);}else{self.handleKeyDown(key,evt);self.refreshView();}};}]).controller('UibDaypickerController',['$scope','$element','dateFilter',function(scope,$element,dateFilter){var DAYS_IN_MONTH=[31,28,31,30,31,30,31,31,30,31,30,31];this.step={months:1};this.element=$element;function getDaysInMonth(year,month){return((month===1)&&(year%4===0)&&((year%100!==0)||(year%400===0)))?29:DAYS_IN_MONTH[month];}
this.init=function(ctrl){angular.extend(ctrl,this);scope.showWeeks=ctrl.showWeeks;ctrl.refreshView();};this.getDates=function(startDate,n){var dates=new Array(n),current=new Date(startDate),i=0,date;while(i<n){date=new Date(current);dates[i++]=date;current.setDate(current.getDate()+1);}
return dates;};this._refreshView=function(){var year=this.activeDate.getFullYear(),month=this.activeDate.getMonth(),firstDayOfMonth=new Date(this.activeDate);firstDayOfMonth.setFullYear(year,month,1);var difference=this.startingDay-firstDayOfMonth.getDay(),numDisplayedFromPreviousMonth=(difference>0)?7-difference:-difference,firstDate=new Date(firstDayOfMonth);if(numDisplayedFromPreviousMonth>0){firstDate.setDate(-numDisplayedFromPreviousMonth+1);}
var days=this.getDates(firstDate,42);for(var i=0;i<42;i++){days[i]=angular.extend(this.createDateObject(days[i],this.formatDay),{secondary:days[i].getMonth()!==month,uid:scope.uniqueId+'-'+i});}
scope.labels=new Array(7);for(var j=0;j<7;j++){scope.labels[j]={abbr:dateFilter(days[j].date,this.formatDayHeader),full:dateFilter(days[j].date,'EEEE')};}
scope.title=dateFilter(this.activeDate,this.formatDayTitle);scope.rows=this.split(days,7);if(scope.showWeeks){scope.weekNumbers=[];var thursdayIndex=(4+7-this.startingDay)%7,numWeeks=scope.rows.length;for(var curWeek=0;curWeek<numWeeks;curWeek++){scope.weekNumbers.push(getISO8601WeekNumber(scope.rows[curWeek][thursdayIndex].date));}}};this.compare=function(date1,date2){return(new Date(date1.getFullYear(),date1.getMonth(),date1.getDate())-new Date(date2.getFullYear(),date2.getMonth(),date2.getDate()));};function getISO8601WeekNumber(date){var checkDate=new Date(date);checkDate.setDate(checkDate.getDate()+4-(checkDate.getDay()||7));var time=checkDate.getTime();checkDate.setMonth(0);checkDate.setDate(1);return Math.floor(Math.round((time-checkDate)/86400000)/7)+1;}
this.handleKeyDown=function(key,evt){var date=this.activeDate.getDate();if(key==='left'){date=date-1;}else if(key==='up'){date=date-7;}else if(key==='right'){date=date+1;}else if(key==='down'){date=date+7;}else if(key==='pageup'||key==='pagedown'){var month=this.activeDate.getMonth()+(key==='pageup'?-1:1);this.activeDate.setMonth(month,1);date=Math.min(getDaysInMonth(this.activeDate.getFullYear(),this.activeDate.getMonth()),date);}else if(key==='home'){date=1;}else if(key==='end'){date=getDaysInMonth(this.activeDate.getFullYear(),this.activeDate.getMonth());}
this.activeDate.setDate(date);};}]).controller('UibMonthpickerController',['$scope','$element','dateFilter',function(scope,$element,dateFilter){this.step={years:1};this.element=$element;this.init=function(ctrl){angular.extend(ctrl,this);ctrl.refreshView();};this._refreshView=function(){var months=new Array(12),year=this.activeDate.getFullYear(),date;for(var i=0;i<12;i++){date=new Date(this.activeDate);date.setFullYear(year,i,1);months[i]=angular.extend(this.createDateObject(date,this.formatMonth),{uid:scope.uniqueId+'-'+i});}
scope.title=dateFilter(this.activeDate,this.formatMonthTitle);scope.rows=this.split(months,3);};this.compare=function(date1,date2){return new Date(date1.getFullYear(),date1.getMonth())-new Date(date2.getFullYear(),date2.getMonth());};this.handleKeyDown=function(key,evt){var date=this.activeDate.getMonth();if(key==='left'){date=date-1;}else if(key==='up'){date=date-3;}else if(key==='right'){date=date+1;}else if(key==='down'){date=date+3;}else if(key==='pageup'||key==='pagedown'){var year=this.activeDate.getFullYear()+(key==='pageup'?-1:1);this.activeDate.setFullYear(year);}else if(key==='home'){date=0;}else if(key==='end'){date=11;}
this.activeDate.setMonth(date);};}]).controller('UibYearpickerController',['$scope','$element','dateFilter',function(scope,$element,dateFilter){var range;this.element=$element;function getStartingYear(year){return parseInt((year-1)/range,10)*range+1;}
this.yearpickerInit=function(){range=this.yearRange;this.step={years:range};};this._refreshView=function(){var years=new Array(range),date;for(var i=0,start=getStartingYear(this.activeDate.getFullYear());i<range;i++){date=new Date(this.activeDate);date.setFullYear(start+i,0,1);years[i]=angular.extend(this.createDateObject(date,this.formatYear),{uid:scope.uniqueId+'-'+i});}
scope.title=[years[0].label,years[range-1].label].join(' - ');scope.rows=this.split(years,5);};this.compare=function(date1,date2){return date1.getFullYear()-date2.getFullYear();};this.handleKeyDown=function(key,evt){var date=this.activeDate.getFullYear();if(key==='left'){date=date-1;}else if(key==='up'){date=date-5;}else if(key==='right'){date=date+1;}else if(key==='down'){date=date+5;}else if(key==='pageup'||key==='pagedown'){date+=(key==='pageup'?-1:1)*this.step.years;}else if(key==='home'){date=getStartingYear(this.activeDate.getFullYear());}else if(key==='end'){date=getStartingYear(this.activeDate.getFullYear())+range-1;}
this.activeDate.setFullYear(date);};}]).directive('uibDatepicker',function(){return{replace:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/datepicker/datepicker.html';},scope:{datepickerMode:'=?',dateDisabled:'&',customClass:'&',shortcutPropagation:'&?'},require:['uibDatepicker','^ngModel'],controller:'UibDatepickerController',controllerAs:'datepicker',link:function(scope,element,attrs,ctrls){var datepickerCtrl=ctrls[0],ngModelCtrl=ctrls[1];datepickerCtrl.init(ngModelCtrl);}};}).directive('uibDaypicker',function(){return{replace:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/datepicker/day.html';},require:['^?uibDatepicker','uibDaypicker','^?datepicker'],controller:'UibDaypickerController',link:function(scope,element,attrs,ctrls){var datepickerCtrl=ctrls[0]||ctrls[2],daypickerCtrl=ctrls[1];daypickerCtrl.init(datepickerCtrl);}};}).directive('uibMonthpicker',function(){return{replace:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/datepicker/month.html';},require:['^?uibDatepicker','uibMonthpicker','^?datepicker'],controller:'UibMonthpickerController',link:function(scope,element,attrs,ctrls){var datepickerCtrl=ctrls[0]||ctrls[2],monthpickerCtrl=ctrls[1];monthpickerCtrl.init(datepickerCtrl);}};}).directive('uibYearpicker',function(){return{replace:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/datepicker/year.html';},require:['^?uibDatepicker','uibYearpicker','^?datepicker'],controller:'UibYearpickerController',link:function(scope,element,attrs,ctrls){var ctrl=ctrls[0]||ctrls[2];angular.extend(ctrl,ctrls[1]);ctrl.yearpickerInit();ctrl.refreshView();}};}).constant('uibDatepickerPopupConfig',{datepickerPopup:'yyyy-MM-dd',datepickerPopupTemplateUrl:'template/datepicker/popup.html',datepickerTemplateUrl:'template/datepicker/datepicker.html',html5Types:{date:'yyyy-MM-dd','datetime-local':'yyyy-MM-ddTHH:mm:ss.sss','month':'yyyy-MM'},currentText:'Today',clearText:'Clear',closeText:'Done',closeOnDateSelection:true,appendToBody:false,showButtonBar:true,onOpenFocus:true}).controller('UibDatepickerPopupController',['$scope','$element','$attrs','$compile','$parse','$document','$rootScope','$uibPosition','dateFilter','uibDateParser','uibDatepickerPopupConfig','$timeout',function(scope,element,attrs,$compile,$parse,$document,$rootScope,$position,dateFilter,dateParser,datepickerPopupConfig,$timeout){var self=this;var cache={},isHtml5DateInput=false;var dateFormat,closeOnDateSelection,appendToBody,onOpenFocus,datepickerPopupTemplateUrl,datepickerTemplateUrl,popupEl,datepickerEl,ngModel,$popup;scope.watchData={};this.init=function(_ngModel_){ngModel=_ngModel_;closeOnDateSelection=angular.isDefined(attrs.closeOnDateSelection)?scope.$parent.$eval(attrs.closeOnDateSelection):datepickerPopupConfig.closeOnDateSelection;appendToBody=angular.isDefined(attrs.datepickerAppendToBody)?scope.$parent.$eval(attrs.datepickerAppendToBody):datepickerPopupConfig.appendToBody;onOpenFocus=angular.isDefined(attrs.onOpenFocus)?scope.$parent.$eval(attrs.onOpenFocus):datepickerPopupConfig.onOpenFocus;datepickerPopupTemplateUrl=angular.isDefined(attrs.datepickerPopupTemplateUrl)?attrs.datepickerPopupTemplateUrl:datepickerPopupConfig.datepickerPopupTemplateUrl;datepickerTemplateUrl=angular.isDefined(attrs.datepickerTemplateUrl)?attrs.datepickerTemplateUrl:datepickerPopupConfig.datepickerTemplateUrl;scope.showButtonBar=angular.isDefined(attrs.showButtonBar)?scope.$parent.$eval(attrs.showButtonBar):datepickerPopupConfig.showButtonBar;if(datepickerPopupConfig.html5Types[attrs.type]){dateFormat=datepickerPopupConfig.html5Types[attrs.type];isHtml5DateInput=true;}else{dateFormat=attrs.datepickerPopup||attrs.uibDatepickerPopup||datepickerPopupConfig.datepickerPopup;attrs.$observe('uibDatepickerPopup',function(value,oldValue){var newDateFormat=value||datepickerPopupConfig.datepickerPopup;if(newDateFormat!==dateFormat){dateFormat=newDateFormat;ngModel.$modelValue=null;if(!dateFormat){throw new Error('uibDatepickerPopup must have a date format specified.');}}});}
if(!dateFormat){throw new Error('uibDatepickerPopup must have a date format specified.');}
if(isHtml5DateInput&&attrs.datepickerPopup){throw new Error('HTML5 date input types do not support custom formats.');}
popupEl=angular.element('<div uib-datepicker-popup-wrap><div uib-datepicker></div></div>');popupEl.attr({'ng-model':'date','ng-change':'dateSelection(date)','template-url':datepickerPopupTemplateUrl});datepickerEl=angular.element(popupEl.children()[0]);datepickerEl.attr('template-url',datepickerTemplateUrl);if(isHtml5DateInput){if(attrs.type==='month'){datepickerEl.attr('datepicker-mode','"month"');datepickerEl.attr('min-mode','month');}}
if(attrs.datepickerOptions){var options=scope.$parent.$eval(attrs.datepickerOptions);if(options&&options.initDate){scope.initDate=options.initDate;datepickerEl.attr('init-date','initDate');delete options.initDate;}
angular.forEach(options,function(value,option){datepickerEl.attr(cameltoDash(option),value);});}
angular.forEach(['minMode','maxMode','minDate','maxDate','datepickerMode','initDate','shortcutPropagation'],function(key){if(attrs[key]){var getAttribute=$parse(attrs[key]);scope.$parent.$watch(getAttribute,function(value){scope.watchData[key]=value;if(key==='minDate'||key==='maxDate'){cache[key]=new Date(value);}});datepickerEl.attr(cameltoDash(key),'watchData.'+key);if(key==='datepickerMode'){var setAttribute=getAttribute.assign;scope.$watch('watchData.'+key,function(value,oldvalue){if(angular.isFunction(setAttribute)&&value!==oldvalue){setAttribute(scope.$parent,value);}});}}});if(attrs.dateDisabled){datepickerEl.attr('date-disabled','dateDisabled({ date: date, mode: mode })');}
if(attrs.showWeeks){datepickerEl.attr('show-weeks',attrs.showWeeks);}
if(attrs.customClass){datepickerEl.attr('custom-class','customClass({ date: date, mode: mode })');}
if(!isHtml5DateInput){ngModel.$$parserName='date';ngModel.$validators.date=validator;ngModel.$parsers.unshift(parseDate);ngModel.$formatters.push(function(value){scope.date=value;return ngModel.$isEmpty(value)?value:dateFilter(value,dateFormat);});}else{ngModel.$formatters.push(function(value){scope.date=value;return value;});}
ngModel.$viewChangeListeners.push(function(){scope.date=dateParser.parse(ngModel.$viewValue,dateFormat,scope.date);});element.bind('keydown',inputKeydownBind);$popup=$compile(popupEl)(scope);popupEl.remove();if(appendToBody){$document.find('body').append($popup);}else{element.after($popup);}
scope.$on('$destroy',function(){if(scope.isOpen===true){if(!$rootScope.$$phase){scope.$apply(function(){scope.isOpen=false;});}}
$popup.remove();element.unbind('keydown',inputKeydownBind);$document.unbind('click',documentClickBind);});};scope.getText=function(key){return scope[key+'Text']||datepickerPopupConfig[key+'Text'];};scope.isDisabled=function(date){if(date==='today'){date=new Date();}
return((scope.watchData.minDate&&scope.compare(date,cache.minDate)<0)||(scope.watchData.maxDate&&scope.compare(date,cache.maxDate)>0));};scope.compare=function(date1,date2){return(new Date(date1.getFullYear(),date1.getMonth(),date1.getDate())-new Date(date2.getFullYear(),date2.getMonth(),date2.getDate()));};scope.dateSelection=function(dt){if(angular.isDefined(dt)){scope.date=dt;}
var date=scope.date?dateFilter(scope.date,dateFormat):null;element.val(date);ngModel.$setViewValue(date);if(closeOnDateSelection){scope.isOpen=false;element[0].focus();}};scope.keydown=function(evt){if(evt.which===27){scope.isOpen=false;element[0].focus();}};scope.select=function(date){if(date==='today'){var today=new Date();if(angular.isDate(scope.date)){date=new Date(scope.date);date.setFullYear(today.getFullYear(),today.getMonth(),today.getDate());}else{date=new Date(today.setHours(0,0,0,0));}}
scope.dateSelection(date);};scope.close=function(){scope.isOpen=false;element[0].focus();};scope.$watch('isOpen',function(value){if(value){scope.position=appendToBody?$position.offset(element):$position.position(element);scope.position.top=scope.position.top+element.prop('offsetHeight');$timeout(function(){if(onOpenFocus){scope.$broadcast('uib:datepicker.focus');}
$document.bind('click',documentClickBind);},0,false);}else{$document.unbind('click',documentClickBind);}});function cameltoDash(string){return string.replace(/([A-Z])/g,function($1){return'-'+$1.toLowerCase();});}
function parseDate(viewValue){if(angular.isNumber(viewValue)){viewValue=new Date(viewValue);}
if(!viewValue){return null;}else if(angular.isDate(viewValue)&&!isNaN(viewValue)){return viewValue;}else if(angular.isString(viewValue)){var date=dateParser.parse(viewValue,dateFormat,scope.date);if(isNaN(date)){return undefined;}else{return date;}}else{return undefined;}}
function validator(modelValue,viewValue){var value=modelValue||viewValue;if(!attrs.ngRequired&&!value){return true;}
if(angular.isNumber(value)){value=new Date(value);}
if(!value){return true;}else if(angular.isDate(value)&&!isNaN(value)){return true;}else if(angular.isString(value)){var date=dateParser.parse(value,dateFormat);return!isNaN(date);}else{return false;}}
function documentClickBind(event){var popup=$popup[0];var dpContainsTarget=element[0].contains(event.target);var popupContainsTarget=popup.contains!==undefined&&popup.contains(event.target);if(scope.isOpen&&!(dpContainsTarget||popupContainsTarget)){scope.$apply(function(){scope.isOpen=false;});}}
function inputKeydownBind(evt){if(evt.which===27&&scope.isOpen){evt.preventDefault();evt.stopPropagation();scope.$apply(function(){scope.isOpen=false;});element[0].focus();}else if(evt.which===40&&!scope.isOpen){evt.preventDefault();evt.stopPropagation();scope.$apply(function(){scope.isOpen=true;});}}}]).directive('uibDatepickerPopup',function(){return{require:['ngModel','uibDatepickerPopup'],controller:'UibDatepickerPopupController',scope:{isOpen:'=?',currentText:'@',clearText:'@',closeText:'@',dateDisabled:'&',customClass:'&'},link:function(scope,element,attrs,ctrls){var ngModel=ctrls[0],ctrl=ctrls[1];ctrl.init(ngModel);}};}).directive('uibDatepickerPopupWrap',function(){return{replace:true,transclude:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/datepicker/popup.html';}};});angular.module('ui.bootstrap.datepicker').value('$datepickerSuppressWarning',false).controller('DatepickerController',['$scope','$attrs','$parse','$interpolate','$log','dateFilter','uibDatepickerConfig','$datepickerSuppressError','$datepickerSuppressWarning',function($scope,$attrs,$parse,$interpolate,$log,dateFilter,datepickerConfig,$datepickerSuppressError,$datepickerSuppressWarning){if(!$datepickerSuppressWarning){$log.warn('DatepickerController is now deprecated. Use UibDatepickerController instead.');}
var self=this,ngModelCtrl={$setViewValue:angular.noop};this.modes=['day','month','year'];angular.forEach(['formatDay','formatMonth','formatYear','formatDayHeader','formatDayTitle','formatMonthTitle','showWeeks','startingDay','yearRange','shortcutPropagation'],function(key,index){self[key]=angular.isDefined($attrs[key])?(index<6?$interpolate($attrs[key])($scope.$parent):$scope.$parent.$eval($attrs[key])):datepickerConfig[key];});angular.forEach(['minDate','maxDate'],function(key){if($attrs[key]){$scope.$parent.$watch($parse($attrs[key]),function(value){self[key]=value?new Date(value):null;self.refreshView();});}else{self[key]=datepickerConfig[key]?new Date(datepickerConfig[key]):null;}});angular.forEach(['minMode','maxMode'],function(key){if($attrs[key]){$scope.$parent.$watch($parse($attrs[key]),function(value){self[key]=angular.isDefined(value)?value:$attrs[key];$scope[key]=self[key];if((key=='minMode'&&self.modes.indexOf($scope.datepickerMode)<self.modes.indexOf(self[key]))||(key=='maxMode'&&self.modes.indexOf($scope.datepickerMode)>self.modes.indexOf(self[key]))){$scope.datepickerMode=self[key];}});}else{self[key]=datepickerConfig[key]||null;$scope[key]=self[key];}});$scope.datepickerMode=$scope.datepickerMode||datepickerConfig.datepickerMode;$scope.uniqueId='datepicker-'+$scope.$id+'-'+Math.floor(Math.random()*10000);if(angular.isDefined($attrs.initDate)){this.activeDate=$scope.$parent.$eval($attrs.initDate)||new Date();$scope.$parent.$watch($attrs.initDate,function(initDate){if(initDate&&(ngModelCtrl.$isEmpty(ngModelCtrl.$modelValue)||ngModelCtrl.$invalid)){self.activeDate=initDate;self.refreshView();}});}else{this.activeDate=new Date();}
$scope.isActive=function(dateObject){if(self.compare(dateObject.date,self.activeDate)===0){$scope.activeDateId=dateObject.uid;return true;}
return false;};this.init=function(ngModelCtrl_){ngModelCtrl=ngModelCtrl_;ngModelCtrl.$render=function(){self.render();};};this.render=function(){if(ngModelCtrl.$viewValue){var date=new Date(ngModelCtrl.$viewValue),isValid=!isNaN(date);if(isValid){this.activeDate=date;}else if(!$datepickerSuppressError){$log.error('Datepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');}}
this.refreshView();};this.refreshView=function(){if(this.element){this._refreshView();var date=ngModelCtrl.$viewValue?new Date(ngModelCtrl.$viewValue):null;ngModelCtrl.$setValidity('dateDisabled',!date||(this.element&&!this.isDisabled(date)));}};this.createDateObject=function(date,format){var model=ngModelCtrl.$viewValue?new Date(ngModelCtrl.$viewValue):null;return{date:date,label:dateFilter(date,format),selected:model&&this.compare(date,model)===0,disabled:this.isDisabled(date),current:this.compare(date,new Date())===0,customClass:this.customClass(date)};};this.isDisabled=function(date){return((this.minDate&&this.compare(date,this.minDate)<0)||(this.maxDate&&this.compare(date,this.maxDate)>0)||($attrs.dateDisabled&&$scope.dateDisabled({date:date,mode:$scope.datepickerMode})));};this.customClass=function(date){return $scope.customClass({date:date,mode:$scope.datepickerMode});};this.split=function(arr,size){var arrays=[];while(arr.length>0){arrays.push(arr.splice(0,size));}
return arrays;};this.fixTimeZone=function(date){var hours=date.getHours();date.setHours(hours===23?hours+2:0);};$scope.select=function(date){if($scope.datepickerMode===self.minMode){var dt=ngModelCtrl.$viewValue?new Date(ngModelCtrl.$viewValue):new Date(0,0,0,0,0,0,0);dt.setFullYear(date.getFullYear(),date.getMonth(),date.getDate());ngModelCtrl.$setViewValue(dt);ngModelCtrl.$render();}else{self.activeDate=date;$scope.datepickerMode=self.modes[self.modes.indexOf($scope.datepickerMode)-1];}};$scope.move=function(direction){var year=self.activeDate.getFullYear()+direction*(self.step.years||0),month=self.activeDate.getMonth()+direction*(self.step.months||0);self.activeDate.setFullYear(year,month,1);self.refreshView();};$scope.toggleMode=function(direction){direction=direction||1;if(($scope.datepickerMode===self.maxMode&&direction===1)||($scope.datepickerMode===self.minMode&&direction===-1)){return;}
$scope.datepickerMode=self.modes[self.modes.indexOf($scope.datepickerMode)+direction];};$scope.keys={13:'enter',32:'space',33:'pageup',34:'pagedown',35:'end',36:'home',37:'left',38:'up',39:'right',40:'down'};var focusElement=function(){self.element[0].focus();};$scope.$on('uib:datepicker.focus',focusElement);$scope.keydown=function(evt){var key=$scope.keys[evt.which];if(!key||evt.shiftKey||evt.altKey){return;}
evt.preventDefault();if(!self.shortcutPropagation){evt.stopPropagation();}
if(key==='enter'||key==='space'){if(self.isDisabled(self.activeDate)){return;}
$scope.select(self.activeDate);}else if(evt.ctrlKey&&(key==='up'||key==='down')){$scope.toggleMode(key==='up'?1:-1);}else{self.handleKeyDown(key,evt);self.refreshView();}};}]).directive('datepicker',['$log','$datepickerSuppressWarning',function($log,$datepickerSuppressWarning){return{replace:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/datepicker/datepicker.html';},scope:{datepickerMode:'=?',dateDisabled:'&',customClass:'&',shortcutPropagation:'&?'},require:['datepicker','^ngModel'],controller:'DatepickerController',controllerAs:'datepicker',link:function(scope,element,attrs,ctrls){if(!$datepickerSuppressWarning){$log.warn('datepicker is now deprecated. Use uib-datepicker instead.');}
var datepickerCtrl=ctrls[0],ngModelCtrl=ctrls[1];datepickerCtrl.init(ngModelCtrl);}};}]).directive('daypicker',['$log','$datepickerSuppressWarning',function($log,$datepickerSuppressWarning){return{replace:true,templateUrl:'template/datepicker/day.html',require:['^datepicker','daypicker'],controller:'UibDaypickerController',link:function(scope,element,attrs,ctrls){if(!$datepickerSuppressWarning){$log.warn('daypicker is now deprecated. Use uib-daypicker instead.');}
var datepickerCtrl=ctrls[0],daypickerCtrl=ctrls[1];daypickerCtrl.init(datepickerCtrl);}};}]).directive('monthpicker',['$log','$datepickerSuppressWarning',function($log,$datepickerSuppressWarning){return{replace:true,templateUrl:'template/datepicker/month.html',require:['^datepicker','monthpicker'],controller:'UibMonthpickerController',link:function(scope,element,attrs,ctrls){if(!$datepickerSuppressWarning){$log.warn('monthpicker is now deprecated. Use uib-monthpicker instead.');}
var datepickerCtrl=ctrls[0],monthpickerCtrl=ctrls[1];monthpickerCtrl.init(datepickerCtrl);}};}]).directive('yearpicker',['$log','$datepickerSuppressWarning',function($log,$datepickerSuppressWarning){return{replace:true,templateUrl:'template/datepicker/year.html',require:['^datepicker','yearpicker'],controller:'UibYearpickerController',link:function(scope,element,attrs,ctrls){if(!$datepickerSuppressWarning){$log.warn('yearpicker is now deprecated. Use uib-yearpicker instead.');}
var ctrl=ctrls[0];angular.extend(ctrl,ctrls[1]);ctrl.yearpickerInit();ctrl.refreshView();}};}]).directive('datepickerPopup',['$log','$datepickerSuppressWarning',function($log,$datepickerSuppressWarning){return{require:['ngModel','datepickerPopup'],controller:'UibDatepickerPopupController',scope:{isOpen:'=?',currentText:'@',clearText:'@',closeText:'@',dateDisabled:'&',customClass:'&'},link:function(scope,element,attrs,ctrls){if(!$datepickerSuppressWarning){$log.warn('datepicker-popup is now deprecated. Use uib-datepicker-popup instead.');}
var ngModel=ctrls[0],ctrl=ctrls[1];ctrl.init(ngModel);}};}]).directive('datepickerPopupWrap',['$log','$datepickerSuppressWarning',function($log,$datepickerSuppressWarning){return{replace:true,transclude:true,templateUrl:function(element,attrs){return attrs.templateUrl||'template/datepicker/popup.html';},link:function(){if(!$datepickerSuppressWarning){$log.warn('datepicker-popup-wrap is now deprecated. Use uib-datepicker-popup-wrap instead.');}}};}]);angular.module('ui.bootstrap.dropdown',['ui.bootstrap.position']).constant('uibDropdownConfig',{openClass:'open'}).service('uibDropdownService',['$document','$rootScope',function($document,$rootScope){var openScope=null;this.open=function(dropdownScope){if(!openScope){$document.bind('click',closeDropdown);$document.bind('keydown',keybindFilter);}
if(openScope&&openScope!==dropdownScope){openScope.isOpen=false;}
openScope=dropdownScope;};this.close=function(dropdownScope){if(openScope===dropdownScope){openScope=null;$document.unbind('click',closeDropdown);$document.unbind('keydown',keybindFilter);}};var closeDropdown=function(evt){if(!openScope){return;}
if(evt&&openScope.getAutoClose()==='disabled'){return;}
var toggleElement=openScope.getToggleElement();if(evt&&toggleElement&&toggleElement[0].contains(evt.target)){return;}
var dropdownElement=openScope.getDropdownElement();if(evt&&openScope.getAutoClose()==='outsideClick'&&dropdownElement&&dropdownElement[0].contains(evt.target)){return;}
openScope.isOpen=false;if(!$rootScope.$$phase){openScope.$apply();}};var keybindFilter=function(evt){if(evt.which===27){openScope.focusToggleElement();closeDropdown();}else if(openScope.isKeynavEnabled()&&/(38|40)/.test(evt.which)&&openScope.isOpen){evt.preventDefault();evt.stopPropagation();openScope.focusDropdownEntry(evt.which);}};}]).controller('UibDropdownController',['$scope','$element','$attrs','$parse','uibDropdownConfig','uibDropdownService','$animate','$uibPosition','$document','$compile','$templateRequest',function($scope,$element,$attrs,$parse,dropdownConfig,uibDropdownService,$animate,$position,$document,$compile,$templateRequest){var self=this,scope=$scope.$new(),templateScope,openClass=dropdownConfig.openClass,getIsOpen,setIsOpen=angular.noop,toggleInvoker=$attrs.onToggle?$parse($attrs.onToggle):angular.noop,appendToBody=false,keynavEnabled=false,selectedOption=null;$element.addClass('dropdown');this.init=function(){if($attrs.isOpen){getIsOpen=$parse($attrs.isOpen);setIsOpen=getIsOpen.assign;$scope.$watch(getIsOpen,function(value){scope.isOpen=!!value;});}
appendToBody=angular.isDefined($attrs.dropdownAppendToBody);keynavEnabled=angular.isDefined($attrs.uibKeyboardNav);if(appendToBody&&self.dropdownMenu){$document.find('body').append(self.dropdownMenu);$element.on('$destroy',function handleDestroyEvent(){self.dropdownMenu.remove();});}};this.toggle=function(open){return scope.isOpen=arguments.length?!!open:!scope.isOpen;};this.isOpen=function(){return scope.isOpen;};scope.getToggleElement=function(){return self.toggleElement;};scope.getAutoClose=function(){return $attrs.autoClose||'always';};scope.getElement=function(){return $element;};scope.isKeynavEnabled=function(){return keynavEnabled;};scope.focusDropdownEntry=function(keyCode){var elems=self.dropdownMenu?(angular.element(self.dropdownMenu).find('a')):(angular.element($element).find('ul').eq(0).find('a'));switch(keyCode){case(40):{if(!angular.isNumber(self.selectedOption)){self.selectedOption=0;}else{self.selectedOption=(self.selectedOption===elems.length-1?self.selectedOption:self.selectedOption+1);}
break;}
case(38):{if(!angular.isNumber(self.selectedOption)){self.selectedOption=elems.length-1;}else{self.selectedOption=self.selectedOption===0?0:self.selectedOption-1;}
break;}}
elems[self.selectedOption].focus();};scope.getDropdownElement=function(){return self.dropdownMenu;};scope.focusToggleElement=function(){if(self.toggleElement){self.toggleElement[0].focus();}};scope.$watch('isOpen',function(isOpen,wasOpen){if(appendToBody&&self.dropdownMenu){var pos=$position.positionElements($element,self.dropdownMenu,'bottom-left',true);var css={top:pos.top+'px',display:isOpen?'block':'none'};var rightalign=self.dropdownMenu.hasClass('dropdown-menu-right');if(!rightalign){css.left=pos.left+'px';css.right='auto';}else{css.left='auto';css.right=(window.innerWidth-(pos.left+$element.prop('offsetWidth')))+'px';}
self.dropdownMenu.css(css);}
$animate[isOpen?'addClass':'removeClass']($element,openClass).then(function(){if(angular.isDefined(isOpen)&&isOpen!==wasOpen){toggleInvoker($scope,{open:!!isOpen});}});if(isOpen){if(self.dropdownMenuTemplateUrl){$templateRequest(self.dropdownMenuTemplateUrl).then(function(tplContent){templateScope=scope.$new();$compile(tplContent.trim())(templateScope,function(dropdownElement){var newEl=dropdownElement;self.dropdownMenu.replaceWith(newEl);self.dropdownMenu=newEl;});});}
scope.focusToggleElement();uibDropdownService.open(scope);}else{if(self.dropdownMenuTemplateUrl){if(templateScope){templateScope.$destroy();}
var newEl=angular.element('<ul class="dropdown-menu"></ul>');self.dropdownMenu.replaceWith(newEl);self.dropdownMenu=newEl;}
uibDropdownService.close(scope);self.selectedOption=null;}
if(angular.isFunction(setIsOpen)){setIsOpen($scope,isOpen);}});$scope.$on('$locationChangeSuccess',function(){if(scope.getAutoClose()!=='disabled'){scope.isOpen=false;}});var offDestroy=$scope.$on('$destroy',function(){scope.$destroy();});scope.$on('$destroy',offDestroy);}]).directive('uibDropdown',function(){return{controller:'UibDropdownController',link:function(scope,element,attrs,dropdownCtrl){dropdownCtrl.init();}};}).directive('uibDropdownMenu',function(){return{restrict:'AC',require:'?^uibDropdown',link:function(scope,element,attrs,dropdownCtrl){if(!dropdownCtrl||angular.isDefined(attrs.dropdownNested)){return;}
element.addClass('dropdown-menu');var tplUrl=attrs.templateUrl;if(tplUrl){dropdownCtrl.dropdownMenuTemplateUrl=tplUrl;}
if(!dropdownCtrl.dropdownMenu){dropdownCtrl.dropdownMenu=element;}}};}).directive('uibKeyboardNav',function(){return{restrict:'A',require:'?^uibDropdown',link:function(scope,element,attrs,dropdownCtrl){element.bind('keydown',function(e){if([38,40].indexOf(e.which)!==-1){e.preventDefault();e.stopPropagation();var elems=dropdownCtrl.dropdownMenu.find('a');switch(e.which){case(40):{if(!angular.isNumber(dropdownCtrl.selectedOption)){dropdownCtrl.selectedOption=0;}else{dropdownCtrl.selectedOption=dropdownCtrl.selectedOption===elems.length-1?dropdownCtrl.selectedOption:dropdownCtrl.selectedOption+1;}
break;}
case(38):{if(!angular.isNumber(dropdownCtrl.selectedOption)){dropdownCtrl.selectedOption=elems.length-1;}else{dropdownCtrl.selectedOption=dropdownCtrl.selectedOption===0?0:dropdownCtrl.selectedOption-1;}
break;}}
elems[dropdownCtrl.selectedOption].focus();}});}};}).directive('uibDropdownToggle',function(){return{require:'?^uibDropdown',link:function(scope,element,attrs,dropdownCtrl){if(!dropdownCtrl){return;}
element.addClass('dropdown-toggle');dropdownCtrl.toggleElement=element;var toggleDropdown=function(event){event.preventDefault();if(!element.hasClass('disabled')&&!attrs.disabled){scope.$apply(function(){dropdownCtrl.toggle();});}};element.bind('click',toggleDropdown);element.attr({'aria-haspopup':true,'aria-expanded':false});scope.$watch(dropdownCtrl.isOpen,function(isOpen){element.attr('aria-expanded',!!isOpen);});scope.$on('$destroy',function(){element.unbind('click',toggleDropdown);});}};});angular.module('ui.bootstrap.dropdown').value('$dropdownSuppressWarning',false).service('dropdownService',['$log','$dropdownSuppressWarning','uibDropdownService',function($log,$dropdownSuppressWarning,uibDropdownService){if(!$dropdownSuppressWarning){$log.warn('dropdownService is now deprecated. Use uibDropdownService instead.');}
angular.extend(this,uibDropdownService);}]).controller('DropdownController',['$scope','$element','$attrs','$parse','uibDropdownConfig','uibDropdownService','$animate','$uibPosition','$document','$compile','$templateRequest','$log','$dropdownSuppressWarning',function($scope,$element,$attrs,$parse,dropdownConfig,uibDropdownService,$animate,$position,$document,$compile,$templateRequest,$log,$dropdownSuppressWarning){if(!$dropdownSuppressWarning){$log.warn('DropdownController is now deprecated. Use UibDropdownController instead.');}
var self=this,scope=$scope.$new(),templateScope,openClass=dropdownConfig.openClass,getIsOpen,setIsOpen=angular.noop,toggleInvoker=$attrs.onToggle?$parse($attrs.onToggle):angular.noop,appendToBody=false,keynavEnabled=false,selectedOption=null;$element.addClass('dropdown');this.init=function(){if($attrs.isOpen){getIsOpen=$parse($attrs.isOpen);setIsOpen=getIsOpen.assign;$scope.$watch(getIsOpen,function(value){scope.isOpen=!!value;});}
appendToBody=angular.isDefined($attrs.dropdownAppendToBody);keynavEnabled=angular.isDefined($attrs.uibKeyboardNav);if(appendToBody&&self.dropdownMenu){$document.find('body').append(self.dropdownMenu);$element.on('$destroy',function handleDestroyEvent(){self.dropdownMenu.remove();});}};this.toggle=function(open){return scope.isOpen=arguments.length?!!open:!scope.isOpen;};this.isOpen=function(){return scope.isOpen;};scope.getToggleElement=function(){return self.toggleElement;};scope.getAutoClose=function(){return $attrs.autoClose||'always';};scope.getElement=function(){return $element;};scope.isKeynavEnabled=function(){return keynavEnabled;};scope.focusDropdownEntry=function(keyCode){var elems=self.dropdownMenu?(angular.element(self.dropdownMenu).find('a')):(angular.element($element).find('ul').eq(0).find('a'));switch(keyCode){case(40):{if(!angular.isNumber(self.selectedOption)){self.selectedOption=0;}else{self.selectedOption=(self.selectedOption===elems.length-1?self.selectedOption:self.selectedOption+1);}
break;}
case(38):{if(!angular.isNumber(self.selectedOption)){self.selectedOption=elems.length-1;}else{self.selectedOption=self.selectedOption===0?0:self.selectedOption-1;}
break;}}
elems[self.selectedOption].focus();};scope.getDropdownElement=function(){return self.dropdownMenu;};scope.focusToggleElement=function(){if(self.toggleElement){self.toggleElement[0].focus();}};scope.$watch('isOpen',function(isOpen,wasOpen){if(appendToBody&&self.dropdownMenu){var pos=$position.positionElements($element,self.dropdownMenu,'bottom-left',true);var css={top:pos.top+'px',display:isOpen?'block':'none'};var rightalign=self.dropdownMenu.hasClass('dropdown-menu-right');if(!rightalign){css.left=pos.left+'px';css.right='auto';}else{css.left='auto';css.right=(window.innerWidth-(pos.left+$element.prop('offsetWidth')))+'px';}
self.dropdownMenu.css(css);}
$animate[isOpen?'addClass':'removeClass']($element,openClass).then(function(){if(angular.isDefined(isOpen)&&isOpen!==wasOpen){toggleInvoker($scope,{open:!!isOpen});}});if(isOpen){if(self.dropdownMenuTemplateUrl){$templateRequest(self.dropdownMenuTemplateUrl).then(function(tplContent){templateScope=scope.$new();$compile(tplContent.trim())(templateScope,function(dropdownElement){var newEl=dropdownElement;self.dropdownMenu.replaceWith(newEl);self.dropdownMenu=newEl;});});}
scope.focusToggleElement();uibDropdownService.open(scope);}else{if(self.dropdownMenuTemplateUrl){if(templateScope){templateScope.$destroy();}
var newEl=angular.element('<ul class="dropdown-menu"></ul>');self.dropdownMenu.replaceWith(newEl);self.dropdownMenu=newEl;}
uibDropdownService.close(scope);self.selectedOption=null;}
if(angular.isFunction(setIsOpen)){setIsOpen($scope,isOpen);}});$scope.$on('$locationChangeSuccess',function(){if(scope.getAutoClose()!=='disabled'){scope.isOpen=false;}});var offDestroy=$scope.$on('$destroy',function(){scope.$destroy();});scope.$on('$destroy',offDestroy);}]).directive('dropdown',['$log','$dropdownSuppressWarning',function($log,$dropdownSuppressWarning){return{controller:'DropdownController',link:function(scope,element,attrs,dropdownCtrl){if(!$dropdownSuppressWarning){$log.warn('dropdown is now deprecated. Use uib-dropdown instead.');}
dropdownCtrl.init();}};}]).directive('dropdownMenu',['$log','$dropdownSuppressWarning',function($log,$dropdownSuppressWarning){return{restrict:'AC',require:'?^dropdown',link:function(scope,element,attrs,dropdownCtrl){if(!dropdownCtrl||angular.isDefined(attrs.dropdownNested)){return;}
if(!$dropdownSuppressWarning){$log.warn('dropdown-menu is now deprecated. Use uib-dropdown-menu instead.');}
element.addClass('dropdown-menu');var tplUrl=attrs.templateUrl;if(tplUrl){dropdownCtrl.dropdownMenuTemplateUrl=tplUrl;}
if(!dropdownCtrl.dropdownMenu){dropdownCtrl.dropdownMenu=element;}}};}]).directive('keyboardNav',['$log','$dropdownSuppressWarning',function($log,$dropdownSuppressWarning){return{restrict:'A',require:'?^dropdown',link:function(scope,element,attrs,dropdownCtrl){if(!$dropdownSuppressWarning){$log.warn('keyboard-nav is now deprecated. Use uib-keyboard-nav instead.');}
element.bind('keydown',function(e){if([38,40].indexOf(e.which)!==-1){e.preventDefault();e.stopPropagation();var elems=dropdownCtrl.dropdownMenu.find('a');switch(e.which){case(40):{if(!angular.isNumber(dropdownCtrl.selectedOption)){dropdownCtrl.selectedOption=0;}else{dropdownCtrl.selectedOption=dropdownCtrl.selectedOption===elems.length-1?dropdownCtrl.selectedOption:dropdownCtrl.selectedOption+1;}
break;}
case(38):{if(!angular.isNumber(dropdownCtrl.selectedOption)){dropdownCtrl.selectedOption=elems.length-1;}else{dropdownCtrl.selectedOption=dropdownCtrl.selectedOption===0?0:dropdownCtrl.selectedOption-1;}
break;}}
elems[dropdownCtrl.selectedOption].focus();}});}};}]).directive('dropdownToggle',['$log','$dropdownSuppressWarning',function($log,$dropdownSuppressWarning){return{require:'?^dropdown',link:function(scope,element,attrs,dropdownCtrl){if(!$dropdownSuppressWarning){$log.warn('dropdown-toggle is now deprecated. Use uib-dropdown-toggle instead.');}
if(!dropdownCtrl){return;}
element.addClass('dropdown-toggle');dropdownCtrl.toggleElement=element;var toggleDropdown=function(event){event.preventDefault();if(!element.hasClass('disabled')&&!attrs.disabled){scope.$apply(function(){dropdownCtrl.toggle();});}};element.bind('click',toggleDropdown);element.attr({'aria-haspopup':true,'aria-expanded':false});scope.$watch(dropdownCtrl.isOpen,function(isOpen){element.attr('aria-expanded',!!isOpen);});scope.$on('$destroy',function(){element.unbind('click',toggleDropdown);});}};}]);angular.module('ui.bootstrap.stackedMap',[]).factory('$$stackedMap',function(){return{createNew:function(){var stack=[];return{add:function(key,value){stack.push({key:key,value:value});},get:function(key){for(var i=0;i<stack.length;i++){if(key==stack[i].key){return stack[i];}}},keys:function(){var keys=[];for(var i=0;i<stack.length;i++){keys.push(stack[i].key);}
return keys;},top:function(){return stack[stack.length-1];},remove:function(key){var idx=-1;for(var i=0;i<stack.length;i++){if(key==stack[i].key){idx=i;break;}}
return stack.splice(idx,1)[0];},removeTop:function(){return stack.splice(stack.length-1,1)[0];},length:function(){return stack.length;}};}};});angular.module('ui.bootstrap.modal',['ui.bootstrap.stackedMap']).factory('$$multiMap',function(){return{createNew:function(){var map={};return{entries:function(){return Object.keys(map).map(function(key){return{key:key,value:map[key]};});},get:function(key){return map[key];},hasKey:function(key){return!!map[key];},keys:function(){return Object.keys(map);},put:function(key,value){if(!map[key]){map[key]=[];}
map[key].push(value);},remove:function(key,value){var values=map[key];if(!values){return;}
var idx=values.indexOf(value);if(idx!==-1){values.splice(idx,1);}
if(!values.length){delete map[key];}}};}};}).directive('uibModalBackdrop',['$animate','$injector','$uibModalStack',function($animate,$injector,$modalStack){var $animateCss=null;if($injector.has('$animateCss')){$animateCss=$injector.get('$animateCss');}
return{replace:true,templateUrl:'template/modal/backdrop.html',compile:function(tElement,tAttrs){tElement.addClass(tAttrs.backdropClass);return linkFn;}};function linkFn(scope,element,attrs){element.addClass('modal-backdrop');if(attrs.modalInClass){if($animateCss){$animateCss(element,{addClass:attrs.modalInClass}).start();}else{$animate.addClass(element,attrs.modalInClass);}
scope.$on($modalStack.NOW_CLOSING_EVENT,function(e,setIsAsync){var done=setIsAsync();if($animateCss){$animateCss(element,{removeClass:attrs.modalInClass}).start().then(done);}else{$animate.removeClass(element,attrs.modalInClass).then(done);}});}}}]).directive('uibModalWindow',['$uibModalStack','$q','$animate','$injector',function($modalStack,$q,$animate,$injector){var $animateCss=null;if($injector.has('$animateCss')){$animateCss=$injector.get('$animateCss');}
return{scope:{index:'@'},replace:true,transclude:true,templateUrl:function(tElement,tAttrs){return tAttrs.templateUrl||'template/modal/window.html';},link:function(scope,element,attrs){element.addClass(attrs.windowClass||'');element.addClass(attrs.windowTopClass||'');scope.size=attrs.size;scope.close=function(evt){var modal=$modalStack.getTop();if(modal&&modal.value.backdrop&&modal.value.backdrop!=='static'&&(evt.target===evt.currentTarget)){evt.preventDefault();evt.stopPropagation();$modalStack.dismiss(modal.key,'backdrop click');}};element.on('click',scope.close);scope.$isRendered=true;var modalRenderDeferObj=$q.defer();attrs.$observe('modalRender',function(value){if(value=='true'){modalRenderDeferObj.resolve();}});modalRenderDeferObj.promise.then(function(){var animationPromise=null;if(attrs.modalInClass){if($animateCss){animationPromise=$animateCss(element,{addClass:attrs.modalInClass}).start();}else{animationPromise=$animate.addClass(element,attrs.modalInClass);}
scope.$on($modalStack.NOW_CLOSING_EVENT,function(e,setIsAsync){var done=setIsAsync();if($animateCss){$animateCss(element,{removeClass:attrs.modalInClass}).start().then(done);}else{$animate.removeClass(element,attrs.modalInClass).then(done);}});}
$q.when(animationPromise).then(function(){var inputWithAutofocus=element[0].querySelector('[autofocus]');if(inputWithAutofocus){inputWithAutofocus.focus();}else{element[0].focus();}});var modal=$modalStack.getTop();if(modal){$modalStack.modalRendered(modal.key);}});}};}]).directive('uibModalAnimationClass',function(){return{compile:function(tElement,tAttrs){if(tAttrs.modalAnimation){tElement.addClass(tAttrs.uibModalAnimationClass);}}};}).directive('uibModalTransclude',function(){return{link:function($scope,$element,$attrs,controller,$transclude){$transclude($scope.$parent,function(clone){$element.empty();$element.append(clone);});}};}).factory('$uibModalStack',['$animate','$timeout','$document','$compile','$rootScope','$q','$injector','$$multiMap','$$stackedMap',function($animate,$timeout,$document,$compile,$rootScope,$q,$injector,$$multiMap,$$stackedMap){var $animateCss=null;if($injector.has('$animateCss')){$animateCss=$injector.get('$animateCss');}
var OPENED_MODAL_CLASS='modal-open';var backdropDomEl,backdropScope;var openedWindows=$$stackedMap.createNew();var openedClasses=$$multiMap.createNew();var $modalStack={NOW_CLOSING_EVENT:'modal.stack.now-closing'};var focusableElementList;var focusIndex=0;var tababbleSelector='a[href], area[href], input:not([disabled]), '+'button:not([disabled]),select:not([disabled]), textarea:not([disabled]), '+'iframe, object, embed, *[tabindex], *[contenteditable=true]';function backdropIndex(){var topBackdropIndex=-1;var opened=openedWindows.keys();for(var i=0;i<opened.length;i++){if(openedWindows.get(opened[i]).value.backdrop){topBackdropIndex=i;}}
return topBackdropIndex;}
$rootScope.$watch(backdropIndex,function(newBackdropIndex){if(backdropScope){backdropScope.index=newBackdropIndex;}});function removeModalWindow(modalInstance,elementToReceiveFocus){var body=$document.find('body').eq(0);var modalWindow=openedWindows.get(modalInstance).value;openedWindows.remove(modalInstance);removeAfterAnimate(modalWindow.modalDomEl,modalWindow.modalScope,function(){var modalBodyClass=modalWindow.openedClass||OPENED_MODAL_CLASS;openedClasses.remove(modalBodyClass,modalInstance);body.toggleClass(modalBodyClass,openedClasses.hasKey(modalBodyClass));toggleTopWindowClass(true);});checkRemoveBackdrop();if(elementToReceiveFocus&&elementToReceiveFocus.focus){elementToReceiveFocus.focus();}else{body.focus();}}
function toggleTopWindowClass(toggleSwitch){var modalWindow;if(openedWindows.length()>0){modalWindow=openedWindows.top().value;modalWindow.modalDomEl.toggleClass(modalWindow.windowTopClass||'',toggleSwitch);}}
function checkRemoveBackdrop(){if(backdropDomEl&&backdropIndex()==-1){var backdropScopeRef=backdropScope;removeAfterAnimate(backdropDomEl,backdropScope,function(){backdropScopeRef=null;});backdropDomEl=undefined;backdropScope=undefined;}}
function removeAfterAnimate(domEl,scope,done){var asyncDeferred;var asyncPromise=null;var setIsAsync=function(){if(!asyncDeferred){asyncDeferred=$q.defer();asyncPromise=asyncDeferred.promise;}
return function asyncDone(){asyncDeferred.resolve();};};scope.$broadcast($modalStack.NOW_CLOSING_EVENT,setIsAsync);return $q.when(asyncPromise).then(afterAnimating);function afterAnimating(){if(afterAnimating.done){return;}
afterAnimating.done=true;if($animateCss){$animateCss(domEl,{event:'leave'}).start().then(function(){domEl.remove();});}else{$animate.leave(domEl);}
scope.$destroy();if(done){done();}}}
$document.bind('keydown',function(evt){if(evt.isDefaultPrevented()){return evt;}
var modal=openedWindows.top();if(modal&&modal.value.keyboard){switch(evt.which){case 27:{evt.preventDefault();$rootScope.$apply(function(){$modalStack.dismiss(modal.key,'escape key press');});break;}
case 9:{$modalStack.loadFocusElementList(modal);var focusChanged=false;if(evt.shiftKey){if($modalStack.isFocusInFirstItem(evt)){focusChanged=$modalStack.focusLastFocusableElement();}}else{if($modalStack.isFocusInLastItem(evt)){focusChanged=$modalStack.focusFirstFocusableElement();}}
if(focusChanged){evt.preventDefault();evt.stopPropagation();}
break;}}}});$modalStack.open=function(modalInstance,modal){var modalOpener=$document[0].activeElement,modalBodyClass=modal.openedClass||OPENED_MODAL_CLASS;toggleTopWindowClass(false);openedWindows.add(modalInstance,{deferred:modal.deferred,renderDeferred:modal.renderDeferred,modalScope:modal.scope,backdrop:modal.backdrop,keyboard:modal.keyboard,openedClass:modal.openedClass,windowTopClass:modal.windowTopClass});openedClasses.put(modalBodyClass,modalInstance);var body=$document.find('body').eq(0),currBackdropIndex=backdropIndex();if(currBackdropIndex>=0&&!backdropDomEl){backdropScope=$rootScope.$new(true);backdropScope.index=currBackdropIndex;var angularBackgroundDomEl=angular.element('<div uib-modal-backdrop="modal-backdrop"></div>');angularBackgroundDomEl.attr('backdrop-class',modal.backdropClass);if(modal.animation){angularBackgroundDomEl.attr('modal-animation','true');}
backdropDomEl=$compile(angularBackgroundDomEl)(backdropScope);body.append(backdropDomEl);}
var angularDomEl=angular.element('<div uib-modal-window="modal-window"></div>');angularDomEl.attr({'template-url':modal.windowTemplateUrl,'window-class':modal.windowClass,'window-top-class':modal.windowTopClass,'size':modal.size,'index':openedWindows.length()-1,'animate':'animate'}).html(modal.content);if(modal.animation){angularDomEl.attr('modal-animation','true');}
var modalDomEl=$compile(angularDomEl)(modal.scope);openedWindows.top().value.modalDomEl=modalDomEl;openedWindows.top().value.modalOpener=modalOpener;body.append(modalDomEl);body.addClass(modalBodyClass);$modalStack.clearFocusListCache();};function broadcastClosing(modalWindow,resultOrReason,closing){return!modalWindow.value.modalScope.$broadcast('modal.closing',resultOrReason,closing).defaultPrevented;}
$modalStack.close=function(modalInstance,result){var modalWindow=openedWindows.get(modalInstance);if(modalWindow&&broadcastClosing(modalWindow,result,true)){modalWindow.value.modalScope.$$uibDestructionScheduled=true;modalWindow.value.deferred.resolve(result);removeModalWindow(modalInstance,modalWindow.value.modalOpener);return true;}
return!modalWindow;};$modalStack.dismiss=function(modalInstance,reason){var modalWindow=openedWindows.get(modalInstance);if(modalWindow&&broadcastClosing(modalWindow,reason,false)){modalWindow.value.modalScope.$$uibDestructionScheduled=true;modalWindow.value.deferred.reject(reason);removeModalWindow(modalInstance,modalWindow.value.modalOpener);return true;}
return!modalWindow;};$modalStack.dismissAll=function(reason){var topModal=this.getTop();while(topModal&&this.dismiss(topModal.key,reason)){topModal=this.getTop();}};$modalStack.getTop=function(){return openedWindows.top();};$modalStack.modalRendered=function(modalInstance){var modalWindow=openedWindows.get(modalInstance);if(modalWindow){modalWindow.value.renderDeferred.resolve();}};$modalStack.focusFirstFocusableElement=function(){if(focusableElementList.length>0){focusableElementList[0].focus();return true;}
return false;};$modalStack.focusLastFocusableElement=function(){if(focusableElementList.length>0){focusableElementList[focusableElementList.length-1].focus();return true;}
return false;};$modalStack.isFocusInFirstItem=function(evt){if(focusableElementList.length>0){return(evt.target||evt.srcElement)==focusableElementList[0];}
return false;};$modalStack.isFocusInLastItem=function(evt){if(focusableElementList.length>0){return(evt.target||evt.srcElement)==focusableElementList[focusableElementList.length-1];}
return false;};$modalStack.clearFocusListCache=function(){focusableElementList=[];focusIndex=0;};$modalStack.loadFocusElementList=function(modalWindow){if(focusableElementList===undefined||!focusableElementList.length){if(modalWindow){var modalDomE1=modalWindow.value.modalDomEl;if(modalDomE1&&modalDomE1.length){focusableElementList=modalDomE1[0].querySelectorAll(tababbleSelector);}}}};return $modalStack;}]).provider('$uibModal',function(){var $modalProvider={options:{animation:true,backdrop:true,keyboard:true},$get:['$injector','$rootScope','$q','$templateRequest','$controller','$uibModalStack','$modalSuppressWarning','$log',function($injector,$rootScope,$q,$templateRequest,$controller,$modalStack,$modalSuppressWarning,$log){var $modal={};function getTemplatePromise(options){return options.template?$q.when(options.template):$templateRequest(angular.isFunction(options.templateUrl)?(options.templateUrl)():options.templateUrl);}
function getResolvePromises(resolves){var promisesArr=[];angular.forEach(resolves,function(value){if(angular.isFunction(value)||angular.isArray(value)){promisesArr.push($q.when($injector.invoke(value)));}else if(angular.isString(value)){promisesArr.push($q.when($injector.get(value)));}else{promisesArr.push($q.when(value));}});return promisesArr;}
var promiseChain=null;$modal.getPromiseChain=function(){return promiseChain;};$modal.open=function(modalOptions){var modalResultDeferred=$q.defer();var modalOpenedDeferred=$q.defer();var modalRenderDeferred=$q.defer();var modalInstance={result:modalResultDeferred.promise,opened:modalOpenedDeferred.promise,rendered:modalRenderDeferred.promise,close:function(result){return $modalStack.close(modalInstance,result);},dismiss:function(reason){return $modalStack.dismiss(modalInstance,reason);}};modalOptions=angular.extend({},$modalProvider.options,modalOptions);modalOptions.resolve=modalOptions.resolve||{};if(!modalOptions.template&&!modalOptions.templateUrl){throw new Error('One of template or templateUrl options is required.');}
var templateAndResolvePromise=$q.all([getTemplatePromise(modalOptions)].concat(getResolvePromises(modalOptions.resolve)));function resolveWithTemplate(){return templateAndResolvePromise;}
var samePromise;samePromise=promiseChain=$q.all([promiseChain]).then(resolveWithTemplate,resolveWithTemplate).then(function resolveSuccess(tplAndVars){var modalScope=(modalOptions.scope||$rootScope).$new();modalScope.$close=modalInstance.close;modalScope.$dismiss=modalInstance.dismiss;modalScope.$on('$destroy',function(){if(!modalScope.$$uibDestructionScheduled){modalScope.$dismiss('$uibUnscheduledDestruction');}});var ctrlInstance,ctrlLocals={};var resolveIter=1;if(modalOptions.controller){ctrlLocals.$scope=modalScope;ctrlLocals.$uibModalInstance=modalInstance;Object.defineProperty(ctrlLocals,'$modalInstance',{get:function(){if(!$modalSuppressWarning){$log.warn('$modalInstance is now deprecated. Use $uibModalInstance instead.');}
return modalInstance;}});angular.forEach(modalOptions.resolve,function(value,key){ctrlLocals[key]=tplAndVars[resolveIter++];});ctrlInstance=$controller(modalOptions.controller,ctrlLocals);if(modalOptions.controllerAs){if(modalOptions.bindToController){angular.extend(ctrlInstance,modalScope);}
modalScope[modalOptions.controllerAs]=ctrlInstance;}}
$modalStack.open(modalInstance,{scope:modalScope,deferred:modalResultDeferred,renderDeferred:modalRenderDeferred,content:tplAndVars[0],animation:modalOptions.animation,backdrop:modalOptions.backdrop,keyboard:modalOptions.keyboard,backdropClass:modalOptions.backdropClass,windowTopClass:modalOptions.windowTopClass,windowClass:modalOptions.windowClass,windowTemplateUrl:modalOptions.windowTemplateUrl,size:modalOptions.size,openedClass:modalOptions.openedClass});modalOpenedDeferred.resolve(true);},function resolveError(reason){modalOpenedDeferred.reject(reason);modalResultDeferred.reject(reason);}).finally(function(){if(promiseChain===samePromise){promiseChain=null;}});return modalInstance;};return $modal;}]};return $modalProvider;});angular.module('ui.bootstrap.modal').value('$modalSuppressWarning',false).directive('modalBackdrop',['$animate','$injector','$modalStack','$log','$modalSuppressWarning',function($animate,$injector,$modalStack,$log,$modalSuppressWarning){var $animateCss=null;if($injector.has('$animateCss')){$animateCss=$injector.get('$animateCss');}
return{replace:true,templateUrl:'template/modal/backdrop.html',compile:function(tElement,tAttrs){tElement.addClass(tAttrs.backdropClass);return linkFn;}};function linkFn(scope,element,attrs){if(!$modalSuppressWarning){$log.warn('modal-backdrop is now deprecated. Use uib-modal-backdrop instead.');}
element.addClass('modal-backdrop');if(attrs.modalInClass){if($animateCss){$animateCss(element,{addClass:attrs.modalInClass}).start();}else{$animate.addClass(element,attrs.modalInClass);}
scope.$on($modalStack.NOW_CLOSING_EVENT,function(e,setIsAsync){var done=setIsAsync();if($animateCss){$animateCss(element,{removeClass:attrs.modalInClass}).start().then(done);}else{$animate.removeClass(element,attrs.modalInClass).then(done);}});}}}]).directive('modalWindow',['$modalStack','$q','$animate','$injector','$log','$modalSuppressWarning',function($modalStack,$q,$animate,$injector,$log,$modalSuppressWarning){var $animateCss=null;if($injector.has('$animateCss')){$animateCss=$injector.get('$animateCss');}
return{scope:{index:'@'},replace:true,transclude:true,templateUrl:function(tElement,tAttrs){return tAttrs.templateUrl||'template/modal/window.html';},link:function(scope,element,attrs){if(!$modalSuppressWarning){$log.warn('modal-window is now deprecated. Use uib-modal-window instead.');}
element.addClass(attrs.windowClass||'');element.addClass(attrs.windowTopClass||'');scope.size=attrs.size;scope.close=function(evt){var modal=$modalStack.getTop();if(modal&&modal.value.backdrop&&modal.value.backdrop!=='static'&&(evt.target===evt.currentTarget)){evt.preventDefault();evt.stopPropagation();$modalStack.dismiss(modal.key,'backdrop click');}};element.on('click',scope.close);scope.$isRendered=true;var modalRenderDeferObj=$q.defer();attrs.$observe('modalRender',function(value){if(value=='true'){modalRenderDeferObj.resolve();}});modalRenderDeferObj.promise.then(function(){var animationPromise=null;if(attrs.modalInClass){if($animateCss){animationPromise=$animateCss(element,{addClass:attrs.modalInClass}).start();}else{animationPromise=$animate.addClass(element,attrs.modalInClass);}
scope.$on($modalStack.NOW_CLOSING_EVENT,function(e,setIsAsync){var done=setIsAsync();if($animateCss){$animateCss(element,{removeClass:attrs.modalInClass}).start().then(done);}else{$animate.removeClass(element,attrs.modalInClass).then(done);}});}
$q.when(animationPromise).then(function(){var inputWithAutofocus=element[0].querySelector('[autofocus]');if(inputWithAutofocus){inputWithAutofocus.focus();}else{element[0].focus();}});var modal=$modalStack.getTop();if(modal){$modalStack.modalRendered(modal.key);}});}};}]).directive('modalAnimationClass',['$log','$modalSuppressWarning',function($log,$modalSuppressWarning){return{compile:function(tElement,tAttrs){if(!$modalSuppressWarning){$log.warn('modal-animation-class is now deprecated. Use uib-modal-animation-class instead.');}
if(tAttrs.modalAnimation){tElement.addClass(tAttrs.modalAnimationClass);}}};}]).directive('modalTransclude',['$log','$modalSuppressWarning',function($log,$modalSuppressWarning){return{link:function($scope,$element,$attrs,controller,$transclude){if(!$modalSuppressWarning){$log.warn('modal-transclude is now deprecated. Use uib-modal-transclude instead.');}
$transclude($scope.$parent,function(clone){$element.empty();$element.append(clone);});}};}]).service('$modalStack',['$animate','$timeout','$document','$compile','$rootScope','$q','$injector','$$multiMap','$$stackedMap','$uibModalStack','$log','$modalSuppressWarning',function($animate,$timeout,$document,$compile,$rootScope,$q,$injector,$$multiMap,$$stackedMap,$uibModalStack,$log,$modalSuppressWarning){if(!$modalSuppressWarning){$log.warn('$modalStack is now deprecated. Use $uibModalStack instead.');}
angular.extend(this,$uibModalStack);}]).provider('$modal',['$uibModalProvider',function($uibModalProvider){angular.extend(this,$uibModalProvider);this.$get=['$injector','$log','$modalSuppressWarning',function($injector,$log,$modalSuppressWarning){if(!$modalSuppressWarning){$log.warn('$modal is now deprecated. Use $uibModal instead.');}
return $injector.invoke($uibModalProvider.$get);}];}]);angular.module('ui.bootstrap.pagination',[]).controller('UibPaginationController',['$scope','$attrs','$parse',function($scope,$attrs,$parse){var self=this,ngModelCtrl={$setViewValue:angular.noop},setNumPages=$attrs.numPages?$parse($attrs.numPages).assign:angular.noop;this.init=function(ngModelCtrl_,config){ngModelCtrl=ngModelCtrl_;this.config=config;ngModelCtrl.$render=function(){self.render();};if($attrs.itemsPerPage){$scope.$parent.$watch($parse($attrs.itemsPerPage),function(value){self.itemsPerPage=parseInt(value,10);$scope.totalPages=self.calculateTotalPages();});}else{this.itemsPerPage=config.itemsPerPage;}
$scope.$watch('totalItems',function(){$scope.totalPages=self.calculateTotalPages();});$scope.$watch('totalPages',function(value){setNumPages($scope.$parent,value);if($scope.page>value){$scope.selectPage(value);}else{ngModelCtrl.$render();}});};this.calculateTotalPages=function(){var totalPages=this.itemsPerPage<1?1:Math.ceil($scope.totalItems/this.itemsPerPage);return Math.max(totalPages||0,1);};this.render=function(){$scope.page=parseInt(ngModelCtrl.$viewValue,10)||1;};$scope.selectPage=function(page,evt){if(evt){evt.preventDefault();}
var clickAllowed=!$scope.ngDisabled||!evt;if(clickAllowed&&$scope.page!==page&&page>0&&page<=$scope.totalPages){if(evt&&evt.target){evt.target.blur();}
ngModelCtrl.$setViewValue(page);ngModelCtrl.$render();}};$scope.getText=function(key){return $scope[key+'Text']||self.config[key+'Text'];};$scope.noPrevious=function(){return $scope.page===1;};$scope.noNext=function(){return $scope.page===$scope.totalPages;};}]).constant('uibPaginationConfig',{itemsPerPage:10,boundaryLinks:false,directionLinks:true,firstText:'First',previousText:'Previous',nextText:'Next',lastText:'Last',rotate:true}).directive('uibPagination',['$parse','uibPaginationConfig',function($parse,paginationConfig){return{restrict:'EA',scope:{totalItems:'=',firstText:'@',previousText:'@',nextText:'@',lastText:'@',ngDisabled:'='},require:['uibPagination','?ngModel'],controller:'UibPaginationController',controllerAs:'pagination',templateUrl:function(element,attrs){return attrs.templateUrl||'template/pagination/pagination.html';},replace:true,link:function(scope,element,attrs,ctrls){var paginationCtrl=ctrls[0],ngModelCtrl=ctrls[1];if(!ngModelCtrl){return;}
var maxSize=angular.isDefined(attrs.maxSize)?scope.$parent.$eval(attrs.maxSize):paginationConfig.maxSize,rotate=angular.isDefined(attrs.rotate)?scope.$parent.$eval(attrs.rotate):paginationConfig.rotate;scope.boundaryLinks=angular.isDefined(attrs.boundaryLinks)?scope.$parent.$eval(attrs.boundaryLinks):paginationConfig.boundaryLinks;scope.directionLinks=angular.isDefined(attrs.directionLinks)?scope.$parent.$eval(attrs.directionLinks):paginationConfig.directionLinks;paginationCtrl.init(ngModelCtrl,paginationConfig);if(attrs.maxSize){scope.$parent.$watch($parse(attrs.maxSize),function(value){maxSize=parseInt(value,10);paginationCtrl.render();});}
function makePage(number,text,isActive){return{number:number,text:text,active:isActive};}
function getPages(currentPage,totalPages){var pages=[];var startPage=1,endPage=totalPages;var isMaxSized=angular.isDefined(maxSize)&&maxSize<totalPages;if(isMaxSized){if(rotate){startPage=Math.max(currentPage-Math.floor(maxSize/2),1);endPage=startPage+maxSize-1;if(endPage>totalPages){endPage=totalPages;startPage=endPage-maxSize+1;}}else{startPage=((Math.ceil(currentPage/maxSize)-1)*maxSize)+1;endPage=Math.min(startPage+maxSize-1,totalPages);}}
for(var number=startPage;number<=endPage;number++){var page=makePage(number,number,number===currentPage);pages.push(page);}
if(isMaxSized&&!rotate){if(startPage>1){var previousPageSet=makePage(startPage-1,'...',false);pages.unshift(previousPageSet);}
if(endPage<totalPages){var nextPageSet=makePage(endPage+1,'...',false);pages.push(nextPageSet);}}
return pages;}
var originalRender=paginationCtrl.render;paginationCtrl.render=function(){originalRender();if(scope.page>0&&scope.page<=scope.totalPages){scope.pages=getPages(scope.page,scope.totalPages);}};}};}]).constant('uibPagerConfig',{itemsPerPage:10,previousText:'« Previous',nextText:'Next »',align:true}).directive('uibPager',['uibPagerConfig',function(pagerConfig){return{restrict:'EA',scope:{totalItems:'=',previousText:'@',nextText:'@',ngDisabled:'='},require:['uibPager','?ngModel'],controller:'UibPaginationController',controllerAs:'pagination',templateUrl:function(element,attrs){return attrs.templateUrl||'template/pagination/pager.html';},replace:true,link:function(scope,element,attrs,ctrls){var paginationCtrl=ctrls[0],ngModelCtrl=ctrls[1];if(!ngModelCtrl){return;}
scope.align=angular.isDefined(attrs.align)?scope.$parent.$eval(attrs.align):pagerConfig.align;paginationCtrl.init(ngModelCtrl,pagerConfig);}};}]);angular.module('ui.bootstrap.pagination').value('$paginationSuppressWarning',false).controller('PaginationController',['$scope','$attrs','$parse','$log','$paginationSuppressWarning',function($scope,$attrs,$parse,$log,$paginationSuppressWarning){if(!$paginationSuppressWarning){$log.warn('PaginationController is now deprecated. Use UibPaginationController instead.');}
var self=this,ngModelCtrl={$setViewValue:angular.noop},setNumPages=$attrs.numPages?$parse($attrs.numPages).assign:angular.noop;this.init=function(ngModelCtrl_,config){ngModelCtrl=ngModelCtrl_;this.config=config;ngModelCtrl.$render=function(){self.render();};if($attrs.itemsPerPage){$scope.$parent.$watch($parse($attrs.itemsPerPage),function(value){self.itemsPerPage=parseInt(value,10);$scope.totalPages=self.calculateTotalPages();});}else{this.itemsPerPage=config.itemsPerPage;}
$scope.$watch('totalItems',function(){$scope.totalPages=self.calculateTotalPages();});$scope.$watch('totalPages',function(value){setNumPages($scope.$parent,value);if($scope.page>value){$scope.selectPage(value);}else{ngModelCtrl.$render();}});};this.calculateTotalPages=function(){var totalPages=this.itemsPerPage<1?1:Math.ceil($scope.totalItems/this.itemsPerPage);return Math.max(totalPages||0,1);};this.render=function(){$scope.page=parseInt(ngModelCtrl.$viewValue,10)||1;};$scope.selectPage=function(page,evt){if(evt){evt.preventDefault();}
var clickAllowed=!$scope.ngDisabled||!evt;if(clickAllowed&&$scope.page!==page&&page>0&&page<=$scope.totalPages){if(evt&&evt.target){evt.target.blur();}
ngModelCtrl.$setViewValue(page);ngModelCtrl.$render();}};$scope.getText=function(key){return $scope[key+'Text']||self.config[key+'Text'];};$scope.noPrevious=function(){return $scope.page===1;};$scope.noNext=function(){return $scope.page===$scope.totalPages;};}]).directive('pagination',['$parse','uibPaginationConfig','$log','$paginationSuppressWarning',function($parse,paginationConfig,$log,$paginationSuppressWarning){return{restrict:'EA',scope:{totalItems:'=',firstText:'@',previousText:'@',nextText:'@',lastText:'@',ngDisabled:'='},require:['pagination','?ngModel'],controller:'PaginationController',controllerAs:'pagination',templateUrl:function(element,attrs){return attrs.templateUrl||'template/pagination/pagination.html';},replace:true,link:function(scope,element,attrs,ctrls){if(!$paginationSuppressWarning){$log.warn('pagination is now deprecated. Use uib-pagination instead.');}
var paginationCtrl=ctrls[0],ngModelCtrl=ctrls[1];if(!ngModelCtrl){return;}
var maxSize=angular.isDefined(attrs.maxSize)?scope.$parent.$eval(attrs.maxSize):paginationConfig.maxSize,rotate=angular.isDefined(attrs.rotate)?scope.$parent.$eval(attrs.rotate):paginationConfig.rotate;scope.boundaryLinks=angular.isDefined(attrs.boundaryLinks)?scope.$parent.$eval(attrs.boundaryLinks):paginationConfig.boundaryLinks;scope.directionLinks=angular.isDefined(attrs.directionLinks)?scope.$parent.$eval(attrs.directionLinks):paginationConfig.directionLinks;paginationCtrl.init(ngModelCtrl,paginationConfig);if(attrs.maxSize){scope.$parent.$watch($parse(attrs.maxSize),function(value){maxSize=parseInt(value,10);paginationCtrl.render();});}
function makePage(number,text,isActive){return{number:number,text:text,active:isActive};}
function getPages(currentPage,totalPages){var pages=[];var startPage=1,endPage=totalPages;var isMaxSized=angular.isDefined(maxSize)&&maxSize<totalPages;if(isMaxSized){if(rotate){startPage=Math.max(currentPage-Math.floor(maxSize/2),1);endPage=startPage+maxSize-1;if(endPage>totalPages){endPage=totalPages;startPage=endPage-maxSize+1;}}else{startPage=((Math.ceil(currentPage/maxSize)-1)*maxSize)+1;endPage=Math.min(startPage+maxSize-1,totalPages);}}
for(var number=startPage;number<=endPage;number++){var page=makePage(number,number,number===currentPage);pages.push(page);}
if(isMaxSized&&!rotate){if(startPage>1){var previousPageSet=makePage(startPage-1,'...',false);pages.unshift(previousPageSet);}
if(endPage<totalPages){var nextPageSet=makePage(endPage+1,'...',false);pages.push(nextPageSet);}}
return pages;}
var originalRender=paginationCtrl.render;paginationCtrl.render=function(){originalRender();if(scope.page>0&&scope.page<=scope.totalPages){scope.pages=getPages(scope.page,scope.totalPages);}};}};}]).directive('pager',['uibPagerConfig','$log','$paginationSuppressWarning',function(pagerConfig,$log,$paginationSuppressWarning){return{restrict:'EA',scope:{totalItems:'=',previousText:'@',nextText:'@',ngDisabled:'='},require:['pager','?ngModel'],controller:'PaginationController',controllerAs:'pagination',templateUrl:function(element,attrs){return attrs.templateUrl||'template/pagination/pager.html';},replace:true,link:function(scope,element,attrs,ctrls){if(!$paginationSuppressWarning){$log.warn('pager is now deprecated. Use uib-pager instead.');}
var paginationCtrl=ctrls[0],ngModelCtrl=ctrls[1];if(!ngModelCtrl){return;}
scope.align=angular.isDefined(attrs.align)?scope.$parent.$eval(attrs.align):pagerConfig.align;paginationCtrl.init(ngModelCtrl,pagerConfig);}};}]);angular.module('ui.bootstrap.tooltip',['ui.bootstrap.position','ui.bootstrap.stackedMap']).provider('$uibTooltip',function(){var defaultOptions={placement:'top',animation:true,popupDelay:0,popupCloseDelay:0,useContentExp:false};var triggerMap={'mouseenter':'mouseleave','click':'click','focus':'blur','none':''};var globalOptions={};this.options=function(value){angular.extend(globalOptions,value);};this.setTriggers=function setTriggers(triggers){angular.extend(triggerMap,triggers);};function snake_case(name){var regexp=/[A-Z]/g;var separator='-';return name.replace(regexp,function(letter,pos){return(pos?separator:'')+letter.toLowerCase();});}
this.$get=['$window','$compile','$timeout','$document','$uibPosition','$interpolate','$rootScope','$parse','$$stackedMap',function($window,$compile,$timeout,$document,$position,$interpolate,$rootScope,$parse,$$stackedMap){var openedTooltips=$$stackedMap.createNew();$document.on('keypress',function(e){if(e.which===27){var last=openedTooltips.top();if(last){last.value.close();openedTooltips.removeTop();last=null;}}});return function $tooltip(ttType,prefix,defaultTriggerShow,options){options=angular.extend({},defaultOptions,globalOptions,options);function getTriggers(trigger){var show=(trigger||options.trigger||defaultTriggerShow).split(' ');var hide=show.map(function(trigger){return triggerMap[trigger]||trigger;});return{show:show,hide:hide};}
var directiveName=snake_case(ttType);var startSym=$interpolate.startSymbol();var endSym=$interpolate.endSymbol();var template='<div '+directiveName+'-popup '+'title="'+startSym+'title'+endSym+'" '+
(options.useContentExp?'content-exp="contentExp()" ':'content="'+startSym+'content'+endSym+'" ')+'placement="'+startSym+'placement'+endSym+'" '+'popup-class="'+startSym+'popupClass'+endSym+'" '+'animation="animation" '+'is-open="isOpen"'+'origin-scope="origScope" '+'style="visibility: hidden; display: block; top: -9999px; left: -9999px;"'+'>'+'</div>';return{compile:function(tElem,tAttrs){var tooltipLinker=$compile(template);return function link(scope,element,attrs,tooltipCtrl){var tooltip;var tooltipLinkedScope;var transitionTimeout;var showTimeout;var hideTimeout;var positionTimeout;var appendToBody=angular.isDefined(options.appendToBody)?options.appendToBody:false;var triggers=getTriggers(undefined);var hasEnableExp=angular.isDefined(attrs[prefix+'Enable']);var ttScope=scope.$new(true);var repositionScheduled=false;var isOpenParse=angular.isDefined(attrs[prefix+'IsOpen'])?$parse(attrs[prefix+'IsOpen']):false;var contentParse=options.useContentExp?$parse(attrs[ttType]):false;var observers=[];var positionTooltip=function(){if(!tooltip||!tooltip.html()){return;}
if(!positionTimeout){positionTimeout=$timeout(function(){tooltip.css({top:0,left:0});var ttCss=$position.positionElements(element,tooltip,ttScope.placement,appendToBody);ttCss.top+='px';ttCss.left+='px';ttCss.visibility='visible';tooltip.css(ttCss);positionTimeout=null;},0,false);}};ttScope.origScope=scope;ttScope.isOpen=false;openedTooltips.add(ttScope,{close:hide});function toggleTooltipBind(){if(!ttScope.isOpen){showTooltipBind();}else{hideTooltipBind();}}
function showTooltipBind(){if(hasEnableExp&&!scope.$eval(attrs[prefix+'Enable'])){return;}
cancelHide();prepareTooltip();if(ttScope.popupDelay){if(!showTimeout){showTimeout=$timeout(show,ttScope.popupDelay,false);}}else{show();}}
function hideTooltipBind(){cancelShow();if(ttScope.popupCloseDelay){if(!hideTimeout){hideTimeout=$timeout(hide,ttScope.popupCloseDelay,false);}}else{hide();}}
function show(){cancelShow();cancelHide();if(!ttScope.content){return angular.noop;}
createTooltip();ttScope.$evalAsync(function(){ttScope.isOpen=true;assignIsOpen(true);positionTooltip();});}
function cancelShow(){if(showTimeout){$timeout.cancel(showTimeout);showTimeout=null;}
if(positionTimeout){$timeout.cancel(positionTimeout);positionTimeout=null;}}
function hide(){cancelShow();cancelHide();if(!ttScope){return;}
ttScope.$evalAsync(function(){ttScope.isOpen=false;assignIsOpen(false);if(ttScope.animation){if(!transitionTimeout){transitionTimeout=$timeout(removeTooltip,150,false);}}else{removeTooltip();}});}
function cancelHide(){if(hideTimeout){$timeout.cancel(hideTimeout);hideTimeout=null;}
if(transitionTimeout){$timeout.cancel(transitionTimeout);transitionTimeout=null;}}
function createTooltip(){if(tooltip){return;}
tooltipLinkedScope=ttScope.$new();tooltip=tooltipLinker(tooltipLinkedScope,function(tooltip){if(appendToBody){$document.find('body').append(tooltip);}else{element.after(tooltip);}});prepObservers();}
function removeTooltip(){unregisterObservers();transitionTimeout=null;if(tooltip){tooltip.remove();tooltip=null;}
if(tooltipLinkedScope){tooltipLinkedScope.$destroy();tooltipLinkedScope=null;}}
function prepareTooltip(){ttScope.title=attrs[prefix+'Title'];if(contentParse){ttScope.content=contentParse(scope);}else{ttScope.content=attrs[ttType];}
ttScope.popupClass=attrs[prefix+'Class'];ttScope.placement=angular.isDefined(attrs[prefix+'Placement'])?attrs[prefix+'Placement']:options.placement;var delay=parseInt(attrs[prefix+'PopupDelay'],10);var closeDelay=parseInt(attrs[prefix+'PopupCloseDelay'],10);ttScope.popupDelay=!isNaN(delay)?delay:options.popupDelay;ttScope.popupCloseDelay=!isNaN(closeDelay)?closeDelay:options.popupCloseDelay;}
function assignIsOpen(isOpen){if(isOpenParse&&angular.isFunction(isOpenParse.assign)){isOpenParse.assign(scope,isOpen);}}
ttScope.contentExp=function(){return ttScope.content;};attrs.$observe('disabled',function(val){if(val){cancelShow();}
if(val&&ttScope.isOpen){hide();}});if(isOpenParse){scope.$watch(isOpenParse,function(val){if(ttScope&&!val===ttScope.isOpen){toggleTooltipBind();}});}
function prepObservers(){observers.length=0;if(contentParse){observers.push(scope.$watch(contentParse,function(val){ttScope.content=val;if(!val&&ttScope.isOpen){hide();}}));observers.push(tooltipLinkedScope.$watch(function(){if(!repositionScheduled){repositionScheduled=true;tooltipLinkedScope.$$postDigest(function(){repositionScheduled=false;if(ttScope&&ttScope.isOpen){positionTooltip();}});}}));}else{observers.push(attrs.$observe(ttType,function(val){ttScope.content=val;if(!val&&ttScope.isOpen){hide();}else{positionTooltip();}}));}
observers.push(attrs.$observe(prefix+'Title',function(val){ttScope.title=val;if(ttScope.isOpen){positionTooltip();}}));observers.push(attrs.$observe(prefix+'Placement',function(val){ttScope.placement=val?val:options.placement;if(ttScope.isOpen){positionTooltip();}}));}
function unregisterObservers(){if(observers.length){angular.forEach(observers,function(observer){observer();});observers.length=0;}}
var unregisterTriggers=function(){triggers.show.forEach(function(trigger){element.unbind(trigger,showTooltipBind);});triggers.hide.forEach(function(trigger){trigger.split(' ').forEach(function(hideTrigger){element[0].removeEventListener(hideTrigger,hideTooltipBind);});});};function prepTriggers(){var val=attrs[prefix+'Trigger'];unregisterTriggers();triggers=getTriggers(val);if(triggers.show!=='none'){triggers.show.forEach(function(trigger,idx){if(trigger===triggers.hide[idx]){element[0].addEventListener(trigger,toggleTooltipBind);}else if(trigger){element[0].addEventListener(trigger,showTooltipBind);triggers.hide[idx].split(' ').forEach(function(trigger){element[0].addEventListener(trigger,hideTooltipBind);});}
element.on('keypress',function(e){if(e.which===27){hideTooltipBind();}});});}}
prepTriggers();var animation=scope.$eval(attrs[prefix+'Animation']);ttScope.animation=angular.isDefined(animation)?!!animation:options.animation;var appendToBodyVal=scope.$eval(attrs[prefix+'AppendToBody']);appendToBody=angular.isDefined(appendToBodyVal)?appendToBodyVal:appendToBody;if(appendToBody){scope.$on('$locationChangeSuccess',function closeTooltipOnLocationChangeSuccess(){if(ttScope.isOpen){hide();}});}
scope.$on('$destroy',function onDestroyTooltip(){cancelShow();cancelHide();unregisterTriggers();removeTooltip();openedTooltips.remove(ttScope);ttScope=null;});};}};};}];}).directive('uibTooltipTemplateTransclude',['$animate','$sce','$compile','$templateRequest',function($animate,$sce,$compile,$templateRequest){return{link:function(scope,elem,attrs){var origScope=scope.$eval(attrs.tooltipTemplateTranscludeScope);var changeCounter=0,currentScope,previousElement,currentElement;var cleanupLastIncludeContent=function(){if(previousElement){previousElement.remove();previousElement=null;}
if(currentScope){currentScope.$destroy();currentScope=null;}
if(currentElement){$animate.leave(currentElement).then(function(){previousElement=null;});previousElement=currentElement;currentElement=null;}};scope.$watch($sce.parseAsResourceUrl(attrs.uibTooltipTemplateTransclude),function(src){var thisChangeId=++changeCounter;if(src){$templateRequest(src,true).then(function(response){if(thisChangeId!==changeCounter){return;}
var newScope=origScope.$new();var template=response;var clone=$compile(template)(newScope,function(clone){cleanupLastIncludeContent();$animate.enter(clone,elem);});currentScope=newScope;currentElement=clone;currentScope.$emit('$includeContentLoaded',src);},function(){if(thisChangeId===changeCounter){cleanupLastIncludeContent();scope.$emit('$includeContentError',src);}});scope.$emit('$includeContentRequested',src);}else{cleanupLastIncludeContent();}});scope.$on('$destroy',cleanupLastIncludeContent);}};}]).directive('uibTooltipClasses',function(){return{restrict:'A',link:function(scope,element,attrs){if(scope.placement){element.addClass(scope.placement);}
if(scope.popupClass){element.addClass(scope.popupClass);}
if(scope.animation()){element.addClass(attrs.tooltipAnimationClass);}}};}).directive('uibTooltipPopup',function(){return{replace:true,scope:{content:'@',placement:'@',popupClass:'@',animation:'&',isOpen:'&'},templateUrl:'template/tooltip/tooltip-popup.html',link:function(scope,element){element.addClass('tooltip');}};}).directive('uibTooltip',['$uibTooltip',function($uibTooltip){return $uibTooltip('uibTooltip','tooltip','mouseenter');}]).directive('uibTooltipTemplatePopup',function(){return{replace:true,scope:{contentExp:'&',placement:'@',popupClass:'@',animation:'&',isOpen:'&',originScope:'&'},templateUrl:'template/tooltip/tooltip-template-popup.html',link:function(scope,element){element.addClass('tooltip');}};}).directive('uibTooltipTemplate',['$uibTooltip',function($uibTooltip){return $uibTooltip('uibTooltipTemplate','tooltip','mouseenter',{useContentExp:true});}]).directive('uibTooltipHtmlPopup',function(){return{replace:true,scope:{contentExp:'&',placement:'@',popupClass:'@',animation:'&',isOpen:'&'},templateUrl:'template/tooltip/tooltip-html-popup.html',link:function(scope,element){element.addClass('tooltip');}};}).directive('uibTooltipHtml',['$uibTooltip',function($uibTooltip){return $uibTooltip('uibTooltipHtml','tooltip','mouseenter',{useContentExp:true});}]);angular.module('ui.bootstrap.tooltip').value('$tooltipSuppressWarning',false).provider('$tooltip',['$uibTooltipProvider',function($uibTooltipProvider){angular.extend(this,$uibTooltipProvider);this.$get=['$log','$tooltipSuppressWarning','$injector',function($log,$tooltipSuppressWarning,$injector){if(!$tooltipSuppressWarning){$log.warn('$tooltip is now deprecated. Use $uibTooltip instead.');}
return $injector.invoke($uibTooltipProvider.$get);}];}]).directive('tooltipTemplateTransclude',['$animate','$sce','$compile','$templateRequest','$log','$tooltipSuppressWarning',function($animate,$sce,$compile,$templateRequest,$log,$tooltipSuppressWarning){return{link:function(scope,elem,attrs){if(!$tooltipSuppressWarning){$log.warn('tooltip-template-transclude is now deprecated. Use uib-tooltip-template-transclude instead.');}
var origScope=scope.$eval(attrs.tooltipTemplateTranscludeScope);var changeCounter=0,currentScope,previousElement,currentElement;var cleanupLastIncludeContent=function(){if(previousElement){previousElement.remove();previousElement=null;}
if(currentScope){currentScope.$destroy();currentScope=null;}
if(currentElement){$animate.leave(currentElement).then(function(){previousElement=null;});previousElement=currentElement;currentElement=null;}};scope.$watch($sce.parseAsResourceUrl(attrs.tooltipTemplateTransclude),function(src){var thisChangeId=++changeCounter;if(src){$templateRequest(src,true).then(function(response){if(thisChangeId!==changeCounter){return;}
var newScope=origScope.$new();var template=response;var clone=$compile(template)(newScope,function(clone){cleanupLastIncludeContent();$animate.enter(clone,elem);});currentScope=newScope;currentElement=clone;currentScope.$emit('$includeContentLoaded',src);},function(){if(thisChangeId===changeCounter){cleanupLastIncludeContent();scope.$emit('$includeContentError',src);}});scope.$emit('$includeContentRequested',src);}else{cleanupLastIncludeContent();}});scope.$on('$destroy',cleanupLastIncludeContent);}};}]).directive('tooltipClasses',['$log','$tooltipSuppressWarning',function($log,$tooltipSuppressWarning){return{restrict:'A',link:function(scope,element,attrs){if(!$tooltipSuppressWarning){$log.warn('tooltip-classes is now deprecated. Use uib-tooltip-classes instead.');}
if(scope.placement){element.addClass(scope.placement);}
if(scope.popupClass){element.addClass(scope.popupClass);}
if(scope.animation()){element.addClass(attrs.tooltipAnimationClass);}}};}]).directive('tooltipPopup',['$log','$tooltipSuppressWarning',function($log,$tooltipSuppressWarning){return{replace:true,scope:{content:'@',placement:'@',popupClass:'@',animation:'&',isOpen:'&'},templateUrl:'template/tooltip/tooltip-popup.html',link:function(scope,element){if(!$tooltipSuppressWarning){$log.warn('tooltip-popup is now deprecated. Use uib-tooltip-popup instead.');}
element.addClass('tooltip');}};}]).directive('tooltip',['$tooltip',function($tooltip){return $tooltip('tooltip','tooltip','mouseenter');}]).directive('tooltipTemplatePopup',['$log','$tooltipSuppressWarning',function($log,$tooltipSuppressWarning){return{replace:true,scope:{contentExp:'&',placement:'@',popupClass:'@',animation:'&',isOpen:'&',originScope:'&'},templateUrl:'template/tooltip/tooltip-template-popup.html',link:function(scope,element){if(!$tooltipSuppressWarning){$log.warn('tooltip-template-popup is now deprecated. Use uib-tooltip-template-popup instead.');}
element.addClass('tooltip');}};}]).directive('tooltipTemplate',['$tooltip',function($tooltip){return $tooltip('tooltipTemplate','tooltip','mouseenter',{useContentExp:true});}]).directive('tooltipHtmlPopup',['$log','$tooltipSuppressWarning',function($log,$tooltipSuppressWarning){return{replace:true,scope:{contentExp:'&',placement:'@',popupClass:'@',animation:'&',isOpen:'&'},templateUrl:'template/tooltip/tooltip-html-popup.html',link:function(scope,element){if(!$tooltipSuppressWarning){$log.warn('tooltip-html-popup is now deprecated. Use uib-tooltip-html-popup instead.');}
element.addClass('tooltip');}};}]).directive('tooltipHtml',['$tooltip',function($tooltip){return $tooltip('tooltipHtml','tooltip','mouseenter',{useContentExp:true});}]);angular.module('ui.bootstrap.popover',['ui.bootstrap.tooltip']).directive('uibPopoverTemplatePopup',function(){return{replace:true,scope:{title:'@',contentExp:'&',placement:'@',popupClass:'@',animation:'&',isOpen:'&',originScope:'&'},templateUrl:'template/popover/popover-template.html',link:function(scope,element){element.addClass('popover');}};}).directive('uibPopoverTemplate',['$uibTooltip',function($uibTooltip){return $uibTooltip('uibPopoverTemplate','popover','click',{useContentExp:true});}]).directive('uibPopoverHtmlPopup',function(){return{replace:true,scope:{contentExp:'&',title:'@',placement:'@',popupClass:'@',animation:'&',isOpen:'&'},templateUrl:'template/popover/popover-html.html',link:function(scope,element){element.addClass('popover');}};}).directive('uibPopoverHtml',['$uibTooltip',function($uibTooltip){return $uibTooltip('uibPopoverHtml','popover','click',{useContentExp:true});}]).directive('uibPopoverPopup',function(){return{replace:true,scope:{title:'@',content:'@',placement:'@',popupClass:'@',animation:'&',isOpen:'&'},templateUrl:'template/popover/popover.html',link:function(scope,element){element.addClass('popover');}};}).directive('uibPopover',['$uibTooltip',function($uibTooltip){return $uibTooltip('uibPopover','popover','click');}]);angular.module('ui.bootstrap.popover').value('$popoverSuppressWarning',false).directive('popoverTemplatePopup',['$log','$popoverSuppressWarning',function($log,$popoverSuppressWarning){return{replace:true,scope:{title:'@',contentExp:'&',placement:'@',popupClass:'@',animation:'&',isOpen:'&',originScope:'&'},templateUrl:'template/popover/popover-template.html',link:function(scope,element){if(!$popoverSuppressWarning){$log.warn('popover-template-popup is now deprecated. Use uib-popover-template-popup instead.');}
element.addClass('popover');}};}]).directive('popoverTemplate',['$tooltip',function($tooltip){return $tooltip('popoverTemplate','popover','click',{useContentExp:true});}]).directive('popoverHtmlPopup',['$log','$popoverSuppressWarning',function($log,$popoverSuppressWarning){return{replace:true,scope:{contentExp:'&',title:'@',placement:'@',popupClass:'@',animation:'&',isOpen:'&'},templateUrl:'template/popover/popover-html.html',link:function(scope,element){if(!$popoverSuppressWarning){$log.warn('popover-html-popup is now deprecated. Use uib-popover-html-popup instead.');}
element.addClass('popover');}};}]).directive('popoverHtml',['$tooltip',function($tooltip){return $tooltip('popoverHtml','popover','click',{useContentExp:true});}]).directive('popoverPopup',['$log','$popoverSuppressWarning',function($log,$popoverSuppressWarning){return{replace:true,scope:{title:'@',content:'@',placement:'@',popupClass:'@',animation:'&',isOpen:'&'},templateUrl:'template/popover/popover.html',link:function(scope,element){if(!$popoverSuppressWarning){$log.warn('popover-popup is now deprecated. Use uib-popover-popup instead.');}
element.addClass('popover');}};}]).directive('popover',['$tooltip',function($tooltip){return $tooltip('popover','popover','click');}]);angular.module('ui.bootstrap.progressbar',[]).constant('uibProgressConfig',{animate:true,max:100}).controller('UibProgressController',['$scope','$attrs','uibProgressConfig',function($scope,$attrs,progressConfig){var self=this,animate=angular.isDefined($attrs.animate)?$scope.$parent.$eval($attrs.animate):progressConfig.animate;this.bars=[];$scope.max=angular.isDefined($scope.max)?$scope.max:progressConfig.max;this.addBar=function(bar,element,attrs){if(!animate){element.css({'transition':'none'});}
this.bars.push(bar);bar.max=$scope.max;bar.title=attrs&&angular.isDefined(attrs.title)?attrs.title:'progressbar';bar.$watch('value',function(value){bar.recalculatePercentage();});bar.recalculatePercentage=function(){var totalPercentage=self.bars.reduce(function(total,bar){bar.percent=+(100*bar.value/bar.max).toFixed(2);return total+bar.percent;},0);if(totalPercentage>100){bar.percent-=totalPercentage-100;}};bar.$on('$destroy',function(){element=null;self.removeBar(bar);});};this.removeBar=function(bar){this.bars.splice(this.bars.indexOf(bar),1);this.bars.forEach(function(bar){bar.recalculatePercentage();});};$scope.$watch('max',function(max){self.bars.forEach(function(bar){bar.max=$scope.max;bar.recalculatePercentage();});});}]).directive('uibProgress',function(){return{replace:true,transclude:true,controller:'UibProgressController',require:'uibProgress',scope:{max:'=?'},templateUrl:'template/progressbar/progress.html'};}).directive('uibBar',function(){return{replace:true,transclude:true,require:'^uibProgress',scope:{value:'=',type:'@'},templateUrl:'template/progressbar/bar.html',link:function(scope,element,attrs,progressCtrl){progressCtrl.addBar(scope,element,attrs);}};}).directive('uibProgressbar',function(){return{replace:true,transclude:true,controller:'UibProgressController',scope:{value:'=',max:'=?',type:'@'},templateUrl:'template/progressbar/progressbar.html',link:function(scope,element,attrs,progressCtrl){progressCtrl.addBar(scope,angular.element(element.children()[0]),{title:attrs.title});}};});angular.module('ui.bootstrap.progressbar').value('$progressSuppressWarning',false).controller('ProgressController',['$scope','$attrs','uibProgressConfig','$log','$progressSuppressWarning',function($scope,$attrs,progressConfig,$log,$progressSuppressWarning){if(!$progressSuppressWarning){$log.warn('ProgressController is now deprecated. Use UibProgressController instead.');}
var self=this,animate=angular.isDefined($attrs.animate)?$scope.$parent.$eval($attrs.animate):progressConfig.animate;this.bars=[];$scope.max=angular.isDefined($scope.max)?$scope.max:progressConfig.max;this.addBar=function(bar,element,attrs){if(!animate){element.css({'transition':'none'});}
this.bars.push(bar);bar.max=$scope.max;bar.title=attrs&&angular.isDefined(attrs.title)?attrs.title:'progressbar';bar.$watch('value',function(value){bar.recalculatePercentage();});bar.recalculatePercentage=function(){bar.percent=+(100*bar.value/bar.max).toFixed(2);var totalPercentage=self.bars.reduce(function(total,bar){return total+bar.percent;},0);if(totalPercentage>100){bar.percent-=totalPercentage-100;}};bar.$on('$destroy',function(){element=null;self.removeBar(bar);});};this.removeBar=function(bar){this.bars.splice(this.bars.indexOf(bar),1);};$scope.$watch('max',function(max){self.bars.forEach(function(bar){bar.max=$scope.max;bar.recalculatePercentage();});});}]).directive('progress',['$log','$progressSuppressWarning',function($log,$progressSuppressWarning){return{replace:true,transclude:true,controller:'ProgressController',require:'progress',scope:{max:'=?',title:'@?'},templateUrl:'template/progressbar/progress.html',link:function(){if(!$progressSuppressWarning){$log.warn('progress is now deprecated. Use uib-progress instead.');}}};}]).directive('bar',['$log','$progressSuppressWarning',function($log,$progressSuppressWarning){return{replace:true,transclude:true,require:'^progress',scope:{value:'=',type:'@'},templateUrl:'template/progressbar/bar.html',link:function(scope,element,attrs,progressCtrl){if(!$progressSuppressWarning){$log.warn('bar is now deprecated. Use uib-bar instead.');}
progressCtrl.addBar(scope,element);}};}]).directive('progressbar',['$log','$progressSuppressWarning',function($log,$progressSuppressWarning){return{replace:true,transclude:true,controller:'ProgressController',scope:{value:'=',max:'=?',type:'@'},templateUrl:'template/progressbar/progressbar.html',link:function(scope,element,attrs,progressCtrl){if(!$progressSuppressWarning){$log.warn('progressbar is now deprecated. Use uib-progressbar instead.');}
progressCtrl.addBar(scope,angular.element(element.children()[0]),{title:attrs.title});}};}]);angular.module('ui.bootstrap.rating',[]).constant('uibRatingConfig',{max:5,stateOn:null,stateOff:null,titles:['one','two','three','four','five']}).controller('UibRatingController',['$scope','$attrs','uibRatingConfig',function($scope,$attrs,ratingConfig){var ngModelCtrl={$setViewValue:angular.noop};this.init=function(ngModelCtrl_){ngModelCtrl=ngModelCtrl_;ngModelCtrl.$render=this.render;ngModelCtrl.$formatters.push(function(value){if(angular.isNumber(value)&&value<<0!==value){value=Math.round(value);}
return value;});this.stateOn=angular.isDefined($attrs.stateOn)?$scope.$parent.$eval($attrs.stateOn):ratingConfig.stateOn;this.stateOff=angular.isDefined($attrs.stateOff)?$scope.$parent.$eval($attrs.stateOff):ratingConfig.stateOff;var tmpTitles=angular.isDefined($attrs.titles)?$scope.$parent.$eval($attrs.titles):ratingConfig.titles;this.titles=angular.isArray(tmpTitles)&&tmpTitles.length>0?tmpTitles:ratingConfig.titles;var ratingStates=angular.isDefined($attrs.ratingStates)?$scope.$parent.$eval($attrs.ratingStates):new Array(angular.isDefined($attrs.max)?$scope.$parent.$eval($attrs.max):ratingConfig.max);$scope.range=this.buildTemplateObjects(ratingStates);};this.buildTemplateObjects=function(states){for(var i=0,n=states.length;i<n;i++){states[i]=angular.extend({index:i},{stateOn:this.stateOn,stateOff:this.stateOff,title:this.getTitle(i)},states[i]);}
return states;};this.getTitle=function(index){if(index>=this.titles.length){return index+1;}else{return this.titles[index];}};$scope.rate=function(value){if(!$scope.readonly&&value>=0&&value<=$scope.range.length){ngModelCtrl.$setViewValue(ngModelCtrl.$viewValue===value?0:value);ngModelCtrl.$render();}};$scope.enter=function(value){if(!$scope.readonly){$scope.value=value;}
$scope.onHover({value:value});};$scope.reset=function(){$scope.value=ngModelCtrl.$viewValue;$scope.onLeave();};$scope.onKeydown=function(evt){if(/(37|38|39|40)/.test(evt.which)){evt.preventDefault();evt.stopPropagation();$scope.rate($scope.value+(evt.which===38||evt.which===39?1:-1));}};this.render=function(){$scope.value=ngModelCtrl.$viewValue;};}]).directive('uibRating',function(){return{require:['uibRating','ngModel'],scope:{readonly:'=?',onHover:'&',onLeave:'&'},controller:'UibRatingController',templateUrl:'template/rating/rating.html',replace:true,link:function(scope,element,attrs,ctrls){var ratingCtrl=ctrls[0],ngModelCtrl=ctrls[1];ratingCtrl.init(ngModelCtrl);}};});angular.module('ui.bootstrap.rating').value('$ratingSuppressWarning',false).controller('RatingController',['$scope','$attrs','$controller','$log','$ratingSuppressWarning',function($scope,$attrs,$controller,$log,$ratingSuppressWarning){if(!$ratingSuppressWarning){$log.warn('RatingController is now deprecated. Use UibRatingController instead.');}
angular.extend(this,$controller('UibRatingController',{$scope:$scope,$attrs:$attrs}));}]).directive('rating',['$log','$ratingSuppressWarning',function($log,$ratingSuppressWarning){return{require:['rating','ngModel'],scope:{readonly:'=?',onHover:'&',onLeave:'&'},controller:'RatingController',templateUrl:'template/rating/rating.html',replace:true,link:function(scope,element,attrs,ctrls){if(!$ratingSuppressWarning){$log.warn('rating is now deprecated. Use uib-rating instead.');}
var ratingCtrl=ctrls[0],ngModelCtrl=ctrls[1];ratingCtrl.init(ngModelCtrl);}};}]);angular.module('ui.bootstrap.tabs',[]).controller('UibTabsetController',['$scope',function($scope){var ctrl=this,tabs=ctrl.tabs=$scope.tabs=[];ctrl.select=function(selectedTab){angular.forEach(tabs,function(tab){if(tab.active&&tab!==selectedTab){tab.active=false;tab.onDeselect();selectedTab.selectCalled=false;}});selectedTab.active=true;if(!selectedTab.selectCalled){selectedTab.onSelect();selectedTab.selectCalled=true;}};ctrl.addTab=function addTab(tab){tabs.push(tab);if(tabs.length===1&&tab.active!==false){tab.active=true;}else if(tab.active){ctrl.select(tab);}else{tab.active=false;}};ctrl.removeTab=function removeTab(tab){var index=tabs.indexOf(tab);if(tab.active&&tabs.length>1&&!destroyed){var newActiveIndex=index==tabs.length-1?index-1:index+1;ctrl.select(tabs[newActiveIndex]);}
tabs.splice(index,1);};var destroyed;$scope.$on('$destroy',function(){destroyed=true;});}]).directive('uibTabset',function(){return{restrict:'EA',transclude:true,replace:true,scope:{type:'@'},controller:'UibTabsetController',templateUrl:'template/tabs/tabset.html',link:function(scope,element,attrs){scope.vertical=angular.isDefined(attrs.vertical)?scope.$parent.$eval(attrs.vertical):false;scope.justified=angular.isDefined(attrs.justified)?scope.$parent.$eval(attrs.justified):false;}};}).directive('uibTab',['$parse',function($parse){return{require:'^uibTabset',restrict:'EA',replace:true,templateUrl:'template/tabs/tab.html',transclude:true,scope:{active:'=?',heading:'@',onSelect:'&select',onDeselect:'&deselect'},controller:function(){},link:function(scope,elm,attrs,tabsetCtrl,transclude){scope.$watch('active',function(active){if(active){tabsetCtrl.select(scope);}});scope.disabled=false;if(attrs.disable){scope.$parent.$watch($parse(attrs.disable),function(value){scope.disabled=!!value;});}
scope.select=function(){if(!scope.disabled){scope.active=true;}};tabsetCtrl.addTab(scope);scope.$on('$destroy',function(){tabsetCtrl.removeTab(scope);});scope.$transcludeFn=transclude;}};}]).directive('uibTabHeadingTransclude',function(){return{restrict:'A',require:['?^uibTab','?^tab'],link:function(scope,elm){scope.$watch('headingElement',function updateHeadingElement(heading){if(heading){elm.html('');elm.append(heading);}});}};}).directive('uibTabContentTransclude',function(){return{restrict:'A',require:['?^uibTabset','?^tabset'],link:function(scope,elm,attrs){var tab=scope.$eval(attrs.uibTabContentTransclude);tab.$transcludeFn(tab.$parent,function(contents){angular.forEach(contents,function(node){if(isTabHeading(node)){tab.headingElement=node;}else{elm.append(node);}});});}};function isTabHeading(node){return node.tagName&&(node.hasAttribute('tab-heading')||node.hasAttribute('data-tab-heading')||node.hasAttribute('x-tab-heading')||node.hasAttribute('uib-tab-heading')||node.hasAttribute('data-uib-tab-heading')||node.hasAttribute('x-uib-tab-heading')||node.tagName.toLowerCase()==='tab-heading'||node.tagName.toLowerCase()==='data-tab-heading'||node.tagName.toLowerCase()==='x-tab-heading'||node.tagName.toLowerCase()==='uib-tab-heading'||node.tagName.toLowerCase()==='data-uib-tab-heading'||node.tagName.toLowerCase()==='x-uib-tab-heading');}});angular.module('ui.bootstrap.tabs').value('$tabsSuppressWarning',false).controller('TabsetController',['$scope','$controller','$log','$tabsSuppressWarning',function($scope,$controller,$log,$tabsSuppressWarning){if(!$tabsSuppressWarning){$log.warn('TabsetController is now deprecated. Use UibTabsetController instead.');}
angular.extend(this,$controller('UibTabsetController',{$scope:$scope}));}]).directive('tabset',['$log','$tabsSuppressWarning',function($log,$tabsSuppressWarning){return{restrict:'EA',transclude:true,replace:true,scope:{type:'@'},controller:'TabsetController',templateUrl:'template/tabs/tabset.html',link:function(scope,element,attrs){if(!$tabsSuppressWarning){$log.warn('tabset is now deprecated. Use uib-tabset instead.');}
scope.vertical=angular.isDefined(attrs.vertical)?scope.$parent.$eval(attrs.vertical):false;scope.justified=angular.isDefined(attrs.justified)?scope.$parent.$eval(attrs.justified):false;}};}]).directive('tab',['$parse','$log','$tabsSuppressWarning',function($parse,$log,$tabsSuppressWarning){return{require:'^tabset',restrict:'EA',replace:true,templateUrl:'template/tabs/tab.html',transclude:true,scope:{active:'=?',heading:'@',onSelect:'&select',onDeselect:'&deselect'},controller:function(){},link:function(scope,elm,attrs,tabsetCtrl,transclude){if(!$tabsSuppressWarning){$log.warn('tab is now deprecated. Use uib-tab instead.');}
scope.$watch('active',function(active){if(active){tabsetCtrl.select(scope);}});scope.disabled=false;if(attrs.disable){scope.$parent.$watch($parse(attrs.disable),function(value){scope.disabled=!!value;});}
scope.select=function(){if(!scope.disabled){scope.active=true;}};tabsetCtrl.addTab(scope);scope.$on('$destroy',function(){tabsetCtrl.removeTab(scope);});scope.$transcludeFn=transclude;}};}]).directive('tabHeadingTransclude',['$log','$tabsSuppressWarning',function($log,$tabsSuppressWarning){return{restrict:'A',require:'^tab',link:function(scope,elm){if(!$tabsSuppressWarning){$log.warn('tab-heading-transclude is now deprecated. Use uib-tab-heading-transclude instead.');}
scope.$watch('headingElement',function updateHeadingElement(heading){if(heading){elm.html('');elm.append(heading);}});}};}]).directive('tabContentTransclude',['$log','$tabsSuppressWarning',function($log,$tabsSuppressWarning){return{restrict:'A',require:'^tabset',link:function(scope,elm,attrs){if(!$tabsSuppressWarning){$log.warn('tab-content-transclude is now deprecated. Use uib-tab-content-transclude instead.');}
var tab=scope.$eval(attrs.tabContentTransclude);tab.$transcludeFn(tab.$parent,function(contents){angular.forEach(contents,function(node){if(isTabHeading(node)){tab.headingElement=node;}
else{elm.append(node);}});});}};function isTabHeading(node){return node.tagName&&(node.hasAttribute('tab-heading')||node.hasAttribute('data-tab-heading')||node.hasAttribute('x-tab-heading')||node.tagName.toLowerCase()==='tab-heading'||node.tagName.toLowerCase()==='data-tab-heading'||node.tagName.toLowerCase()==='x-tab-heading');}}]);angular.module('ui.bootstrap.timepicker',[]).constant('uibTimepickerConfig',{hourStep:1,minuteStep:1,showMeridian:true,meridians:null,readonlyInput:false,mousewheel:true,arrowkeys:true,showSpinners:true}).controller('UibTimepickerController',['$scope','$element','$attrs','$parse','$log','$locale','uibTimepickerConfig',function($scope,$element,$attrs,$parse,$log,$locale,timepickerConfig){var selected=new Date(),ngModelCtrl={$setViewValue:angular.noop},meridians=angular.isDefined($attrs.meridians)?$scope.$parent.$eval($attrs.meridians):timepickerConfig.meridians||$locale.DATETIME_FORMATS.AMPMS;$scope.tabindex=angular.isDefined($attrs.tabindex)?$attrs.tabindex:0;$element.removeAttr('tabindex');this.init=function(ngModelCtrl_,inputs){ngModelCtrl=ngModelCtrl_;ngModelCtrl.$render=this.render;ngModelCtrl.$formatters.unshift(function(modelValue){return modelValue?new Date(modelValue):null;});var hoursInputEl=inputs.eq(0),minutesInputEl=inputs.eq(1);var mousewheel=angular.isDefined($attrs.mousewheel)?$scope.$parent.$eval($attrs.mousewheel):timepickerConfig.mousewheel;if(mousewheel){this.setupMousewheelEvents(hoursInputEl,minutesInputEl);}
var arrowkeys=angular.isDefined($attrs.arrowkeys)?$scope.$parent.$eval($attrs.arrowkeys):timepickerConfig.arrowkeys;if(arrowkeys){this.setupArrowkeyEvents(hoursInputEl,minutesInputEl);}
$scope.readonlyInput=angular.isDefined($attrs.readonlyInput)?$scope.$parent.$eval($attrs.readonlyInput):timepickerConfig.readonlyInput;this.setupInputEvents(hoursInputEl,minutesInputEl);};var hourStep=timepickerConfig.hourStep;if($attrs.hourStep){$scope.$parent.$watch($parse($attrs.hourStep),function(value){hourStep=parseInt(value,10);});}
var minuteStep=timepickerConfig.minuteStep;if($attrs.minuteStep){$scope.$parent.$watch($parse($attrs.minuteStep),function(value){minuteStep=parseInt(value,10);});}
var min;$scope.$parent.$watch($parse($attrs.min),function(value){var dt=new Date(value);min=isNaN(dt)?undefined:dt;});var max;$scope.$parent.$watch($parse($attrs.max),function(value){var dt=new Date(value);max=isNaN(dt)?undefined:dt;});$scope.noIncrementHours=function(){var incrementedSelected=addMinutes(selected,hourStep*60);return incrementedSelected>max||(incrementedSelected<selected&&incrementedSelected<min);};$scope.noDecrementHours=function(){var decrementedSelected=addMinutes(selected,-hourStep*60);return decrementedSelected<min||(decrementedSelected>selected&&decrementedSelected>max);};$scope.noIncrementMinutes=function(){var incrementedSelected=addMinutes(selected,minuteStep);return incrementedSelected>max||(incrementedSelected<selected&&incrementedSelected<min);};$scope.noDecrementMinutes=function(){var decrementedSelected=addMinutes(selected,-minuteStep);return decrementedSelected<min||(decrementedSelected>selected&&decrementedSelected>max);};$scope.noToggleMeridian=function(){if(selected.getHours()<13){return addMinutes(selected,12*60)>max;}else{return addMinutes(selected,-12*60)<min;}};$scope.showMeridian=timepickerConfig.showMeridian;if($attrs.showMeridian){$scope.$parent.$watch($parse($attrs.showMeridian),function(value){$scope.showMeridian=!!value;if(ngModelCtrl.$error.time){var hours=getHoursFromTemplate(),minutes=getMinutesFromTemplate();if(angular.isDefined(hours)&&angular.isDefined(minutes)){selected.setHours(hours);refresh();}}else{updateTemplate();}});}
function getHoursFromTemplate(){var hours=parseInt($scope.hours,10);var valid=$scope.showMeridian?(hours>0&&hours<13):(hours>=0&&hours<24);if(!valid){return undefined;}
if($scope.showMeridian){if(hours===12){hours=0;}
if($scope.meridian===meridians[1]){hours=hours+12;}}
return hours;}
function getMinutesFromTemplate(){var minutes=parseInt($scope.minutes,10);return(minutes>=0&&minutes<60)?minutes:undefined;}
function pad(value){return(angular.isDefined(value)&&value.toString().length<2)?'0'+value:value.toString();}
this.setupMousewheelEvents=function(hoursInputEl,minutesInputEl){var isScrollingUp=function(e){if(e.originalEvent){e=e.originalEvent;}
var delta=(e.wheelDelta)?e.wheelDelta:-e.deltaY;return(e.detail||delta>0);};hoursInputEl.bind('mousewheel wheel',function(e){$scope.$apply(isScrollingUp(e)?$scope.incrementHours():$scope.decrementHours());e.preventDefault();});minutesInputEl.bind('mousewheel wheel',function(e){$scope.$apply(isScrollingUp(e)?$scope.incrementMinutes():$scope.decrementMinutes());e.preventDefault();});};this.setupArrowkeyEvents=function(hoursInputEl,minutesInputEl){hoursInputEl.bind('keydown',function(e){if(e.which===38){e.preventDefault();$scope.incrementHours();$scope.$apply();}else if(e.which===40){e.preventDefault();$scope.decrementHours();$scope.$apply();}});minutesInputEl.bind('keydown',function(e){if(e.which===38){e.preventDefault();$scope.incrementMinutes();$scope.$apply();}else if(e.which===40){e.preventDefault();$scope.decrementMinutes();$scope.$apply();}});};this.setupInputEvents=function(hoursInputEl,minutesInputEl){if($scope.readonlyInput){$scope.updateHours=angular.noop;$scope.updateMinutes=angular.noop;return;}
var invalidate=function(invalidHours,invalidMinutes){ngModelCtrl.$setViewValue(null);ngModelCtrl.$setValidity('time',false);if(angular.isDefined(invalidHours)){$scope.invalidHours=invalidHours;}
if(angular.isDefined(invalidMinutes)){$scope.invalidMinutes=invalidMinutes;}};$scope.updateHours=function(){var hours=getHoursFromTemplate(),minutes=getMinutesFromTemplate();if(angular.isDefined(hours)&&angular.isDefined(minutes)){selected.setHours(hours);if(selected<min||selected>max){invalidate(true);}else{refresh('h');}}else{invalidate(true);}};hoursInputEl.bind('blur',function(e){if(!$scope.invalidHours&&$scope.hours<10){$scope.$apply(function(){$scope.hours=pad($scope.hours);});}});$scope.updateMinutes=function(){var minutes=getMinutesFromTemplate(),hours=getHoursFromTemplate();if(angular.isDefined(minutes)&&angular.isDefined(hours)){selected.setMinutes(minutes);if(selected<min||selected>max){invalidate(undefined,true);}else{refresh('m');}}else{invalidate(undefined,true);}};minutesInputEl.bind('blur',function(e){if(!$scope.invalidMinutes&&$scope.minutes<10){$scope.$apply(function(){$scope.minutes=pad($scope.minutes);});}});};this.render=function(){var date=ngModelCtrl.$viewValue;if(isNaN(date)){ngModelCtrl.$setValidity('time',false);$log.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');}else{if(date){selected=date;}
if(selected<min||selected>max){ngModelCtrl.$setValidity('time',false);$scope.invalidHours=true;$scope.invalidMinutes=true;}else{makeValid();}
updateTemplate();}};function refresh(keyboardChange){makeValid();ngModelCtrl.$setViewValue(new Date(selected));updateTemplate(keyboardChange);}
function makeValid(){ngModelCtrl.$setValidity('time',true);$scope.invalidHours=false;$scope.invalidMinutes=false;}
function updateTemplate(keyboardChange){var hours=selected.getHours(),minutes=selected.getMinutes();if($scope.showMeridian){hours=(hours===0||hours===12)?12:hours%12;}
$scope.hours=keyboardChange==='h'?hours:pad(hours);if(keyboardChange!=='m'){$scope.minutes=pad(minutes);}
$scope.meridian=selected.getHours()<12?meridians[0]:meridians[1];}
function addMinutes(date,minutes){var dt=new Date(date.getTime()+minutes*60000);var newDate=new Date(date);newDate.setHours(dt.getHours(),dt.getMinutes());return newDate;}
function addMinutesToSelected(minutes){selected=addMinutes(selected,minutes);refresh();}
$scope.showSpinners=angular.isDefined($attrs.showSpinners)?$scope.$parent.$eval($attrs.showSpinners):timepickerConfig.showSpinners;$scope.incrementHours=function(){if(!$scope.noIncrementHours()){addMinutesToSelected(hourStep*60);}};$scope.decrementHours=function(){if(!$scope.noDecrementHours()){addMinutesToSelected(-hourStep*60);}};$scope.incrementMinutes=function(){if(!$scope.noIncrementMinutes()){addMinutesToSelected(minuteStep);}};$scope.decrementMinutes=function(){if(!$scope.noDecrementMinutes()){addMinutesToSelected(-minuteStep);}};$scope.toggleMeridian=function(){if(!$scope.noToggleMeridian()){addMinutesToSelected(12*60*(selected.getHours()<12?1:-1));}};}]).directive('uibTimepicker',function(){return{restrict:'EA',require:['uibTimepicker','?^ngModel'],controller:'UibTimepickerController',controllerAs:'timepicker',replace:true,scope:{},templateUrl:function(element,attrs){return attrs.templateUrl||'template/timepicker/timepicker.html';},link:function(scope,element,attrs,ctrls){var timepickerCtrl=ctrls[0],ngModelCtrl=ctrls[1];if(ngModelCtrl){timepickerCtrl.init(ngModelCtrl,element.find('input'));}}};});angular.module('ui.bootstrap.timepicker').value('$timepickerSuppressWarning',false).controller('TimepickerController',['$scope','$element','$attrs','$controller','$log','$timepickerSuppressWarning',function($scope,$element,$attrs,$controller,$log,$timepickerSuppressWarning){if(!$timepickerSuppressWarning){$log.warn('TimepickerController is now deprecated. Use UibTimepickerController instead.');}
angular.extend(this,$controller('UibTimepickerController',{$scope:$scope,$element:$element,$attrs:$attrs}));}]).directive('timepicker',['$log','$timepickerSuppressWarning',function($log,$timepickerSuppressWarning){return{restrict:'EA',require:['timepicker','?^ngModel'],controller:'TimepickerController',controllerAs:'timepicker',replace:true,scope:{},templateUrl:function(element,attrs){return attrs.templateUrl||'template/timepicker/timepicker.html';},link:function(scope,element,attrs,ctrls){if(!$timepickerSuppressWarning){$log.warn('timepicker is now deprecated. Use uib-timepicker instead.');}
var timepickerCtrl=ctrls[0],ngModelCtrl=ctrls[1];if(ngModelCtrl){timepickerCtrl.init(ngModelCtrl,element.find('input'));}}};}]);angular.module('ui.bootstrap.typeahead',['ui.bootstrap.position']).factory('uibTypeaheadParser',['$parse',function($parse){var TYPEAHEAD_REGEXP=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w\d]*))\s+in\s+([\s\S]+?)$/;return{parse:function(input){var match=input.match(TYPEAHEAD_REGEXP);if(!match){throw new Error('Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_"'+' but got "'+input+'".');}
return{itemName:match[3],source:$parse(match[4]),viewMapper:$parse(match[2]||match[1]),modelMapper:$parse(match[1])};}};}]).controller('UibTypeaheadController',['$scope','$element','$attrs','$compile','$parse','$q','$timeout','$document','$window','$rootScope','$uibPosition','uibTypeaheadParser',function(originalScope,element,attrs,$compile,$parse,$q,$timeout,$document,$window,$rootScope,$position,typeaheadParser){var HOT_KEYS=[9,13,27,38,40];var eventDebounceTime=200;var modelCtrl,ngModelOptions;var minLength=originalScope.$eval(attrs.typeaheadMinLength);if(!minLength&&minLength!==0){minLength=1;}
var waitTime=originalScope.$eval(attrs.typeaheadWaitMs)||0;var isEditable=originalScope.$eval(attrs.typeaheadEditable)!==false;var isLoadingSetter=$parse(attrs.typeaheadLoading).assign||angular.noop;var onSelectCallback=$parse(attrs.typeaheadOnSelect);var isSelectOnBlur=angular.isDefined(attrs.typeaheadSelectOnBlur)?originalScope.$eval(attrs.typeaheadSelectOnBlur):false;var isNoResultsSetter=$parse(attrs.typeaheadNoResults).assign||angular.noop;var inputFormatter=attrs.typeaheadInputFormatter?$parse(attrs.typeaheadInputFormatter):undefined;var appendToBody=attrs.typeaheadAppendToBody?originalScope.$eval(attrs.typeaheadAppendToBody):false;var appendToElementId=attrs.typeaheadAppendToElementId||false;var focusFirst=originalScope.$eval(attrs.typeaheadFocusFirst)!==false;var selectOnExact=attrs.typeaheadSelectOnExact?originalScope.$eval(attrs.typeaheadSelectOnExact):false;var parsedModel=$parse(attrs.ngModel);var invokeModelSetter=$parse(attrs.ngModel+'($$$p)');var $setModelValue=function(scope,newValue){if(angular.isFunction(parsedModel(originalScope))&&ngModelOptions&&ngModelOptions.$options&&ngModelOptions.$options.getterSetter){return invokeModelSetter(scope,{$$$p:newValue});}else{return parsedModel.assign(scope,newValue);}};var parserResult=typeaheadParser.parse(attrs.uibTypeahead);var hasFocus;var selected;var scope=originalScope.$new();var offDestroy=originalScope.$on('$destroy',function(){scope.$destroy();});scope.$on('$destroy',offDestroy);var popupId='typeahead-'+scope.$id+'-'+Math.floor(Math.random()*10000);element.attr({'aria-autocomplete':'list','aria-expanded':false,'aria-owns':popupId});var popUpEl=angular.element('<div uib-typeahead-popup></div>');popUpEl.attr({id:popupId,matches:'matches',active:'activeIdx',select:'select(activeIdx)','move-in-progress':'moveInProgress',query:'query',position:'position'});if(angular.isDefined(attrs.typeaheadTemplateUrl)){popUpEl.attr('template-url',attrs.typeaheadTemplateUrl);}
if(angular.isDefined(attrs.typeaheadPopupTemplateUrl)){popUpEl.attr('popup-template-url',attrs.typeaheadPopupTemplateUrl);}
var resetMatches=function(){scope.matches=[];scope.activeIdx=-1;element.attr('aria-expanded',false);};var getMatchId=function(index){return popupId+'-option-'+index;};scope.$watch('activeIdx',function(index){if(index<0){element.removeAttr('aria-activedescendant');}else{element.attr('aria-activedescendant',getMatchId(index));}});var inputIsExactMatch=function(inputValue,index){if(scope.matches.length>index&&inputValue){return inputValue.toUpperCase()===scope.matches[index].label.toUpperCase();}
return false;};var getMatchesAsync=function(inputValue){var locals={$viewValue:inputValue};isLoadingSetter(originalScope,true);isNoResultsSetter(originalScope,false);$q.when(parserResult.source(originalScope,locals)).then(function(matches){var onCurrentRequest=(inputValue===modelCtrl.$viewValue);if(onCurrentRequest&&hasFocus){if(matches&&matches.length>0){scope.activeIdx=focusFirst?0:-1;isNoResultsSetter(originalScope,false);scope.matches.length=0;for(var i=0;i<matches.length;i++){locals[parserResult.itemName]=matches[i];scope.matches.push({id:getMatchId(i),label:parserResult.viewMapper(scope,locals),model:matches[i]});}
scope.query=inputValue;recalculatePosition();element.attr('aria-expanded',true);if(selectOnExact&&scope.matches.length===1&&inputIsExactMatch(inputValue,0)){scope.select(0);}}else{resetMatches();isNoResultsSetter(originalScope,true);}}
if(onCurrentRequest){isLoadingSetter(originalScope,false);}},function(){resetMatches();isLoadingSetter(originalScope,false);isNoResultsSetter(originalScope,true);});};if(appendToBody){angular.element($window).bind('resize',fireRecalculating);$document.find('body').bind('scroll',fireRecalculating);}
var timeoutEventPromise;scope.moveInProgress=false;function fireRecalculating(){if(!scope.moveInProgress){scope.moveInProgress=true;scope.$digest();}
if(timeoutEventPromise){$timeout.cancel(timeoutEventPromise);}
timeoutEventPromise=$timeout(function(){if(scope.matches.length){recalculatePosition();}
scope.moveInProgress=false;},eventDebounceTime);}
function recalculatePosition(){scope.position=appendToBody?$position.offset(element):$position.position(element);scope.position.top+=element.prop('offsetHeight');}
scope.query=undefined;var timeoutPromise;var scheduleSearchWithTimeout=function(inputValue){timeoutPromise=$timeout(function(){getMatchesAsync(inputValue);},waitTime);};var cancelPreviousTimeout=function(){if(timeoutPromise){$timeout.cancel(timeoutPromise);}};resetMatches();scope.select=function(activeIdx){var locals={};var model,item;selected=true;locals[parserResult.itemName]=item=scope.matches[activeIdx].model;model=parserResult.modelMapper(originalScope,locals);$setModelValue(originalScope,model);modelCtrl.$setValidity('editable',true);modelCtrl.$setValidity('parse',true);onSelectCallback(originalScope,{$item:item,$model:model,$label:parserResult.viewMapper(originalScope,locals)});resetMatches();if(scope.$eval(attrs.typeaheadFocusOnSelect)!==false){$timeout(function(){element[0].focus();},0,false);}};element.bind('keydown',function(evt){if(scope.matches.length===0||HOT_KEYS.indexOf(evt.which)===-1){return;}
if(scope.activeIdx===-1&&(evt.which===9||evt.which===13)){resetMatches();scope.$digest();return;}
evt.preventDefault();if(evt.which===40){scope.activeIdx=(scope.activeIdx+1)%scope.matches.length;scope.$digest();}else if(evt.which===38){scope.activeIdx=(scope.activeIdx>0?scope.activeIdx:scope.matches.length)-1;scope.$digest();}else if(evt.which===13||evt.which===9){scope.$apply(function(){scope.select(scope.activeIdx);});}else if(evt.which===27){evt.stopPropagation();resetMatches();scope.$digest();}});element.bind('blur',function(){if(isSelectOnBlur&&scope.matches.length&&scope.activeIdx!==-1&&!selected){selected=true;scope.$apply(function(){scope.select(scope.activeIdx);});}
hasFocus=false;selected=false;});var dismissClickHandler=function(evt){if(element[0]!==evt.target&&evt.which!==3&&scope.matches.length!==0){resetMatches();if(!$rootScope.$$phase){scope.$digest();}}};$document.bind('click',dismissClickHandler);originalScope.$on('$destroy',function(){$document.unbind('click',dismissClickHandler);if(appendToBody||appendToElementId){$popup.remove();}
if(appendToBody){angular.element($window).unbind('resize',fireRecalculating);$document.find('body').unbind('scroll',fireRecalculating);}
popUpEl.remove();});var $popup=$compile(popUpEl)(scope);if(appendToBody){$document.find('body').append($popup);}else if(appendToElementId!==false){angular.element($document[0].getElementById(appendToElementId)).append($popup);}else{element.after($popup);}
this.init=function(_modelCtrl,_ngModelOptions){modelCtrl=_modelCtrl;ngModelOptions=_ngModelOptions;modelCtrl.$parsers.unshift(function(inputValue){hasFocus=true;if(minLength===0||inputValue&&inputValue.length>=minLength){if(waitTime>0){cancelPreviousTimeout();scheduleSearchWithTimeout(inputValue);}else{getMatchesAsync(inputValue);}}else{isLoadingSetter(originalScope,false);cancelPreviousTimeout();resetMatches();}
if(isEditable){return inputValue;}else{if(!inputValue){modelCtrl.$setValidity('editable',true);return null;}else{modelCtrl.$setValidity('editable',false);return undefined;}}});modelCtrl.$formatters.push(function(modelValue){var candidateViewValue,emptyViewValue;var locals={};if(!isEditable){modelCtrl.$setValidity('editable',true);}
if(inputFormatter){locals.$model=modelValue;return inputFormatter(originalScope,locals);}else{locals[parserResult.itemName]=modelValue;candidateViewValue=parserResult.viewMapper(originalScope,locals);locals[parserResult.itemName]=undefined;emptyViewValue=parserResult.viewMapper(originalScope,locals);return candidateViewValue!==emptyViewValue?candidateViewValue:modelValue;}});};}]).directive('uibTypeahead',function(){return{controller:'UibTypeaheadController',require:['ngModel','^?ngModelOptions','uibTypeahead'],link:function(originalScope,element,attrs,ctrls){ctrls[2].init(ctrls[0],ctrls[1]);}};}).directive('uibTypeaheadPopup',function(){return{scope:{matches:'=',query:'=',active:'=',position:'&',moveInProgress:'=',select:'&'},replace:true,templateUrl:function(element,attrs){return attrs.popupTemplateUrl||'template/typeahead/typeahead-popup.html';},link:function(scope,element,attrs){scope.templateUrl=attrs.templateUrl;scope.isOpen=function(){return scope.matches.length>0;};scope.isActive=function(matchIdx){return scope.active==matchIdx;};scope.selectActive=function(matchIdx){scope.active=matchIdx;};scope.selectMatch=function(activeIdx){scope.select({activeIdx:activeIdx});};}};}).directive('uibTypeaheadMatch',['$templateRequest','$compile','$parse',function($templateRequest,$compile,$parse){return{scope:{index:'=',match:'=',query:'='},link:function(scope,element,attrs){var tplUrl=$parse(attrs.templateUrl)(scope.$parent)||'template/typeahead/typeahead-match.html';$templateRequest(tplUrl).then(function(tplContent){$compile(tplContent.trim())(scope,function(clonedElement){element.replaceWith(clonedElement);});});}};}]).filter('uibTypeaheadHighlight',['$sce','$injector','$log',function($sce,$injector,$log){var isSanitizePresent;isSanitizePresent=$injector.has('$sanitize');function escapeRegexp(queryToEscape){return queryToEscape.replace(/([.?*+^$[\]\\(){}|-])/g,'\\$1');}
function containsHtml(matchItem){return/<.*>/g.test(matchItem);}
return function(matchItem,query){if(!isSanitizePresent&&containsHtml(matchItem)){$log.warn('Unsafe use of typeahead please use ngSanitize');}
matchItem=query?(''+matchItem).replace(new RegExp(escapeRegexp(query),'gi'),'<strong>$&</strong>'):matchItem;if(!isSanitizePresent){matchItem=$sce.trustAsHtml(matchItem);}
return matchItem;};}]);angular.module('ui.bootstrap.typeahead').value('$typeaheadSuppressWarning',false).service('typeaheadParser',['$parse','uibTypeaheadParser','$log','$typeaheadSuppressWarning',function($parse,uibTypeaheadParser,$log,$typeaheadSuppressWarning){if(!$typeaheadSuppressWarning){$log.warn('typeaheadParser is now deprecated. Use uibTypeaheadParser instead.');}
return uibTypeaheadParser;}]).directive('typeahead',['$compile','$parse','$q','$timeout','$document','$window','$rootScope','$uibPosition','typeaheadParser','$log','$typeaheadSuppressWarning',function($compile,$parse,$q,$timeout,$document,$window,$rootScope,$position,typeaheadParser,$log,$typeaheadSuppressWarning){var HOT_KEYS=[9,13,27,38,40];var eventDebounceTime=200;return{require:['ngModel','^?ngModelOptions'],link:function(originalScope,element,attrs,ctrls){if(!$typeaheadSuppressWarning){$log.warn('typeahead is now deprecated. Use uib-typeahead instead.');}
var modelCtrl=ctrls[0];var ngModelOptions=ctrls[1];var minLength=originalScope.$eval(attrs.typeaheadMinLength);if(!minLength&&minLength!==0){minLength=1;}
var waitTime=originalScope.$eval(attrs.typeaheadWaitMs)||0;var isEditable=originalScope.$eval(attrs.typeaheadEditable)!==false;var isLoadingSetter=$parse(attrs.typeaheadLoading).assign||angular.noop;var onSelectCallback=$parse(attrs.typeaheadOnSelect);var isSelectOnBlur=angular.isDefined(attrs.typeaheadSelectOnBlur)?originalScope.$eval(attrs.typeaheadSelectOnBlur):false;var isNoResultsSetter=$parse(attrs.typeaheadNoResults).assign||angular.noop;var inputFormatter=attrs.typeaheadInputFormatter?$parse(attrs.typeaheadInputFormatter):undefined;var appendToBody=attrs.typeaheadAppendToBody?originalScope.$eval(attrs.typeaheadAppendToBody):false;var appendToElementId=attrs.typeaheadAppendToElementId||false;var focusFirst=originalScope.$eval(attrs.typeaheadFocusFirst)!==false;var selectOnExact=attrs.typeaheadSelectOnExact?originalScope.$eval(attrs.typeaheadSelectOnExact):false;var parsedModel=$parse(attrs.ngModel);var invokeModelSetter=$parse(attrs.ngModel+'($$$p)');var $setModelValue=function(scope,newValue){if(angular.isFunction(parsedModel(originalScope))&&ngModelOptions&&ngModelOptions.$options&&ngModelOptions.$options.getterSetter){return invokeModelSetter(scope,{$$$p:newValue});}else{return parsedModel.assign(scope,newValue);}};var parserResult=typeaheadParser.parse(attrs.typeahead);var hasFocus;var selected;var scope=originalScope.$new();var offDestroy=originalScope.$on('$destroy',function(){scope.$destroy();});scope.$on('$destroy',offDestroy);var popupId='typeahead-'+scope.$id+'-'+Math.floor(Math.random()*10000);element.attr({'aria-autocomplete':'list','aria-expanded':false,'aria-owns':popupId});var popUpEl=angular.element('<div typeahead-popup></div>');popUpEl.attr({id:popupId,matches:'matches',active:'activeIdx',select:'select(activeIdx)','move-in-progress':'moveInProgress',query:'query',position:'position'});if(angular.isDefined(attrs.typeaheadTemplateUrl)){popUpEl.attr('template-url',attrs.typeaheadTemplateUrl);}
if(angular.isDefined(attrs.typeaheadPopupTemplateUrl)){popUpEl.attr('popup-template-url',attrs.typeaheadPopupTemplateUrl);}
var resetMatches=function(){scope.matches=[];scope.activeIdx=-1;element.attr('aria-expanded',false);};var getMatchId=function(index){return popupId+'-option-'+index;};scope.$watch('activeIdx',function(index){if(index<0){element.removeAttr('aria-activedescendant');}else{element.attr('aria-activedescendant',getMatchId(index));}});var inputIsExactMatch=function(inputValue,index){if(scope.matches.length>index&&inputValue){return inputValue.toUpperCase()===scope.matches[index].label.toUpperCase();}
return false;};var getMatchesAsync=function(inputValue){var locals={$viewValue:inputValue};isLoadingSetter(originalScope,true);isNoResultsSetter(originalScope,false);$q.when(parserResult.source(originalScope,locals)).then(function(matches){var onCurrentRequest=(inputValue===modelCtrl.$viewValue);if(onCurrentRequest&&hasFocus){if(matches&&matches.length>0){scope.activeIdx=focusFirst?0:-1;isNoResultsSetter(originalScope,false);scope.matches.length=0;for(var i=0;i<matches.length;i++){locals[parserResult.itemName]=matches[i];scope.matches.push({id:getMatchId(i),label:parserResult.viewMapper(scope,locals),model:matches[i]});}
scope.query=inputValue;recalculatePosition();element.attr('aria-expanded',true);if(selectOnExact&&scope.matches.length===1&&inputIsExactMatch(inputValue,0)){scope.select(0);}}else{resetMatches();isNoResultsSetter(originalScope,true);}}
if(onCurrentRequest){isLoadingSetter(originalScope,false);}},function(){resetMatches();isLoadingSetter(originalScope,false);isNoResultsSetter(originalScope,true);});};if(appendToBody){angular.element($window).bind('resize',fireRecalculating);$document.find('body').bind('scroll',fireRecalculating);}
var timeoutEventPromise;scope.moveInProgress=false;function fireRecalculating(){if(!scope.moveInProgress){scope.moveInProgress=true;scope.$digest();}
if(timeoutEventPromise){$timeout.cancel(timeoutEventPromise);}
timeoutEventPromise=$timeout(function(){if(scope.matches.length){recalculatePosition();}
scope.moveInProgress=false;},eventDebounceTime);}
function recalculatePosition(){scope.position=appendToBody?$position.offset(element):$position.position(element);scope.position.top+=element.prop('offsetHeight');}
resetMatches();scope.query=undefined;var timeoutPromise;var scheduleSearchWithTimeout=function(inputValue){timeoutPromise=$timeout(function(){getMatchesAsync(inputValue);},waitTime);};var cancelPreviousTimeout=function(){if(timeoutPromise){$timeout.cancel(timeoutPromise);}};modelCtrl.$parsers.unshift(function(inputValue){hasFocus=true;if(minLength===0||inputValue&&inputValue.length>=minLength){if(waitTime>0){cancelPreviousTimeout();scheduleSearchWithTimeout(inputValue);}else{getMatchesAsync(inputValue);}}else{isLoadingSetter(originalScope,false);cancelPreviousTimeout();resetMatches();}
if(isEditable){return inputValue;}else{if(!inputValue){modelCtrl.$setValidity('editable',true);return null;}else{modelCtrl.$setValidity('editable',false);return undefined;}}});modelCtrl.$formatters.push(function(modelValue){var candidateViewValue,emptyViewValue;var locals={};if(!isEditable){modelCtrl.$setValidity('editable',true);}
if(inputFormatter){locals.$model=modelValue;return inputFormatter(originalScope,locals);}else{locals[parserResult.itemName]=modelValue;candidateViewValue=parserResult.viewMapper(originalScope,locals);locals[parserResult.itemName]=undefined;emptyViewValue=parserResult.viewMapper(originalScope,locals);return candidateViewValue!==emptyViewValue?candidateViewValue:modelValue;}});scope.select=function(activeIdx){var locals={};var model,item;selected=true;locals[parserResult.itemName]=item=scope.matches[activeIdx].model;model=parserResult.modelMapper(originalScope,locals);$setModelValue(originalScope,model);modelCtrl.$setValidity('editable',true);modelCtrl.$setValidity('parse',true);onSelectCallback(originalScope,{$item:item,$model:model,$label:parserResult.viewMapper(originalScope,locals)});resetMatches();if(scope.$eval(attrs.typeaheadFocusOnSelect)!==false){$timeout(function(){element[0].focus();},0,false);}};element.bind('keydown',function(evt){if(scope.matches.length===0||HOT_KEYS.indexOf(evt.which)===-1){return;}
if(scope.activeIdx===-1&&(evt.which===9||evt.which===13)){resetMatches();scope.$digest();return;}
evt.preventDefault();if(evt.which===40){scope.activeIdx=(scope.activeIdx+1)%scope.matches.length;scope.$digest();}else if(evt.which===38){scope.activeIdx=(scope.activeIdx>0?scope.activeIdx:scope.matches.length)-1;scope.$digest();}else if(evt.which===13||evt.which===9){scope.$apply(function(){scope.select(scope.activeIdx);});}else if(evt.which===27){evt.stopPropagation();resetMatches();scope.$digest();}});element.bind('blur',function(){if(isSelectOnBlur&&scope.matches.length&&scope.activeIdx!==-1&&!selected){selected=true;scope.$apply(function(){scope.select(scope.activeIdx);});}
hasFocus=false;selected=false;});var dismissClickHandler=function(evt){if(element[0]!==evt.target&&evt.which!==3&&scope.matches.length!==0){resetMatches();if(!$rootScope.$$phase){scope.$digest();}}};$document.bind('click',dismissClickHandler);originalScope.$on('$destroy',function(){$document.unbind('click',dismissClickHandler);if(appendToBody||appendToElementId){$popup.remove();}
if(appendToBody){angular.element($window).unbind('resize',fireRecalculating);$document.find('body').unbind('scroll',fireRecalculating);}
popUpEl.remove();});var $popup=$compile(popUpEl)(scope);if(appendToBody){$document.find('body').append($popup);}else if(appendToElementId!==false){angular.element($document[0].getElementById(appendToElementId)).append($popup);}else{element.after($popup);}}};}]).directive('typeaheadPopup',['$typeaheadSuppressWarning','$log',function($typeaheadSuppressWarning,$log){return{scope:{matches:'=',query:'=',active:'=',position:'&',moveInProgress:'=',select:'&'},replace:true,templateUrl:function(element,attrs){return attrs.popupTemplateUrl||'template/typeahead/typeahead-popup.html';},link:function(scope,element,attrs){if(!$typeaheadSuppressWarning){$log.warn('typeahead-popup is now deprecated. Use uib-typeahead-popup instead.');}
scope.templateUrl=attrs.templateUrl;scope.isOpen=function(){return scope.matches.length>0;};scope.isActive=function(matchIdx){return scope.active==matchIdx;};scope.selectActive=function(matchIdx){scope.active=matchIdx;};scope.selectMatch=function(activeIdx){scope.select({activeIdx:activeIdx});};}};}]).directive('typeaheadMatch',['$templateRequest','$compile','$parse','$typeaheadSuppressWarning','$log',function($templateRequest,$compile,$parse,$typeaheadSuppressWarning,$log){return{restrict:'EA',scope:{index:'=',match:'=',query:'='},link:function(scope,element,attrs){if(!$typeaheadSuppressWarning){$log.warn('typeahead-match is now deprecated. Use uib-typeahead-match instead.');}
var tplUrl=$parse(attrs.templateUrl)(scope.$parent)||'template/typeahead/typeahead-match.html';$templateRequest(tplUrl).then(function(tplContent){$compile(tplContent.trim())(scope,function(clonedElement){element.replaceWith(clonedElement);});});}};}]).filter('typeaheadHighlight',['$sce','$injector','$log','$typeaheadSuppressWarning',function($sce,$injector,$log,$typeaheadSuppressWarning){var isSanitizePresent;isSanitizePresent=$injector.has('$sanitize');function escapeRegexp(queryToEscape){return queryToEscape.replace(/([.?*+^$[\]\\(){}|-])/g,'\\$1');}
function containsHtml(matchItem){return/<.*>/g.test(matchItem);}
return function(matchItem,query){if(!$typeaheadSuppressWarning){$log.warn('typeaheadHighlight is now deprecated. Use uibTypeaheadHighlight instead.');}
if(!isSanitizePresent&&containsHtml(matchItem)){$log.warn('Unsafe use of typeahead please use ngSanitize');}
matchItem=query?(''+matchItem).replace(new RegExp(escapeRegexp(query),'gi'),'<strong>$&</strong>'):matchItem;if(!isSanitizePresent){matchItem=$sce.trustAsHtml(matchItem);}
return matchItem;};}]);angular.module("template/accordion/accordion-group.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/accordion/accordion-group.html","<div class=\"panel {{panelClass || 'panel-default'}}\">\n"+"  <div class=\"panel-heading\" ng-keypress=\"toggleOpen($event)\">\n"+"    <h4 class=\"panel-title\">\n"+"      <a href tabindex=\"0\" class=\"accordion-toggle\" ng-click=\"toggleOpen()\" uib-accordion-transclude=\"heading\"><span ng-class=\"{'text-muted': isDisabled}\">{{heading}}</span></a>\n"+"    </h4>\n"+"  </div>\n"+"  <div class=\"panel-collapse collapse\" uib-collapse=\"!isOpen\">\n"+"     <div class=\"panel-body\" ng-transclude></div>\n"+"  </div>\n"+"</div>\n"+"");}]);angular.module("template/accordion/accordion.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/accordion/accordion.html","<div class=\"panel-group\" ng-transclude></div>");}]);angular.module("template/alert/alert.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/alert/alert.html","<div class=\"alert\" ng-class=\"['alert-' + (type || 'warning'), closeable ? 'alert-dismissible' : null]\" role=\"alert\">\n"+"    <button ng-show=\"closeable\" type=\"button\" class=\"close\" ng-click=\"close({$event: $event})\">\n"+"        <span aria-hidden=\"true\">&times;</span>\n"+"        <span class=\"sr-only\">Close</span>\n"+"    </button>\n"+"    <div ng-transclude></div>\n"+"</div>\n"+"");}]);angular.module("template/carousel/carousel.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/carousel/carousel.html","<div ng-mouseenter=\"pause()\" ng-mouseleave=\"play()\" class=\"carousel\" ng-swipe-right=\"prev()\" ng-swipe-left=\"next()\">\n"+"  <div class=\"carousel-inner\" ng-transclude></div>\n"+"  <a role=\"button\" href class=\"left carousel-control\" ng-click=\"prev()\" ng-show=\"slides.length > 1\">\n"+"    <span aria-hidden=\"true\" class=\"glyphicon glyphicon-chevron-left\"></span>\n"+"    <span class=\"sr-only\">previous</span>\n"+"  </a>\n"+"  <a role=\"button\" href class=\"right carousel-control\" ng-click=\"next()\" ng-show=\"slides.length > 1\">\n"+"    <span aria-hidden=\"true\" class=\"glyphicon glyphicon-chevron-right\"></span>\n"+"    <span class=\"sr-only\">next</span>\n"+"  </a>\n"+"  <ol class=\"carousel-indicators\" ng-show=\"slides.length > 1\">\n"+"    <li ng-repeat=\"slide in slides | orderBy:indexOfSlide track by $index\" ng-class=\"{ active: isActive(slide) }\" ng-click=\"select(slide)\">\n"+"      <span class=\"sr-only\">slide {{ $index + 1 }} of {{ slides.length }}<span ng-if=\"isActive(slide)\">, currently active</span></span>\n"+"    </li>\n"+"  </ol>\n"+"</div>");}]);angular.module("template/carousel/slide.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/carousel/slide.html","<div ng-class=\"{\n"+"    'active': active\n"+"  }\" class=\"item text-center\" ng-transclude></div>\n"+"");}]);angular.module("template/datepicker/datepicker.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/datepicker/datepicker.html","<div ng-switch=\"datepickerMode\" role=\"application\" ng-keydown=\"keydown($event)\">\n"+"  <uib-daypicker ng-switch-when=\"day\" tabindex=\"0\"></uib-daypicker>\n"+"  <uib-monthpicker ng-switch-when=\"month\" tabindex=\"0\"></uib-monthpicker>\n"+"  <uib-yearpicker ng-switch-when=\"year\" tabindex=\"0\"></uib-yearpicker>\n"+"</div>");}]);angular.module("template/datepicker/day.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/datepicker/day.html","<table role=\"grid\" aria-labelledby=\"{{::uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n"+"  <thead>\n"+"    <tr>\n"+"      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-left\" ng-click=\"move(-1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-left\"></i></button></th>\n"+"      <th colspan=\"{{::5 + showWeeks}}\"><button id=\"{{::uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n"+"      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-right\" ng-click=\"move(1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-right\"></i></button></th>\n"+"    </tr>\n"+"    <tr>\n"+"      <th ng-if=\"showWeeks\" class=\"text-center\"></th>\n"+"      <th ng-repeat=\"label in ::labels track by $index\" class=\"text-center\"><small aria-label=\"{{::label.full}}\">{{::label.abbr}}</small></th>\n"+"    </tr>\n"+"  </thead>\n"+"  <tbody>\n"+"    <tr ng-repeat=\"row in rows track by $index\">\n"+"      <td ng-if=\"showWeeks\" class=\"text-center h6\"><em>{{ weekNumbers[$index] }}</em></td>\n"+"      <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{::dt.uid}}\" ng-class=\"::dt.customClass\">\n"+"        <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default btn-sm\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"::{'text-muted': dt.secondary, 'text-info': dt.current}\">{{::dt.label}}</span></button>\n"+"      </td>\n"+"    </tr>\n"+"  </tbody>\n"+"</table>\n"+"");}]);angular.module("template/datepicker/month.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/datepicker/month.html","<table role=\"grid\" aria-labelledby=\"{{::uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n"+"  <thead>\n"+"    <tr>\n"+"      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-left\" ng-click=\"move(-1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-left\"></i></button></th>\n"+"      <th><button id=\"{{::uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n"+"      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-right\" ng-click=\"move(1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-right\"></i></button></th>\n"+"    </tr>\n"+"  </thead>\n"+"  <tbody>\n"+"    <tr ng-repeat=\"row in rows track by $index\">\n"+"      <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{::dt.uid}}\" ng-class=\"::dt.customClass\">\n"+"        <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"::{'text-info': dt.current}\">{{::dt.label}}</span></button>\n"+"      </td>\n"+"    </tr>\n"+"  </tbody>\n"+"</table>\n"+"");}]);angular.module("template/datepicker/popup.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/datepicker/popup.html","<ul class=\"dropdown-menu\" dropdown-nested ng-if=\"isOpen\" style=\"display: block\" ng-style=\"{top: position.top+'px', left: position.left+'px'}\" ng-keydown=\"keydown($event)\" ng-click=\"$event.stopPropagation()\">\n"+"   <li ng-transclude></li>\n"+"   <li ng-if=\"showButtonBar\" style=\"padding:10px 9px 2px\">\n"+"       <span class=\"btn-group pull-left\">\n"+"           <button type=\"button\" class=\"btn btn-sm btn-info\" ng-click=\"select('today')\" ng-disabled=\"isDisabled('today')\">{{ getText('current') }}</button>\n"+"           <button type=\"button\" class=\"btn btn-sm btn-danger\" ng-click=\"select(null)\">{{ getText('clear') }}</button>\n"+"       </span>\n"+"       <button type=\"button\" class=\"btn btn-sm btn-success pull-right\" ng-click=\"close()\">{{ getText('close') }}</button>\n"+"   </li>\n"+"</ul>\n"+"");}]);angular.module("template/datepicker/year.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/datepicker/year.html","<table role=\"grid\" aria-labelledby=\"{{::uniqueId}}-title\" aria-activedescendant=\"{{activeDateId}}\">\n"+"  <thead>\n"+"    <tr>\n"+"      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-left\" ng-click=\"move(-1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-left\"></i></button></th>\n"+"      <th colspan=\"3\"><button id=\"{{::uniqueId}}-title\" role=\"heading\" aria-live=\"assertive\" aria-atomic=\"true\" type=\"button\" class=\"btn btn-default btn-sm\" ng-click=\"toggleMode()\" ng-disabled=\"datepickerMode === maxMode\" tabindex=\"-1\" style=\"width:100%;\"><strong>{{title}}</strong></button></th>\n"+"      <th><button type=\"button\" class=\"btn btn-default btn-sm pull-right\" ng-click=\"move(1)\" tabindex=\"-1\"><i class=\"glyphicon glyphicon-chevron-right\"></i></button></th>\n"+"    </tr>\n"+"  </thead>\n"+"  <tbody>\n"+"    <tr ng-repeat=\"row in rows track by $index\">\n"+"      <td ng-repeat=\"dt in row track by dt.date\" class=\"text-center\" role=\"gridcell\" id=\"{{::dt.uid}}\" ng-class=\"::dt.customClass\">\n"+"        <button type=\"button\" style=\"min-width:100%;\" class=\"btn btn-default\" ng-class=\"{'btn-info': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" tabindex=\"-1\"><span ng-class=\"::{'text-info': dt.current}\">{{::dt.label}}</span></button>\n"+"      </td>\n"+"    </tr>\n"+"  </tbody>\n"+"</table>\n"+"");}]);angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/modal/backdrop.html","<div uib-modal-animation-class=\"fade\"\n"+"     modal-in-class=\"in\"\n"+"     ng-style=\"{'z-index': 1040 + (index && 1 || 0) + index*10}\"\n"+"></div>\n"+"");}]);angular.module("template/modal/window.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/modal/window.html","<div modal-render=\"{{$isRendered}}\" tabindex=\"-1\" role=\"dialog\" class=\"modal\"\n"+"    uib-modal-animation-class=\"fade\"\n"+"    modal-in-class=\"in\"\n"+"    ng-style=\"{'z-index': 1050 + index*10, display: 'block'}\">\n"+"    <div class=\"modal-dialog\" ng-class=\"size ? 'modal-' + size : ''\"><div class=\"modal-content\" uib-modal-transclude></div></div>\n"+"</div>\n"+"");}]);angular.module("template/pagination/pager.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/pagination/pager.html","<ul class=\"pager\">\n"+"  <li ng-class=\"{disabled: noPrevious()||ngDisabled, previous: align}\"><a href ng-click=\"selectPage(page - 1, $event)\">{{::getText('previous')}}</a></li>\n"+"  <li ng-class=\"{disabled: noNext()||ngDisabled, next: align}\"><a href ng-click=\"selectPage(page + 1, $event)\">{{::getText('next')}}</a></li>\n"+"</ul>\n"+"");}]);angular.module("template/pagination/pagination.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/pagination/pagination.html","<ul class=\"pagination\">\n"+"  <li ng-if=\"::boundaryLinks\" ng-class=\"{disabled: noPrevious()||ngDisabled}\" class=\"pagination-first\"><a href ng-click=\"selectPage(1, $event)\">{{::getText('first')}}</a></li>\n"+"  <li ng-if=\"::directionLinks\" ng-class=\"{disabled: noPrevious()||ngDisabled}\" class=\"pagination-prev\"><a href ng-click=\"selectPage(page - 1, $event)\">{{::getText('previous')}}</a></li>\n"+"  <li ng-repeat=\"page in pages track by $index\" ng-class=\"{active: page.active,disabled: ngDisabled&&!page.active}\" class=\"pagination-page\"><a href ng-click=\"selectPage(page.number, $event)\">{{page.text}}</a></li>\n"+"  <li ng-if=\"::directionLinks\" ng-class=\"{disabled: noNext()||ngDisabled}\" class=\"pagination-next\"><a href ng-click=\"selectPage(page + 1, $event)\">{{::getText('next')}}</a></li>\n"+"  <li ng-if=\"::boundaryLinks\" ng-class=\"{disabled: noNext()||ngDisabled}\" class=\"pagination-last\"><a href ng-click=\"selectPage(totalPages, $event)\">{{::getText('last')}}</a></li>\n"+"</ul>\n"+"");}]);angular.module("template/tooltip/tooltip-html-popup.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/tooltip/tooltip-html-popup.html","<div\n"+"  tooltip-animation-class=\"fade\"\n"+"  uib-tooltip-classes\n"+"  ng-class=\"{ in: isOpen() }\">\n"+"  <div class=\"tooltip-arrow\"></div>\n"+"  <div class=\"tooltip-inner\" ng-bind-html=\"contentExp()\"></div>\n"+"</div>\n"+"");}]);angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/tooltip/tooltip-popup.html","<div\n"+"  tooltip-animation-class=\"fade\"\n"+"  uib-tooltip-classes\n"+"  ng-class=\"{ in: isOpen() }\">\n"+"  <div class=\"tooltip-arrow\"></div>\n"+"  <div class=\"tooltip-inner\" ng-bind=\"content\"></div>\n"+"</div>\n"+"");}]);angular.module("template/tooltip/tooltip-template-popup.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/tooltip/tooltip-template-popup.html","<div\n"+"  tooltip-animation-class=\"fade\"\n"+"  uib-tooltip-classes\n"+"  ng-class=\"{ in: isOpen() }\">\n"+"  <div class=\"tooltip-arrow\"></div>\n"+"  <div class=\"tooltip-inner\"\n"+"    uib-tooltip-template-transclude=\"contentExp()\"\n"+"    tooltip-template-transclude-scope=\"originScope()\"></div>\n"+"</div>\n"+"");}]);angular.module("template/popover/popover-html.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/popover/popover-html.html","<div tooltip-animation-class=\"fade\"\n"+"  uib-tooltip-classes\n"+"  ng-class=\"{ in: isOpen() }\">\n"+"  <div class=\"arrow\"></div>\n"+"\n"+"  <div class=\"popover-inner\">\n"+"      <h3 class=\"popover-title\" ng-bind=\"title\" ng-if=\"title\"></h3>\n"+"      <div class=\"popover-content\" ng-bind-html=\"contentExp()\"></div>\n"+"  </div>\n"+"</div>\n"+"");}]);angular.module("template/popover/popover-template.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/popover/popover-template.html","<div tooltip-animation-class=\"fade\"\n"+"  uib-tooltip-classes\n"+"  ng-class=\"{ in: isOpen() }\">\n"+"  <div class=\"arrow\"></div>\n"+"\n"+"  <div class=\"popover-inner\">\n"+"      <h3 class=\"popover-title\" ng-bind=\"title\" ng-if=\"title\"></h3>\n"+"      <div class=\"popover-content\"\n"+"        uib-tooltip-template-transclude=\"contentExp()\"\n"+"        tooltip-template-transclude-scope=\"originScope()\"></div>\n"+"  </div>\n"+"</div>\n"+"");}]);angular.module("template/popover/popover.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/popover/popover.html","<div tooltip-animation-class=\"fade\"\n"+"  uib-tooltip-classes\n"+"  ng-class=\"{ in: isOpen() }\">\n"+"  <div class=\"arrow\"></div>\n"+"\n"+"  <div class=\"popover-inner\">\n"+"      <h3 class=\"popover-title\" ng-bind=\"title\" ng-if=\"title\"></h3>\n"+"      <div class=\"popover-content\" ng-bind=\"content\"></div>\n"+"  </div>\n"+"</div>\n"+"");}]);angular.module("template/progressbar/bar.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/progressbar/bar.html","<div class=\"progress-bar\" ng-class=\"type && 'progress-bar-' + type\" role=\"progressbar\" aria-valuenow=\"{{value}}\" aria-valuemin=\"0\" aria-valuemax=\"{{max}}\" ng-style=\"{width: (percent < 100 ? percent : 100) + '%'}\" aria-valuetext=\"{{percent | number:0}}%\" aria-labelledby=\"{{::title}}\" style=\"min-width: 0;\" ng-transclude></div>\n"+"");}]);angular.module("template/progressbar/progress.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/progressbar/progress.html","<div class=\"progress\" ng-transclude aria-labelledby=\"{{::title}}\"></div>");}]);angular.module("template/progressbar/progressbar.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/progressbar/progressbar.html","<div class=\"progress\">\n"+"  <div class=\"progress-bar\" ng-class=\"type && 'progress-bar-' + type\" role=\"progressbar\" aria-valuenow=\"{{value}}\" aria-valuemin=\"0\" aria-valuemax=\"{{max}}\" ng-style=\"{width: (percent < 100 ? percent : 100) + '%'}\" aria-valuetext=\"{{percent | number:0}}%\" aria-labelledby=\"{{::title}}\" style=\"min-width: 0;\" ng-transclude></div>\n"+"</div>\n"+"");}]);angular.module("template/rating/rating.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/rating/rating.html","<span ng-mouseleave=\"reset()\" ng-keydown=\"onKeydown($event)\" tabindex=\"0\" role=\"slider\" aria-valuemin=\"0\" aria-valuemax=\"{{range.length}}\" aria-valuenow=\"{{value}}\">\n"+"    <span ng-repeat-start=\"r in range track by $index\" class=\"sr-only\">({{ $index < value ? '*' : ' ' }})</span>\n"+"    <i ng-repeat-end ng-mouseenter=\"enter($index + 1)\" ng-click=\"rate($index + 1)\" class=\"glyphicon\" ng-class=\"$index < value && (r.stateOn || 'glyphicon-star') || (r.stateOff || 'glyphicon-star-empty')\" ng-attr-title=\"{{r.title}}\" aria-valuetext=\"{{r.title}}\"></i>\n"+"</span>\n"+"");}]);angular.module("template/tabs/tab.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/tabs/tab.html","<li ng-class=\"{active: active, disabled: disabled}\">\n"+"  <a href ng-click=\"select()\" uib-tab-heading-transclude>{{heading}}</a>\n"+"</li>\n"+"");}]);angular.module("template/tabs/tabset.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/tabs/tabset.html","<div>\n"+"  <ul class=\"nav nav-{{type || 'tabs'}}\" ng-class=\"{'nav-stacked': vertical, 'nav-justified': justified}\" ng-transclude></ul>\n"+"  <div class=\"tab-content\">\n"+"    <div class=\"tab-pane\" \n"+"         ng-repeat=\"tab in tabs\" \n"+"         ng-class=\"{active: tab.active}\"\n"+"         uib-tab-content-transclude=\"tab\">\n"+"    </div>\n"+"  </div>\n"+"</div>\n"+"");}]);angular.module("template/timepicker/timepicker.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/timepicker/timepicker.html","<table>\n"+"  <tbody>\n"+"    <tr class=\"text-center\" ng-show=\"::showSpinners\">\n"+"      <td><a ng-click=\"incrementHours()\" ng-class=\"{disabled: noIncrementHours()}\" class=\"btn btn-link\" ng-disabled=\"noIncrementHours()\" tabindex=\"{{::tabindex}}\"><span class=\"glyphicon glyphicon-chevron-up\"></span></a></td>\n"+"      <td>&nbsp;</td>\n"+"      <td><a ng-click=\"incrementMinutes()\" ng-class=\"{disabled: noIncrementMinutes()}\" class=\"btn btn-link\" ng-disabled=\"noIncrementMinutes()\" tabindex=\"{{::tabindex}}\"><span class=\"glyphicon glyphicon-chevron-up\"></span></a></td>\n"+"      <td ng-show=\"showMeridian\"></td>\n"+"    </tr>\n"+"    <tr>\n"+"      <td class=\"form-group\" ng-class=\"{'has-error': invalidHours}\">\n"+"        <input style=\"width:50px;\" type=\"text\" ng-model=\"hours\" ng-change=\"updateHours()\" class=\"form-control text-center\" ng-readonly=\"::readonlyInput\" maxlength=\"2\" tabindex=\"{{::tabindex}}\">\n"+"      </td>\n"+"      <td>:</td>\n"+"      <td class=\"form-group\" ng-class=\"{'has-error': invalidMinutes}\">\n"+"        <input style=\"width:50px;\" type=\"text\" ng-model=\"minutes\" ng-change=\"updateMinutes()\" class=\"form-control text-center\" ng-readonly=\"::readonlyInput\" maxlength=\"2\" tabindex=\"{{::tabindex}}\">\n"+"      </td>\n"+"      <td ng-show=\"showMeridian\"><button type=\"button\" ng-class=\"{disabled: noToggleMeridian()}\" class=\"btn btn-default text-center\" ng-click=\"toggleMeridian()\" ng-disabled=\"noToggleMeridian()\" tabindex=\"{{::tabindex}}\">{{meridian}}</button></td>\n"+"    </tr>\n"+"    <tr class=\"text-center\" ng-show=\"::showSpinners\">\n"+"      <td><a ng-click=\"decrementHours()\" ng-class=\"{disabled: noDecrementHours()}\" class=\"btn btn-link\" ng-disabled=\"noDecrementHours()\" tabindex=\"{{::tabindex}}\"><span class=\"glyphicon glyphicon-chevron-down\"></span></a></td>\n"+"      <td>&nbsp;</td>\n"+"      <td><a ng-click=\"decrementMinutes()\" ng-class=\"{disabled: noDecrementMinutes()}\" class=\"btn btn-link\" ng-disabled=\"noDecrementMinutes()\" tabindex=\"{{::tabindex}}\"><span class=\"glyphicon glyphicon-chevron-down\"></span></a></td>\n"+"      <td ng-show=\"showMeridian\"></td>\n"+"    </tr>\n"+"  </tbody>\n"+"</table>\n"+"");}]);angular.module("template/typeahead/typeahead-match.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/typeahead/typeahead-match.html","<a href tabindex=\"-1\" ng-bind-html=\"match.label | uibTypeaheadHighlight:query\"></a>\n"+"");}]);angular.module("template/typeahead/typeahead-popup.html",[]).run(["$templateCache",function($templateCache){$templateCache.put("template/typeahead/typeahead-popup.html","<ul class=\"dropdown-menu\" ng-show=\"isOpen() && !moveInProgress\" ng-style=\"{top: position().top+'px', left: position().left+'px'}\" style=\"display: block;\" role=\"listbox\" aria-hidden=\"{{!isOpen()}}\">\n"+"    <li ng-repeat=\"match in matches track by $index\" ng-class=\"{active: isActive($index) }\" ng-mouseenter=\"selectActive($index)\" ng-click=\"selectMatch($index)\" role=\"option\" id=\"{{::match.id}}\">\n"+"        <div uib-typeahead-match index=\"$index\" match=\"match\" query=\"query\" template-url=\"templateUrl\"></div>\n"+"    </li>\n"+"</ul>\n"+"");}]);!angular.$$csp()&&angular.element(document).find('head').prepend('<style type="text/css">.ng-animate.item:not(.left):not(.right){-webkit-transition:0s ease-in-out left;transition:0s ease-in-out left}</style>');(function(){'use strict';angular.module('http-auth-interceptor',['http-auth-interceptor-buffer']).factory('authService',['$rootScope','httpBuffer',function($rootScope,httpBuffer){return{loginConfirmed:function(data,configUpdater){var updater=configUpdater||function(config){return config;};$rootScope.$broadcast('event:auth-loginConfirmed',data);httpBuffer.retryAll(updater);},loginCancelled:function(data,reason){httpBuffer.rejectAll(reason);$rootScope.$broadcast('event:auth-loginCancelled',data);}};}]).config(['$httpProvider',function($httpProvider){$httpProvider.interceptors.push(['$rootScope','$q','httpBuffer',function($rootScope,$q,httpBuffer){return{responseError:function(rejection){if(!rejection.config.ignoreAuthModule){switch(rejection.status){case 401:var deferred=$q.defer();httpBuffer.append(rejection.config,deferred);$rootScope.$broadcast('event:auth-loginRequired',rejection);return deferred.promise;case 403:$rootScope.$broadcast('event:auth-forbidden',rejection);break;}}
return $q.reject(rejection);}};}]);}]);angular.module('http-auth-interceptor-buffer',[]).factory('httpBuffer',['$injector',function($injector){var buffer=[];var $http;function retryHttpRequest(config,deferred){function successCallback(response){deferred.resolve(response);}
function errorCallback(response){deferred.reject(response);}
$http=$http||$injector.get('$http');$http(config).then(successCallback,errorCallback);}
return{append:function(config,deferred){buffer.push({config:config,deferred:deferred});},rejectAll:function(reason){if(reason){for(var i=0;i<buffer.length;++i){buffer[i].deferred.reject(reason);}}
buffer=[];},retryAll:function(updater){for(var i=0;i<buffer.length;++i){retryHttpRequest(updater(buffer[i].config),buffer[i].deferred);}
buffer=[];}};}]);})();(function(){angular.module('angular-storage',['angular-storage.store']);angular.module('angular-storage.cookieStorage',[]).service('cookieStorage',["$injector",function($injector){var $cookieStore=$injector.get('$cookieStore');this.set=function(what,value){return $cookieStore.put(what,value);};this.get=function(what){return $cookieStore.get(what);};this.remove=function(what){return $cookieStore.remove(what);};}]);angular.module('angular-storage.internalStore',['angular-storage.localStorage','angular-storage.sessionStorage']).factory('InternalStore',["$log","$injector",function($log,$injector){function InternalStore(namespace,storage,delimiter){this.namespace=namespace||null;this.delimiter=delimiter||'.';this.inMemoryCache={};this.storage=$injector.get(storage||'localStorage');}
InternalStore.prototype.getNamespacedKey=function(key){if(!this.namespace){return key;}else{return[this.namespace,key].join(this.delimiter);}};InternalStore.prototype.set=function(name,elem){this.inMemoryCache[name]=elem;this.storage.set(this.getNamespacedKey(name),JSON.stringify(elem));};InternalStore.prototype.get=function(name){var obj=null;if(name in this.inMemoryCache){return this.inMemoryCache[name];}
var saved=this.storage.get(this.getNamespacedKey(name));try{if(typeof saved==='undefined'||saved==='undefined'){obj=undefined;}else{obj=JSON.parse(saved);}
this.inMemoryCache[name]=obj;}catch(e){$log.error('Error parsing saved value',e);this.remove(name);}
return obj;};InternalStore.prototype.remove=function(name){this.inMemoryCache[name]=null;this.storage.remove(this.getNamespacedKey(name));};return InternalStore;}]);angular.module('angular-storage.localStorage',['angular-storage.cookieStorage']).service('localStorage',["$window","$injector",function($window,$injector){var localStorageAvailable;try{$window.localStorage.setItem('testKey','test');$window.localStorage.removeItem('testKey');localStorageAvailable=true;}catch(e){localStorageAvailable=false;}
if(localStorageAvailable){this.set=function(what,value){return $window.localStorage.setItem(what,value);};this.get=function(what){return $window.localStorage.getItem(what);};this.remove=function(what){return $window.localStorage.removeItem(what);};}else{var cookieStorage=$injector.get('cookieStorage');this.set=cookieStorage.set;this.get=cookieStorage.get;this.remove=cookieStorage.remove;}}]);angular.module('angular-storage.sessionStorage',['angular-storage.cookieStorage']).service('sessionStorage',["$window","$injector",function($window,$injector){var sessionStorageAvailable;try{$window.sessionStorage.setItem('testKey','test');$window.sessionStorage.removeItem('testKey');sessionStorageAvailable=true;}catch(e){sessionStorageAvailable=false;}
if(sessionStorageAvailable){this.set=function(what,value){return $window.sessionStorage.setItem(what,value);};this.get=function(what){return $window.sessionStorage.getItem(what);};this.remove=function(what){return $window.sessionStorage.removeItem(what);};}else{var cookieStorage=$injector.get('cookieStorage');this.set=cookieStorage.set;this.get=cookieStorage.get;this.remove=cookieStorage.remove;}}]);angular.module('angular-storage.store',['angular-storage.internalStore']).provider('store',function(){var _storage='localStorage';this.setStore=function(storage){if(storage&&angular.isString(storage)){_storage=storage;}};this.$get=["InternalStore",function(InternalStore){var store=new InternalStore(null,_storage);store.getNamespacedStore=function(namespace,storage,key){return new InternalStore(namespace,storage,key);};return store;}];});}());(function(){angular.module('bn-lazyload',[]).directive('bnLazySrc',bnLazySrc);bnLazySrc.$inject=['$window','$document'];function bnLazySrc($window,$document){var lazyLoader=(function(){var images=[];var renderTimer=null;var renderDelay=200;var win=$($window);var doc=$document;var documentHeight=doc.height();var documentTimer=null;var documentDelay=2000;var isWatchingWindow=false;function addImage(image){image.putOnInvisibleCss();images.push(image);if(!renderTimer){startRenderTimer();}
if(!isWatchingWindow){startWatchingWindow();}}
function removeImage(image){for(var i=0;i<images.length;i++){if(images[i]===image){images.splice(i,1);break;}}
if(!images.length){clearRenderTimer();stopWatchingWindow();}}
function checkDocumentHeight(){if(renderTimer){return;}
var currentDocumentHeight=doc.height();if(currentDocumentHeight===documentHeight){return;}
documentHeight=currentDocumentHeight;startRenderTimer();}
function checkImages(){var visible=[];var hidden=[];var windowHeight=win.height();var scrollTop=win.scrollTop();var topFoldOffset=scrollTop;var bottomFoldOffset=(topFoldOffset+windowHeight);for(var i=0;i<images.length;i++){var image=images[i];if(image.isVisible(topFoldOffset,bottomFoldOffset)){visible.push(image);}else{hidden.push(image);}}
for(var i=0;i<visible.length;i++){visible[i].render();}
images=hidden;clearRenderTimer();if(!images.length){stopWatchingWindow();}}
function clearRenderTimer(){clearTimeout(renderTimer);renderTimer=null;}
function startRenderTimer(){renderTimer=setTimeout(checkImages,renderDelay);}
function startWatchingWindow(){isWatchingWindow=true;win.on("resize.bnLazySrc",windowChanged);win.on("scroll.bnLazySrc",windowChanged);documentTimer=setInterval(checkDocumentHeight,documentDelay);}
function stopWatchingWindow(){isWatchingWindow=false;win.off("resize.bnLazySrc");win.off("scroll.bnLazySrc");clearInterval(documentTimer);}
function windowChanged(){if(!renderTimer){startRenderTimer();}}
return({addImage:addImage,removeImage:removeImage});})();function LazyImage(element){var source=null;var isRendered=false;var height=null;function isVisible(topFoldOffset,bottomFoldOffset){if(!element.is(":visible")){return(false);}
if(height===null){height=element.height();}
var top=element.offset().top;var bottom=(top+height);return(((top-1000<=bottomFoldOffset)&&(top>=topFoldOffset))||((bottom<=bottomFoldOffset)&&(bottom>=topFoldOffset))||((top<=topFoldOffset)&&(bottom>=bottomFoldOffset)));}
function render(){isRendered=true;renderSource();}
function setSource(newSource){source=newSource;if(isRendered){renderSource();}}
function renderSource(){element.css({'opacity':1,})
element[0].src=source;}
function putOnInvisibleCss(){element.css({'opacity':0,'-webkit-transition':'opacity 1s','transition':'opacity 1s'});}
return({isVisible:isVisible,render:render,setSource:setSource,putOnInvisibleCss:putOnInvisibleCss});}
function link($scope,element,attributes){var lazyImage=new LazyImage(element);lazyLoader.addImage(lazyImage);attributes.$observe("bnLazySrc",function(newSource){lazyImage.setSource(newSource);});$scope.$on("$destroy",function(){lazyLoader.removeImage(lazyImage);});}
return({link:link,restrict:"A"});}})();(function($){$.isScrollToFixed=function(el){return!!$(el).data('ScrollToFixed');};$.ScrollToFixed=function(el,options){var base=this;base.$el=$(el);base.el=el;base.$el.data('ScrollToFixed',base);var isReset=false;var target=base.$el;var position;var originalPosition;var originalFloat;var originalOffsetTop;var originalZIndex;var offsetTop=0;var offsetLeft=0;var originalOffsetLeft=-1;var lastOffsetLeft=-1;var spacer=null;var spacerClass;var className;function resetScroll(){target.trigger('preUnfixed.ScrollToFixed');setUnfixed();target.trigger('unfixed.ScrollToFixed');lastOffsetLeft=-1;offsetTop=target.offset().top;offsetLeft=target.offset().left;if(base.options.offsets){offsetLeft+=(target.offset().left-target.position().left);}
if(originalOffsetLeft==-1){originalOffsetLeft=offsetLeft;}
position=target.css('position');isReset=true;if(base.options.bottom!=-1){target.trigger('preFixed.ScrollToFixed');setFixed();target.trigger('fixed.ScrollToFixed');}}
function getLimit(){var limit=base.options.limit;if(!limit)return 0;if(typeof(limit)==='function'){return limit.apply(target);}
return limit;}
function isFixed(){return position==='fixed';}
function isAbsolute(){return position==='absolute';}
function isUnfixed(){return!(isFixed()||isAbsolute());}
function setFixed(){if(!isFixed()){var dimensions=target[0].getBoundingClientRect();spacer.css({'display':target.css('display'),'width':dimensions.width,'height':dimensions.height,'float':target.css('float')});cssOptions={'z-index':base.options.zIndex,'position':'fixed','top':base.options.bottom==-1?getMarginTop():'','bottom':base.options.bottom==-1?'':base.options.bottom,'margin-left':'0px'}
if(!base.options.dontSetWidth){cssOptions['width']=target.css('width');};target.css(cssOptions);target.addClass(base.options.baseClassName);if(base.options.className){target.addClass(base.options.className);}
position='fixed';}}
function setAbsolute(){var top=getLimit();var left=offsetLeft;if(base.options.removeOffsets){left='';top=top-offsetTop;}
cssOptions={'position':'absolute','top':top,'left':left,'margin-left':'0px','bottom':''}
if(!base.options.dontSetWidth){cssOptions['width']=target.css('width');};target.css(cssOptions);position='absolute';}
function setUnfixed(){if(!isUnfixed()){lastOffsetLeft=-1;spacer.css('display','none');target.css({'z-index':originalZIndex,'width':'','position':originalPosition,'left':'','top':originalOffsetTop,'margin-left':''});target.removeClass('scroll-to-fixed-fixed');if(base.options.className){target.removeClass(base.options.className);}
position=null;}}
function setLeft(x){if(x!=lastOffsetLeft){target.css('left',offsetLeft-x);lastOffsetLeft=x;}}
function getMarginTop(){var marginTop=base.options.marginTop;if(!marginTop)return 0;if(typeof(marginTop)==='function'){return marginTop.apply(target);}
return marginTop;}
function checkScroll(){if(!$.isScrollToFixed(target)||target.is(':hidden'))return;var wasReset=isReset;var wasUnfixed=isUnfixed();if(!isReset){resetScroll();}else if(isUnfixed()){offsetTop=target.offset().top;offsetLeft=target.offset().left;}
var x=$(window).scrollLeft();var y=$(window).scrollTop();var limit=getLimit();if(base.options.minWidth&&$(window).width()<base.options.minWidth){if(!isUnfixed()||!wasReset){postPosition();target.trigger('preUnfixed.ScrollToFixed');setUnfixed();target.trigger('unfixed.ScrollToFixed');}}else if(base.options.maxWidth&&$(window).width()>base.options.maxWidth){if(!isUnfixed()||!wasReset){postPosition();target.trigger('preUnfixed.ScrollToFixed');setUnfixed();target.trigger('unfixed.ScrollToFixed');}}else if(base.options.bottom==-1){if(limit>0&&y>=limit-getMarginTop()){if(!wasUnfixed&&(!isAbsolute()||!wasReset)){postPosition();target.trigger('preAbsolute.ScrollToFixed');setAbsolute();target.trigger('unfixed.ScrollToFixed');}}else if(y>=offsetTop-getMarginTop()){if(!isFixed()||!wasReset){postPosition();target.trigger('preFixed.ScrollToFixed');setFixed();lastOffsetLeft=-1;target.trigger('fixed.ScrollToFixed');}
setLeft(x);}else{if(!isUnfixed()||!wasReset){postPosition();target.trigger('preUnfixed.ScrollToFixed');setUnfixed();target.trigger('unfixed.ScrollToFixed');}}}else{if(limit>0){if(y+$(window).height()-target.outerHeight(true)>=limit-(getMarginTop()||-getBottom())){if(isFixed()){postPosition();target.trigger('preUnfixed.ScrollToFixed');if(originalPosition==='absolute'){setAbsolute();}else{setUnfixed();}
target.trigger('unfixed.ScrollToFixed');}}else{if(!isFixed()){postPosition();target.trigger('preFixed.ScrollToFixed');setFixed();}
setLeft(x);target.trigger('fixed.ScrollToFixed');}}else{setLeft(x);}}}
function getBottom(){if(!base.options.bottom)return 0;return base.options.bottom;}
function postPosition(){var position=target.css('position');if(position=='absolute'){target.trigger('postAbsolute.ScrollToFixed');}else if(position=='fixed'){target.trigger('postFixed.ScrollToFixed');}else{target.trigger('postUnfixed.ScrollToFixed');}}
var windowResize=function(event){if(target.is(':visible')){isReset=false;checkScroll();}else{setUnfixed();}}
var windowScroll=function(event){(!!window.requestAnimationFrame)?requestAnimationFrame(checkScroll):checkScroll();}
var isPositionFixedSupported=function(){var container=document.body;if(document.createElement&&container&&container.appendChild&&container.removeChild){var el=document.createElement('div');if(!el.getBoundingClientRect)return null;el.innerHTML='x';el.style.cssText='position:fixed;top:100px;';container.appendChild(el);var originalHeight=container.style.height,originalScrollTop=container.scrollTop;container.style.height='3000px';container.scrollTop=500;var elementTop=el.getBoundingClientRect().top;container.style.height=originalHeight;var isSupported=(elementTop===100);container.removeChild(el);container.scrollTop=originalScrollTop;return isSupported;}
return null;}
var preventDefault=function(e){e=e||window.event;if(e.preventDefault){e.preventDefault();}
e.returnValue=false;}
base.init=function(){base.options=$.extend({},$.ScrollToFixed.defaultOptions,options);originalZIndex=target.css('z-index')
base.$el.css('z-index',base.options.zIndex);spacer=$('<div />');position=target.css('position');originalPosition=target.css('position');originalFloat=target.css('float');originalOffsetTop=target.css('top');if(isUnfixed())base.$el.after(spacer);$(window).bind('resize.ScrollToFixed',windowResize);$(window).bind('scroll.ScrollToFixed',windowScroll);if('ontouchmove'in window){$(window).bind('touchmove.ScrollToFixed',checkScroll);}
if(base.options.preFixed){target.bind('preFixed.ScrollToFixed',base.options.preFixed);}
if(base.options.postFixed){target.bind('postFixed.ScrollToFixed',base.options.postFixed);}
if(base.options.preUnfixed){target.bind('preUnfixed.ScrollToFixed',base.options.preUnfixed);}
if(base.options.postUnfixed){target.bind('postUnfixed.ScrollToFixed',base.options.postUnfixed);}
if(base.options.preAbsolute){target.bind('preAbsolute.ScrollToFixed',base.options.preAbsolute);}
if(base.options.postAbsolute){target.bind('postAbsolute.ScrollToFixed',base.options.postAbsolute);}
if(base.options.fixed){target.bind('fixed.ScrollToFixed',base.options.fixed);}
if(base.options.unfixed){target.bind('unfixed.ScrollToFixed',base.options.unfixed);}
if(base.options.spacerClass){spacer.addClass(base.options.spacerClass);}
target.bind('resize.ScrollToFixed',function(){spacer.height(target.height());});target.bind('scroll.ScrollToFixed',function(){target.trigger('preUnfixed.ScrollToFixed');setUnfixed();target.trigger('unfixed.ScrollToFixed');checkScroll();});target.bind('detach.ScrollToFixed',function(ev){preventDefault(ev);target.trigger('preUnfixed.ScrollToFixed');setUnfixed();target.trigger('unfixed.ScrollToFixed');$(window).unbind('resize.ScrollToFixed',windowResize);$(window).unbind('scroll.ScrollToFixed',windowScroll);target.unbind('.ScrollToFixed');spacer.remove();base.$el.removeData('ScrollToFixed');});windowResize();};base.init();};$.ScrollToFixed.defaultOptions={marginTop:0,limit:0,bottom:-1,zIndex:1000,baseClassName:'scroll-to-fixed-fixed'};$.fn.scrollToFixed=function(options){return this.each(function(){(new $.ScrollToFixed(this,options));});};})(jQuery);(function(window,angular,undefined){'use strict';var noop=angular.noop;var extend=angular.extend;var jqLite=angular.element;var forEach=angular.forEach;var isArray=angular.isArray;var isString=angular.isString;var isObject=angular.isObject;var isUndefined=angular.isUndefined;var isDefined=angular.isDefined;var isFunction=angular.isFunction;var isElement=angular.isElement;var ELEMENT_NODE=1;var COMMENT_NODE=8;var ADD_CLASS_SUFFIX='-add';var REMOVE_CLASS_SUFFIX='-remove';var EVENT_CLASS_PREFIX='ng-';var ACTIVE_CLASS_SUFFIX='-active';var NG_ANIMATE_CLASSNAME='ng-animate';var NG_ANIMATE_CHILDREN_DATA='$$ngAnimateChildren';var CSS_PREFIX='',TRANSITION_PROP,TRANSITIONEND_EVENT,ANIMATION_PROP,ANIMATIONEND_EVENT;if(window.ontransitionend===undefined&&window.onwebkittransitionend!==undefined){CSS_PREFIX='-webkit-';TRANSITION_PROP='WebkitTransition';TRANSITIONEND_EVENT='webkitTransitionEnd transitionend';}else{TRANSITION_PROP='transition';TRANSITIONEND_EVENT='transitionend';}
if(window.onanimationend===undefined&&window.onwebkitanimationend!==undefined){CSS_PREFIX='-webkit-';ANIMATION_PROP='WebkitAnimation';ANIMATIONEND_EVENT='webkitAnimationEnd animationend';}else{ANIMATION_PROP='animation';ANIMATIONEND_EVENT='animationend';}
var DURATION_KEY='Duration';var PROPERTY_KEY='Property';var DELAY_KEY='Delay';var TIMING_KEY='TimingFunction';var ANIMATION_ITERATION_COUNT_KEY='IterationCount';var ANIMATION_PLAYSTATE_KEY='PlayState';var SAFE_FAST_FORWARD_DURATION_VALUE=9999;var ANIMATION_DELAY_PROP=ANIMATION_PROP+DELAY_KEY;var ANIMATION_DURATION_PROP=ANIMATION_PROP+DURATION_KEY;var TRANSITION_DELAY_PROP=TRANSITION_PROP+DELAY_KEY;var TRANSITION_DURATION_PROP=TRANSITION_PROP+DURATION_KEY;var isPromiseLike=function(p){return p&&p.then?true:false;};function assertArg(arg,name,reason){if(!arg){throw ngMinErr('areq',"Argument '{0}' is {1}",(name||'?'),(reason||"required"));}
return arg;}
function mergeClasses(a,b){if(!a&&!b)return'';if(!a)return b;if(!b)return a;if(isArray(a))a=a.join(' ');if(isArray(b))b=b.join(' ');return a+' '+b;}
function packageStyles(options){var styles={};if(options&&(options.to||options.from)){styles.to=options.to;styles.from=options.from;}
return styles;}
function pendClasses(classes,fix,isPrefix){var className='';classes=isArray(classes)?classes:classes&&isString(classes)&&classes.length?classes.split(/\s+/):[];forEach(classes,function(klass,i){if(klass&&klass.length>0){className+=(i>0)?' ':'';className+=isPrefix?fix+klass:klass+fix;}});return className;}
function removeFromArray(arr,val){var index=arr.indexOf(val);if(val>=0){arr.splice(index,1);}}
function stripCommentsFromElement(element){if(element instanceof jqLite){switch(element.length){case 0:return[];break;case 1:if(element[0].nodeType===ELEMENT_NODE){return element;}
break;default:return jqLite(extractElementNode(element));break;}}
if(element.nodeType===ELEMENT_NODE){return jqLite(element);}}
function extractElementNode(element){if(!element[0])return element;for(var i=0;i<element.length;i++){var elm=element[i];if(elm.nodeType==ELEMENT_NODE){return elm;}}}
function $$addClass($$jqLite,element,className){forEach(element,function(elm){$$jqLite.addClass(elm,className);});}
function $$removeClass($$jqLite,element,className){forEach(element,function(elm){$$jqLite.removeClass(elm,className);});}
function applyAnimationClassesFactory($$jqLite){return function(element,options){if(options.addClass){$$addClass($$jqLite,element,options.addClass);options.addClass=null;}
if(options.removeClass){$$removeClass($$jqLite,element,options.removeClass);options.removeClass=null;}}}
function prepareAnimationOptions(options){options=options||{};if(!options.$$prepared){var domOperation=options.domOperation||noop;options.domOperation=function(){options.$$domOperationFired=true;domOperation();domOperation=noop;};options.$$prepared=true;}
return options;}
function applyAnimationStyles(element,options){applyAnimationFromStyles(element,options);applyAnimationToStyles(element,options);}
function applyAnimationFromStyles(element,options){if(options.from){element.css(options.from);options.from=null;}}
function applyAnimationToStyles(element,options){if(options.to){element.css(options.to);options.to=null;}}
function mergeAnimationOptions(element,target,newOptions){var toAdd=(target.addClass||'')+' '+(newOptions.addClass||'');var toRemove=(target.removeClass||'')+' '+(newOptions.removeClass||'');var classes=resolveElementClasses(element.attr('class'),toAdd,toRemove);if(newOptions.preparationClasses){target.preparationClasses=concatWithSpace(newOptions.preparationClasses,target.preparationClasses);delete newOptions.preparationClasses;}
var realDomOperation=target.domOperation!==noop?target.domOperation:null;extend(target,newOptions);if(realDomOperation){target.domOperation=realDomOperation;}
if(classes.addClass){target.addClass=classes.addClass;}else{target.addClass=null;}
if(classes.removeClass){target.removeClass=classes.removeClass;}else{target.removeClass=null;}
return target;}
function resolveElementClasses(existing,toAdd,toRemove){var ADD_CLASS=1;var REMOVE_CLASS=-1;var flags={};existing=splitClassesToLookup(existing);toAdd=splitClassesToLookup(toAdd);forEach(toAdd,function(value,key){flags[key]=ADD_CLASS;});toRemove=splitClassesToLookup(toRemove);forEach(toRemove,function(value,key){flags[key]=flags[key]===ADD_CLASS?null:REMOVE_CLASS;});var classes={addClass:'',removeClass:''};forEach(flags,function(val,klass){var prop,allow;if(val===ADD_CLASS){prop='addClass';allow=!existing[klass];}else if(val===REMOVE_CLASS){prop='removeClass';allow=existing[klass];}
if(allow){if(classes[prop].length){classes[prop]+=' ';}
classes[prop]+=klass;}});function splitClassesToLookup(classes){if(isString(classes)){classes=classes.split(' ');}
var obj={};forEach(classes,function(klass){if(klass.length){obj[klass]=true;}});return obj;}
return classes;}
function getDomNode(element){return(element instanceof angular.element)?element[0]:element;}
function applyGeneratedPreparationClasses(element,event,options){var classes='';if(event){classes=pendClasses(event,EVENT_CLASS_PREFIX,true);}
if(options.addClass){classes=concatWithSpace(classes,pendClasses(options.addClass,ADD_CLASS_SUFFIX));}
if(options.removeClass){classes=concatWithSpace(classes,pendClasses(options.removeClass,REMOVE_CLASS_SUFFIX));}
if(classes.length){options.preparationClasses=classes;element.addClass(classes);}}
function clearGeneratedClasses(element,options){if(options.preparationClasses){element.removeClass(options.preparationClasses);options.preparationClasses=null;}
if(options.activeClasses){element.removeClass(options.activeClasses);options.activeClasses=null;}}
function blockTransitions(node,duration){var value=duration?'-'+duration+'s':'';applyInlineStyle(node,[TRANSITION_DELAY_PROP,value]);return[TRANSITION_DELAY_PROP,value];}
function blockKeyframeAnimations(node,applyBlock){var value=applyBlock?'paused':'';var key=ANIMATION_PROP+ANIMATION_PLAYSTATE_KEY;applyInlineStyle(node,[key,value]);return[key,value];}
function applyInlineStyle(node,styleTuple){var prop=styleTuple[0];var value=styleTuple[1];node.style[prop]=value;}
function concatWithSpace(a,b){if(!a)return b;if(!b)return a;return a+' '+b;}
function $$BodyProvider(){this.$get=['$document',function($document){return jqLite($document[0].body);}];}
var $$AnimateChildrenDirective=[function(){return function(scope,element,attrs){var val=attrs.ngAnimateChildren;if(angular.isString(val)&&val.length===0){element.data(NG_ANIMATE_CHILDREN_DATA,true);}else{attrs.$observe('ngAnimateChildren',function(value){value=value==='on'||value==='true';element.data(NG_ANIMATE_CHILDREN_DATA,value);});}};}];var ONE_SECOND=1000;var BASE_TEN=10;var ELAPSED_TIME_MAX_DECIMAL_PLACES=3;var CLOSING_TIME_BUFFER=1.5;var DETECT_CSS_PROPERTIES={transitionDuration:TRANSITION_DURATION_PROP,transitionDelay:TRANSITION_DELAY_PROP,transitionProperty:TRANSITION_PROP+PROPERTY_KEY,animationDuration:ANIMATION_DURATION_PROP,animationDelay:ANIMATION_DELAY_PROP,animationIterationCount:ANIMATION_PROP+ANIMATION_ITERATION_COUNT_KEY};var DETECT_STAGGER_CSS_PROPERTIES={transitionDuration:TRANSITION_DURATION_PROP,transitionDelay:TRANSITION_DELAY_PROP,animationDuration:ANIMATION_DURATION_PROP,animationDelay:ANIMATION_DELAY_PROP};function getCssKeyframeDurationStyle(duration){return[ANIMATION_DURATION_PROP,duration+'s'];}
function getCssDelayStyle(delay,isKeyframeAnimation){var prop=isKeyframeAnimation?ANIMATION_DELAY_PROP:TRANSITION_DELAY_PROP;return[prop,delay+'s'];}
function computeCssStyles($window,element,properties){var styles=Object.create(null);var detectedStyles=$window.getComputedStyle(element)||{};forEach(properties,function(formalStyleName,actualStyleName){var val=detectedStyles[formalStyleName];if(val){var c=val.charAt(0);if(c==='-'||c==='+'||c>=0){val=parseMaxTime(val);}
if(val===0){val=null;}
styles[actualStyleName]=val;}});return styles;}
function parseMaxTime(str){var maxValue=0;var values=str.split(/\s*,\s*/);forEach(values,function(value){if(value.charAt(value.length-1)=='s'){value=value.substring(0,value.length-1);}
value=parseFloat(value)||0;maxValue=maxValue?Math.max(value,maxValue):value;});return maxValue;}
function truthyTimingValue(val){return val===0||val!=null;}
function getCssTransitionDurationStyle(duration,applyOnlyDuration){var style=TRANSITION_PROP;var value=duration+'s';if(applyOnlyDuration){style+=DURATION_KEY;}else{value+=' linear all';}
return[style,value];}
function createLocalCacheLookup(){var cache=Object.create(null);return{flush:function(){cache=Object.create(null);},count:function(key){var entry=cache[key];return entry?entry.total:0;},get:function(key){var entry=cache[key];return entry&&entry.value;},put:function(key,value){if(!cache[key]){cache[key]={total:1,value:value};}else{cache[key].total++;}}};}
var $AnimateCssProvider=['$animateProvider',function($animateProvider){var gcsLookup=createLocalCacheLookup();var gcsStaggerLookup=createLocalCacheLookup();this.$get=['$window','$$jqLite','$$AnimateRunner','$timeout','$$forceReflow','$sniffer','$$rAF',function($window,$$jqLite,$$AnimateRunner,$timeout,$$forceReflow,$sniffer,$$rAF){var applyAnimationClasses=applyAnimationClassesFactory($$jqLite);var parentCounter=0;function gcsHashFn(node,extraClasses){var KEY="$$ngAnimateParentKey";var parentNode=node.parentNode;var parentID=parentNode[KEY]||(parentNode[KEY]=++parentCounter);return parentID+'-'+node.getAttribute('class')+'-'+extraClasses;}
function computeCachedCssStyles(node,className,cacheKey,properties){var timings=gcsLookup.get(cacheKey);if(!timings){timings=computeCssStyles($window,node,properties);if(timings.animationIterationCount==='infinite'){timings.animationIterationCount=1;}}
gcsLookup.put(cacheKey,timings);return timings;}
function computeCachedCssStaggerStyles(node,className,cacheKey,properties){var stagger;if(gcsLookup.count(cacheKey)>0){stagger=gcsStaggerLookup.get(cacheKey);if(!stagger){var staggerClassName=pendClasses(className,'-stagger');$$jqLite.addClass(node,staggerClassName);stagger=computeCssStyles($window,node,properties);stagger.animationDuration=Math.max(stagger.animationDuration,0);stagger.transitionDuration=Math.max(stagger.transitionDuration,0);$$jqLite.removeClass(node,staggerClassName);gcsStaggerLookup.put(cacheKey,stagger);}}
return stagger||{};}
var cancelLastRAFRequest;var rafWaitQueue=[];function waitUntilQuiet(callback){if(cancelLastRAFRequest){cancelLastRAFRequest();}
rafWaitQueue.push(callback);cancelLastRAFRequest=$$rAF(function(){cancelLastRAFRequest=null;gcsLookup.flush();gcsStaggerLookup.flush();var pageWidth=$$forceReflow();for(var i=0;i<rafWaitQueue.length;i++){rafWaitQueue[i](pageWidth);}
rafWaitQueue.length=0;});}
return init;function computeTimings(node,className,cacheKey){var timings=computeCachedCssStyles(node,className,cacheKey,DETECT_CSS_PROPERTIES);var aD=timings.animationDelay;var tD=timings.transitionDelay;timings.maxDelay=aD&&tD?Math.max(aD,tD):(aD||tD);timings.maxDuration=Math.max(timings.animationDuration*timings.animationIterationCount,timings.transitionDuration);return timings;}
function init(element,options){var node=getDomNode(element);if(!node||!node.parentNode){return closeAndReturnNoopAnimator();}
options=prepareAnimationOptions(options);var temporaryStyles=[];var classes=element.attr('class');var styles=packageStyles(options);var animationClosed;var animationPaused;var animationCompleted;var runner;var runnerHost;var maxDelay;var maxDelayTime;var maxDuration;var maxDurationTime;if(options.duration===0||(!$sniffer.animations&&!$sniffer.transitions)){return closeAndReturnNoopAnimator();}
var method=options.event&&isArray(options.event)?options.event.join(' '):options.event;var isStructural=method&&options.structural;var structuralClassName='';var addRemoveClassName='';if(isStructural){structuralClassName=pendClasses(method,EVENT_CLASS_PREFIX,true);}else if(method){structuralClassName=method;}
if(options.addClass){addRemoveClassName+=pendClasses(options.addClass,ADD_CLASS_SUFFIX);}
if(options.removeClass){if(addRemoveClassName.length){addRemoveClassName+=' ';}
addRemoveClassName+=pendClasses(options.removeClass,REMOVE_CLASS_SUFFIX);}
if(options.applyClassesEarly&&addRemoveClassName.length){applyAnimationClasses(element,options);addRemoveClassName='';}
var preparationClasses=[structuralClassName,addRemoveClassName].join(' ').trim();var fullClassName=classes+' '+preparationClasses;var activeClasses=pendClasses(preparationClasses,ACTIVE_CLASS_SUFFIX);var hasToStyles=styles.to&&Object.keys(styles.to).length>0;var containsKeyframeAnimation=(options.keyframeStyle||'').length>0;if(!containsKeyframeAnimation&&!hasToStyles&&!preparationClasses){return closeAndReturnNoopAnimator();}
var cacheKey,stagger;if(options.stagger>0){var staggerVal=parseFloat(options.stagger);stagger={transitionDelay:staggerVal,animationDelay:staggerVal,transitionDuration:0,animationDuration:0};}else{cacheKey=gcsHashFn(node,fullClassName);stagger=computeCachedCssStaggerStyles(node,preparationClasses,cacheKey,DETECT_STAGGER_CSS_PROPERTIES);}
if(!options.$$skipPreparationClasses){$$jqLite.addClass(element,preparationClasses);}
var applyOnlyDuration;if(options.transitionStyle){var transitionStyle=[TRANSITION_PROP,options.transitionStyle];applyInlineStyle(node,transitionStyle);temporaryStyles.push(transitionStyle);}
if(options.duration>=0){applyOnlyDuration=node.style[TRANSITION_PROP].length>0;var durationStyle=getCssTransitionDurationStyle(options.duration,applyOnlyDuration);applyInlineStyle(node,durationStyle);temporaryStyles.push(durationStyle);}
if(options.keyframeStyle){var keyframeStyle=[ANIMATION_PROP,options.keyframeStyle];applyInlineStyle(node,keyframeStyle);temporaryStyles.push(keyframeStyle);}
var itemIndex=stagger?options.staggerIndex>=0?options.staggerIndex:gcsLookup.count(cacheKey):0;var isFirst=itemIndex===0;if(isFirst&&!options.skipBlocking){blockTransitions(node,SAFE_FAST_FORWARD_DURATION_VALUE);}
var timings=computeTimings(node,fullClassName,cacheKey);var relativeDelay=timings.maxDelay;maxDelay=Math.max(relativeDelay,0);maxDuration=timings.maxDuration;var flags={};flags.hasTransitions=timings.transitionDuration>0;flags.hasAnimations=timings.animationDuration>0;flags.hasTransitionAll=flags.hasTransitions&&timings.transitionProperty=='all';flags.applyTransitionDuration=hasToStyles&&((flags.hasTransitions&&!flags.hasTransitionAll)||(flags.hasAnimations&&!flags.hasTransitions));flags.applyAnimationDuration=options.duration&&flags.hasAnimations;flags.applyTransitionDelay=truthyTimingValue(options.delay)&&(flags.applyTransitionDuration||flags.hasTransitions);flags.applyAnimationDelay=truthyTimingValue(options.delay)&&flags.hasAnimations;flags.recalculateTimingStyles=addRemoveClassName.length>0;if(flags.applyTransitionDuration||flags.applyAnimationDuration){maxDuration=options.duration?parseFloat(options.duration):maxDuration;if(flags.applyTransitionDuration){flags.hasTransitions=true;timings.transitionDuration=maxDuration;applyOnlyDuration=node.style[TRANSITION_PROP+PROPERTY_KEY].length>0;temporaryStyles.push(getCssTransitionDurationStyle(maxDuration,applyOnlyDuration));}
if(flags.applyAnimationDuration){flags.hasAnimations=true;timings.animationDuration=maxDuration;temporaryStyles.push(getCssKeyframeDurationStyle(maxDuration));}}
if(maxDuration===0&&!flags.recalculateTimingStyles){return closeAndReturnNoopAnimator();}
if(options.duration==null&&timings.transitionDuration>0){flags.recalculateTimingStyles=flags.recalculateTimingStyles||isFirst;}
maxDelayTime=maxDelay*ONE_SECOND;maxDurationTime=maxDuration*ONE_SECOND;if(!options.skipBlocking){flags.blockTransition=timings.transitionDuration>0;flags.blockKeyframeAnimation=timings.animationDuration>0&&stagger.animationDelay>0&&stagger.animationDuration===0;}
applyAnimationFromStyles(element,options);if(flags.blockTransition||flags.blockKeyframeAnimation){applyBlocking(maxDuration);}else if(!options.skipBlocking){blockTransitions(node,false);}
return{$$willAnimate:true,end:endFn,start:function(){if(animationClosed)return;runnerHost={end:endFn,cancel:cancelFn,resume:null,pause:null};runner=new $$AnimateRunner(runnerHost);waitUntilQuiet(start);return runner;}};function endFn(){close();}
function cancelFn(){close(true);}
function close(rejected){if(animationClosed||(animationCompleted&&animationPaused))return;animationClosed=true;animationPaused=false;if(!options.$$skipPreparationClasses){$$jqLite.removeClass(element,preparationClasses);}
$$jqLite.removeClass(element,activeClasses);blockKeyframeAnimations(node,false);blockTransitions(node,false);forEach(temporaryStyles,function(entry){node.style[entry[0]]='';});applyAnimationClasses(element,options);applyAnimationStyles(element,options);if(options.onDone){options.onDone();}
if(runner){runner.complete(!rejected);}}
function applyBlocking(duration){if(flags.blockTransition){blockTransitions(node,duration);}
if(flags.blockKeyframeAnimation){blockKeyframeAnimations(node,!!duration);}}
function closeAndReturnNoopAnimator(){runner=new $$AnimateRunner({end:endFn,cancel:cancelFn});close();return{$$willAnimate:false,start:function(){return runner;},end:endFn};}
function start(){if(animationClosed)return;if(!node.parentNode){close();return;}
var startTime,events=[];var playPause=function(playAnimation){if(!animationCompleted){animationPaused=!playAnimation;if(timings.animationDuration){var value=blockKeyframeAnimations(node,animationPaused);animationPaused?temporaryStyles.push(value):removeFromArray(temporaryStyles,value);}}else if(animationPaused&&playAnimation){animationPaused=false;close();}};var maxStagger=itemIndex>0&&((timings.transitionDuration&&stagger.transitionDuration===0)||(timings.animationDuration&&stagger.animationDuration===0))&&Math.max(stagger.animationDelay,stagger.transitionDelay);if(maxStagger){$timeout(triggerAnimationStart,Math.floor(maxStagger*itemIndex*ONE_SECOND),false);}else{triggerAnimationStart();}
runnerHost.resume=function(){playPause(true);};runnerHost.pause=function(){playPause(false);};function triggerAnimationStart(){if(animationClosed)return;applyBlocking(false);forEach(temporaryStyles,function(entry){var key=entry[0];var value=entry[1];node.style[key]=value;});applyAnimationClasses(element,options);$$jqLite.addClass(element,activeClasses);if(flags.recalculateTimingStyles){fullClassName=node.className+' '+preparationClasses;cacheKey=gcsHashFn(node,fullClassName);timings=computeTimings(node,fullClassName,cacheKey);relativeDelay=timings.maxDelay;maxDelay=Math.max(relativeDelay,0);maxDuration=timings.maxDuration;if(maxDuration===0){close();return;}
flags.hasTransitions=timings.transitionDuration>0;flags.hasAnimations=timings.animationDuration>0;}
if(flags.applyTransitionDelay||flags.applyAnimationDelay){relativeDelay=typeof options.delay!=="boolean"&&truthyTimingValue(options.delay)?parseFloat(options.delay):relativeDelay;maxDelay=Math.max(relativeDelay,0);var delayStyle;if(flags.applyTransitionDelay){timings.transitionDelay=relativeDelay;delayStyle=getCssDelayStyle(relativeDelay);temporaryStyles.push(delayStyle);node.style[delayStyle[0]]=delayStyle[1];}
if(flags.applyAnimationDelay){timings.animationDelay=relativeDelay;delayStyle=getCssDelayStyle(relativeDelay,true);temporaryStyles.push(delayStyle);node.style[delayStyle[0]]=delayStyle[1];}}
maxDelayTime=maxDelay*ONE_SECOND;maxDurationTime=maxDuration*ONE_SECOND;if(options.easing){var easeProp,easeVal=options.easing;if(flags.hasTransitions){easeProp=TRANSITION_PROP+TIMING_KEY;temporaryStyles.push([easeProp,easeVal]);node.style[easeProp]=easeVal;}
if(flags.hasAnimations){easeProp=ANIMATION_PROP+TIMING_KEY;temporaryStyles.push([easeProp,easeVal]);node.style[easeProp]=easeVal;}}
if(timings.transitionDuration){events.push(TRANSITIONEND_EVENT);}
if(timings.animationDuration){events.push(ANIMATIONEND_EVENT);}
startTime=Date.now();element.on(events.join(' '),onAnimationProgress);$timeout(onAnimationExpired,maxDelayTime+CLOSING_TIME_BUFFER*maxDurationTime,false);applyAnimationToStyles(element,options);}
function onAnimationExpired(){close();}
function onAnimationProgress(event){event.stopPropagation();var ev=event.originalEvent||event;var timeStamp=ev.$manualTimeStamp||ev.timeStamp||Date.now();var elapsedTime=parseFloat(ev.elapsedTime.toFixed(ELAPSED_TIME_MAX_DECIMAL_PLACES));if(Math.max(timeStamp-startTime,0)>=maxDelayTime&&elapsedTime>=maxDuration){animationCompleted=true;close();}}}}}];}];var $$AnimateCssDriverProvider=['$$animationProvider',function($$animationProvider){$$animationProvider.drivers.push('$$animateCssDriver');var NG_ANIMATE_SHIM_CLASS_NAME='ng-animate-shim';var NG_ANIMATE_ANCHOR_CLASS_NAME='ng-anchor';var NG_OUT_ANCHOR_CLASS_NAME='ng-anchor-out';var NG_IN_ANCHOR_CLASS_NAME='ng-anchor-in';this.$get=['$animateCss','$rootScope','$$AnimateRunner','$rootElement','$$body','$sniffer','$$jqLite',function($animateCss,$rootScope,$$AnimateRunner,$rootElement,$$body,$sniffer,$$jqLite){if(!$sniffer.animations&&!$sniffer.transitions)return noop;var bodyNode=getDomNode($$body);var rootNode=getDomNode($rootElement);var rootBodyElement=jqLite(bodyNode.parentNode===rootNode?bodyNode:rootNode);var applyAnimationClasses=applyAnimationClassesFactory($$jqLite);return function initDriverFn(animationDetails,onBeforeClassesAppliedCb){return animationDetails.from&&animationDetails.to?prepareFromToAnchorAnimation(animationDetails.from,animationDetails.to,animationDetails.classes,animationDetails.anchors):prepareRegularAnimation(animationDetails,onBeforeClassesAppliedCb);};function filterCssClasses(classes){return classes.replace(/\bng-\S+\b/g,'');}
function getUniqueValues(a,b){if(isString(a))a=a.split(' ');if(isString(b))b=b.split(' ');return a.filter(function(val){return b.indexOf(val)===-1;}).join(' ');}
function prepareAnchoredAnimation(classes,outAnchor,inAnchor){var clone=jqLite(getDomNode(outAnchor).cloneNode(true));var startingClasses=filterCssClasses(getClassVal(clone));outAnchor.addClass(NG_ANIMATE_SHIM_CLASS_NAME);inAnchor.addClass(NG_ANIMATE_SHIM_CLASS_NAME);clone.addClass(NG_ANIMATE_ANCHOR_CLASS_NAME);rootBodyElement.append(clone);var animatorIn,animatorOut=prepareOutAnimation();if(!animatorOut){animatorIn=prepareInAnimation();if(!animatorIn){return end();}}
var startingAnimator=animatorOut||animatorIn;return{start:function(){var runner;var currentAnimation=startingAnimator.start();currentAnimation.done(function(){currentAnimation=null;if(!animatorIn){animatorIn=prepareInAnimation();if(animatorIn){currentAnimation=animatorIn.start();currentAnimation.done(function(){currentAnimation=null;end();runner.complete();});return currentAnimation;}}
end();runner.complete();});runner=new $$AnimateRunner({end:endFn,cancel:endFn});return runner;function endFn(){if(currentAnimation){currentAnimation.end();}}}};function calculateAnchorStyles(anchor){var styles={};var coords=getDomNode(anchor).getBoundingClientRect();forEach(['width','height','top','left'],function(key){var value=coords[key];switch(key){case'top':value+=bodyNode.scrollTop;break;case'left':value+=bodyNode.scrollLeft;break;}
styles[key]=Math.floor(value)+'px';});return styles;}
function prepareOutAnimation(){var animator=$animateCss(clone,{addClass:NG_OUT_ANCHOR_CLASS_NAME,delay:true,from:calculateAnchorStyles(outAnchor)});return animator.$$willAnimate?animator:null;}
function getClassVal(element){return element.attr('class')||'';}
function prepareInAnimation(){var endingClasses=filterCssClasses(getClassVal(inAnchor));var toAdd=getUniqueValues(endingClasses,startingClasses);var toRemove=getUniqueValues(startingClasses,endingClasses);var animator=$animateCss(clone,{to:calculateAnchorStyles(inAnchor),addClass:NG_IN_ANCHOR_CLASS_NAME+' '+toAdd,removeClass:NG_OUT_ANCHOR_CLASS_NAME+' '+toRemove,delay:true});return animator.$$willAnimate?animator:null;}
function end(){clone.remove();outAnchor.removeClass(NG_ANIMATE_SHIM_CLASS_NAME);inAnchor.removeClass(NG_ANIMATE_SHIM_CLASS_NAME);}}
function prepareFromToAnchorAnimation(from,to,classes,anchors){var fromAnimation=prepareRegularAnimation(from,noop);var toAnimation=prepareRegularAnimation(to,noop);var anchorAnimations=[];forEach(anchors,function(anchor){var outElement=anchor['out'];var inElement=anchor['in'];var animator=prepareAnchoredAnimation(classes,outElement,inElement);if(animator){anchorAnimations.push(animator);}});if(!fromAnimation&&!toAnimation&&anchorAnimations.length===0)return;return{start:function(){var animationRunners=[];if(fromAnimation){animationRunners.push(fromAnimation.start());}
if(toAnimation){animationRunners.push(toAnimation.start());}
forEach(anchorAnimations,function(animation){animationRunners.push(animation.start());});var runner=new $$AnimateRunner({end:endFn,cancel:endFn});$$AnimateRunner.all(animationRunners,function(status){runner.complete(status);});return runner;function endFn(){forEach(animationRunners,function(runner){runner.end();});}}};}
function prepareRegularAnimation(animationDetails,onBeforeClassesAppliedCb){var element=animationDetails.element;var options=animationDetails.options||{};options.$$skipPreparationClasses=true;options.skipBlocking=true;if(animationDetails.structural){options.event=animationDetails.event;if(animationDetails.event==='leave'){options.onDone=options.domOperation;}}
onBeforeClassesAppliedCb(element);applyAnimationClasses(element,options);if(options.preparationClasses){options.event=concatWithSpace(options.event,options.preparationClasses);}
var animator=$animateCss(element,options);return animator.$$willAnimate?animator:null;}}];}];var $$AnimateJsProvider=['$animateProvider',function($animateProvider){this.$get=['$injector','$$AnimateRunner','$$rAFMutex','$$jqLite',function($injector,$$AnimateRunner,$$rAFMutex,$$jqLite){var applyAnimationClasses=applyAnimationClassesFactory($$jqLite);return function(element,event,classes,options){if(arguments.length===3&&isObject(classes)){options=classes;classes=null;}
options=prepareAnimationOptions(options);if(!classes){classes=element.attr('class')||'';if(options.addClass){classes+=' '+options.addClass;}
if(options.removeClass){classes+=' '+options.removeClass;}}
var classesToAdd=options.addClass;var classesToRemove=options.removeClass;var animations=lookupAnimations(classes);var before,after;if(animations.length){var afterFn,beforeFn;if(event=='leave'){beforeFn='leave';afterFn='afterLeave';}else{beforeFn='before'+event.charAt(0).toUpperCase()+event.substr(1);afterFn=event;}
if(event!=='enter'&&event!=='move'){before=packageAnimations(element,event,options,animations,beforeFn);}
after=packageAnimations(element,event,options,animations,afterFn);}
if(!before&&!after)return;function applyOptions(){options.domOperation();applyAnimationClasses(element,options);}
return{start:function(){var closeActiveAnimations;var chain=[];if(before){chain.push(function(fn){closeActiveAnimations=before(fn);});}
if(chain.length){chain.push(function(fn){applyOptions();fn(true);});}else{applyOptions();}
if(after){chain.push(function(fn){closeActiveAnimations=after(fn);});}
var animationClosed=false;var runner=new $$AnimateRunner({end:function(){endAnimations();},cancel:function(){endAnimations(true);}});$$AnimateRunner.chain(chain,onComplete);return runner;function onComplete(success){animationClosed=true;applyOptions();applyAnimationStyles(element,options);runner.complete(success);}
function endAnimations(cancelled){if(!animationClosed){(closeActiveAnimations||noop)(cancelled);onComplete(cancelled);}}}};function executeAnimationFn(fn,element,event,options,onDone){var args;switch(event){case'animate':args=[element,options.from,options.to,onDone];break;case'setClass':args=[element,classesToAdd,classesToRemove,onDone];break;case'addClass':args=[element,classesToAdd,onDone];break;case'removeClass':args=[element,classesToRemove,onDone];break;default:args=[element,onDone];break;}
args.push(options);var value=fn.apply(fn,args);if(value){if(isFunction(value.start)){value=value.start();}
if(value instanceof $$AnimateRunner){value.done(onDone);}else if(isFunction(value)){return value;}}
return noop;}
function groupEventedAnimations(element,event,options,animations,fnName){var operations=[];forEach(animations,function(ani){var animation=ani[fnName];if(!animation)return;operations.push(function(){var runner;var endProgressCb;var resolved=false;var onAnimationComplete=function(rejected){if(!resolved){resolved=true;(endProgressCb||noop)(rejected);runner.complete(!rejected);}};runner=new $$AnimateRunner({end:function(){onAnimationComplete();},cancel:function(){onAnimationComplete(true);}});endProgressCb=executeAnimationFn(animation,element,event,options,function(result){var cancelled=result===false;onAnimationComplete(cancelled);});return runner;});});return operations;}
function packageAnimations(element,event,options,animations,fnName){var operations=groupEventedAnimations(element,event,options,animations,fnName);if(operations.length===0){var a,b;if(fnName==='beforeSetClass'){a=groupEventedAnimations(element,'removeClass',options,animations,'beforeRemoveClass');b=groupEventedAnimations(element,'addClass',options,animations,'beforeAddClass');}else if(fnName==='setClass'){a=groupEventedAnimations(element,'removeClass',options,animations,'removeClass');b=groupEventedAnimations(element,'addClass',options,animations,'addClass');}
if(a){operations=operations.concat(a);}
if(b){operations=operations.concat(b);}}
if(operations.length===0)return;return function startAnimation(callback){var runners=[];if(operations.length){forEach(operations,function(animateFn){runners.push(animateFn());});}
runners.length?$$AnimateRunner.all(runners,callback):callback();return function endFn(reject){forEach(runners,function(runner){reject?runner.cancel():runner.end();});};};}};function lookupAnimations(classes){classes=isArray(classes)?classes:classes.split(' ');var matches=[],flagMap={};for(var i=0;i<classes.length;i++){var klass=classes[i],animationFactory=$animateProvider.$$registeredAnimations[klass];if(animationFactory&&!flagMap[klass]){matches.push($injector.get(animationFactory));flagMap[klass]=true;}}
return matches;}}];}];var $$AnimateJsDriverProvider=['$$animationProvider',function($$animationProvider){$$animationProvider.drivers.push('$$animateJsDriver');this.$get=['$$animateJs','$$AnimateRunner',function($$animateJs,$$AnimateRunner){return function initDriverFn(animationDetails){if(animationDetails.from&&animationDetails.to){var fromAnimation=prepareAnimation(animationDetails.from);var toAnimation=prepareAnimation(animationDetails.to);if(!fromAnimation&&!toAnimation)return;return{start:function(){var animationRunners=[];if(fromAnimation){animationRunners.push(fromAnimation.start());}
if(toAnimation){animationRunners.push(toAnimation.start());}
$$AnimateRunner.all(animationRunners,done);var runner=new $$AnimateRunner({end:endFnFactory(),cancel:endFnFactory()});return runner;function endFnFactory(){return function(){forEach(animationRunners,function(runner){runner.end();});};}
function done(status){runner.complete(status);}}};}else{return prepareAnimation(animationDetails);}};function prepareAnimation(animationDetails){var element=animationDetails.element;var event=animationDetails.event;var options=animationDetails.options;var classes=animationDetails.classes;return $$animateJs(element,event,classes,options);}}];}];var NG_ANIMATE_ATTR_NAME='data-ng-animate';var NG_ANIMATE_PIN_DATA='$ngAnimatePin';var $$AnimateQueueProvider=['$animateProvider',function($animateProvider){var PRE_DIGEST_STATE=1;var RUNNING_STATE=2;var rules=this.rules={skip:[],cancel:[],join:[]};function isAllowed(ruleType,element,currentAnimation,previousAnimation){return rules[ruleType].some(function(fn){return fn(element,currentAnimation,previousAnimation);});}
function hasAnimationClasses(options,and){options=options||{};var a=(options.addClass||'').length>0;var b=(options.removeClass||'').length>0;return and?a&&b:a||b;}
rules.join.push(function(element,newAnimation,currentAnimation){return!newAnimation.structural&&hasAnimationClasses(newAnimation.options);});rules.skip.push(function(element,newAnimation,currentAnimation){return!newAnimation.structural&&!hasAnimationClasses(newAnimation.options);});rules.skip.push(function(element,newAnimation,currentAnimation){return currentAnimation.event=='leave'&&newAnimation.structural;});rules.skip.push(function(element,newAnimation,currentAnimation){return currentAnimation.structural&&currentAnimation.state===RUNNING_STATE&&!newAnimation.structural;});rules.cancel.push(function(element,newAnimation,currentAnimation){return currentAnimation.structural&&newAnimation.structural;});rules.cancel.push(function(element,newAnimation,currentAnimation){return currentAnimation.state===RUNNING_STATE&&newAnimation.structural;});rules.cancel.push(function(element,newAnimation,currentAnimation){var nO=newAnimation.options;var cO=currentAnimation.options;return(nO.addClass&&nO.addClass===cO.removeClass)||(nO.removeClass&&nO.removeClass===cO.addClass);});this.$get=['$$rAF','$rootScope','$rootElement','$document','$$body','$$HashMap','$$animation','$$AnimateRunner','$templateRequest','$$jqLite','$$forceReflow',function($$rAF,$rootScope,$rootElement,$document,$$body,$$HashMap,$$animation,$$AnimateRunner,$templateRequest,$$jqLite,$$forceReflow){var activeAnimationsLookup=new $$HashMap();var disabledElementsLookup=new $$HashMap();var animationsEnabled=null;var deregisterWatch=$rootScope.$watch(function(){return $templateRequest.totalPendingRequests===0;},function(isEmpty){if(!isEmpty)return;deregisterWatch();$rootScope.$$postDigest(function(){$rootScope.$$postDigest(function(){if(animationsEnabled===null){animationsEnabled=true;}});});});var callbackRegistry={};var classNameFilter=$animateProvider.classNameFilter();var isAnimatableClassName=!classNameFilter?function(){return true;}:function(className){return classNameFilter.test(className);};var applyAnimationClasses=applyAnimationClassesFactory($$jqLite);function normalizeAnimationOptions(element,options){return mergeAnimationOptions(element,options,{});}
function findCallbacks(element,event){var targetNode=getDomNode(element);var matches=[];var entries=callbackRegistry[event];if(entries){forEach(entries,function(entry){if(entry.node.contains(targetNode)){matches.push(entry.callback);}});}
return matches;}
function triggerCallback(event,element,phase,data){$$rAF(function(){forEach(findCallbacks(element,event),function(callback){callback(element,phase,data);});});}
return{on:function(event,container,callback){var node=extractElementNode(container);callbackRegistry[event]=callbackRegistry[event]||[];callbackRegistry[event].push({node:node,callback:callback});},off:function(event,container,callback){var entries=callbackRegistry[event];if(!entries)return;callbackRegistry[event]=arguments.length===1?null:filterFromRegistry(entries,container,callback);function filterFromRegistry(list,matchContainer,matchCallback){var containerNode=extractElementNode(matchContainer);return list.filter(function(entry){var isMatch=entry.node===containerNode&&(!matchCallback||entry.callback===matchCallback);return!isMatch;});}},pin:function(element,parentElement){assertArg(isElement(element),'element','not an element');assertArg(isElement(parentElement),'parentElement','not an element');element.data(NG_ANIMATE_PIN_DATA,parentElement);},push:function(element,event,options,domOperation){options=options||{};options.domOperation=domOperation;return queueAnimation(element,event,options);},enabled:function(element,bool){var argCount=arguments.length;if(argCount===0){bool=!!animationsEnabled;}else{var hasElement=isElement(element);if(!hasElement){bool=animationsEnabled=!!element;}else{var node=getDomNode(element);var recordExists=disabledElementsLookup.get(node);if(argCount===1){bool=!recordExists;}else{bool=!!bool;if(!bool){disabledElementsLookup.put(node,true);}else if(recordExists){disabledElementsLookup.remove(node);}}}}
return bool;}};function queueAnimation(element,event,options){var node,parent;element=stripCommentsFromElement(element);if(element){node=getDomNode(element);parent=element.parent();}
options=prepareAnimationOptions(options);var runner=new $$AnimateRunner();if(isArray(options.addClass)){options.addClass=options.addClass.join(' ');}
if(options.addClass&&!isString(options.addClass)){options.addClass=null;}
if(isArray(options.removeClass)){options.removeClass=options.removeClass.join(' ');}
if(options.removeClass&&!isString(options.removeClass)){options.removeClass=null;}
if(options.from&&!isObject(options.from)){options.from=null;}
if(options.to&&!isObject(options.to)){options.to=null;}
if(!node){close();return runner;}
var className=[node.className,options.addClass,options.removeClass].join(' ');if(!isAnimatableClassName(className)){close();return runner;}
var isStructural=['enter','move','leave'].indexOf(event)>=0;var skipAnimations=!animationsEnabled||disabledElementsLookup.get(node);var existingAnimation=(!skipAnimations&&activeAnimationsLookup.get(node))||{};var hasExistingAnimation=!!existingAnimation.state;if(!skipAnimations&&(!hasExistingAnimation||existingAnimation.state!=PRE_DIGEST_STATE)){skipAnimations=!areAnimationsAllowed(element,parent,event);}
if(skipAnimations){close();return runner;}
if(isStructural){closeChildAnimations(element);}
var newAnimation={structural:isStructural,element:element,event:event,close:close,options:options,runner:runner};if(hasExistingAnimation){var skipAnimationFlag=isAllowed('skip',element,newAnimation,existingAnimation);if(skipAnimationFlag){if(existingAnimation.state===RUNNING_STATE){close();return runner;}else{mergeAnimationOptions(element,existingAnimation.options,options);return existingAnimation.runner;}}
var cancelAnimationFlag=isAllowed('cancel',element,newAnimation,existingAnimation);if(cancelAnimationFlag){if(existingAnimation.state===RUNNING_STATE){existingAnimation.runner.end();}else if(existingAnimation.structural){existingAnimation.close();}else{mergeAnimationOptions(element,existingAnimation.options,newAnimation.options);return existingAnimation.runner;}}else{var joinAnimationFlag=isAllowed('join',element,newAnimation,existingAnimation);if(joinAnimationFlag){if(existingAnimation.state===RUNNING_STATE){normalizeAnimationOptions(element,options);}else{applyGeneratedPreparationClasses(element,isStructural?event:null,options);event=newAnimation.event=existingAnimation.event;options=mergeAnimationOptions(element,existingAnimation.options,newAnimation.options);return existingAnimation.runner;}}}}else{normalizeAnimationOptions(element,options);}
var isValidAnimation=newAnimation.structural;if(!isValidAnimation){isValidAnimation=(newAnimation.event==='animate'&&Object.keys(newAnimation.options.to||{}).length>0)||hasAnimationClasses(newAnimation.options);}
if(!isValidAnimation){close();clearElementAnimationState(element);return runner;}
applyGeneratedPreparationClasses(element,isStructural?event:null,options);blockTransitions(node,SAFE_FAST_FORWARD_DURATION_VALUE);var counter=(existingAnimation.counter||0)+1;newAnimation.counter=counter;markElementAnimationState(element,PRE_DIGEST_STATE,newAnimation);$rootScope.$$postDigest(function(){var animationDetails=activeAnimationsLookup.get(node);var animationCancelled=!animationDetails;animationDetails=animationDetails||{};var parentElement=element.parent()||[];var isValidAnimation=parentElement.length>0&&(animationDetails.event==='animate'||animationDetails.structural||hasAnimationClasses(animationDetails.options));if(animationCancelled||animationDetails.counter!==counter||!isValidAnimation){if(animationCancelled){applyAnimationClasses(element,options);applyAnimationStyles(element,options);}
if(animationCancelled||(isStructural&&animationDetails.event!==event)){options.domOperation();runner.end();}
if(!isValidAnimation){clearElementAnimationState(element);}
return;}
event=!animationDetails.structural&&hasAnimationClasses(animationDetails.options,true)?'setClass':animationDetails.event;markElementAnimationState(element,RUNNING_STATE);var realRunner=$$animation(element,event,animationDetails.options,function(e){$$forceReflow();blockTransitions(getDomNode(e),false);});realRunner.done(function(status){close(!status);var animationDetails=activeAnimationsLookup.get(node);if(animationDetails&&animationDetails.counter===counter){clearElementAnimationState(getDomNode(element));}
notifyProgress(runner,event,'close',{});});runner.setHost(realRunner);notifyProgress(runner,event,'start',{});});return runner;function notifyProgress(runner,event,phase,data){triggerCallback(event,element,phase,data);runner.progress(event,phase,data);}
function close(reject){clearGeneratedClasses(element,options);applyAnimationClasses(element,options);applyAnimationStyles(element,options);options.domOperation();runner.complete(!reject);}}
function closeChildAnimations(element){var node=getDomNode(element);var children=node.querySelectorAll('['+NG_ANIMATE_ATTR_NAME+']');forEach(children,function(child){var state=parseInt(child.getAttribute(NG_ANIMATE_ATTR_NAME));var animationDetails=activeAnimationsLookup.get(child);switch(state){case RUNNING_STATE:animationDetails.runner.end();case PRE_DIGEST_STATE:if(animationDetails){activeAnimationsLookup.remove(child);}
break;}});}
function clearElementAnimationState(element){var node=getDomNode(element);node.removeAttribute(NG_ANIMATE_ATTR_NAME);activeAnimationsLookup.remove(node);}
function isMatchingElement(nodeOrElmA,nodeOrElmB){return getDomNode(nodeOrElmA)===getDomNode(nodeOrElmB);}
function areAnimationsAllowed(element,parentElement,event){var bodyElementDetected=isMatchingElement(element,$$body)||element[0].nodeName==='HTML';var rootElementDetected=isMatchingElement(element,$rootElement);var parentAnimationDetected=false;var animateChildren;var parentHost=element.data(NG_ANIMATE_PIN_DATA);if(parentHost){parentElement=parentHost;}
while(parentElement&&parentElement.length){if(!rootElementDetected){rootElementDetected=isMatchingElement(parentElement,$rootElement);}
var parentNode=parentElement[0];if(parentNode.nodeType!==ELEMENT_NODE){break;}
var details=activeAnimationsLookup.get(parentNode)||{};if(!parentAnimationDetected){parentAnimationDetected=details.structural||disabledElementsLookup.get(parentNode);}
if(isUndefined(animateChildren)||animateChildren===true){var value=parentElement.data(NG_ANIMATE_CHILDREN_DATA);if(isDefined(value)){animateChildren=value;}}
if(parentAnimationDetected&&animateChildren===false)break;if(!rootElementDetected){rootElementDetected=isMatchingElement(parentElement,$rootElement);if(!rootElementDetected){parentHost=parentElement.data(NG_ANIMATE_PIN_DATA);if(parentHost){parentElement=parentHost;}}}
if(!bodyElementDetected){bodyElementDetected=isMatchingElement(parentElement,$$body);}
parentElement=parentElement.parent();}
var allowAnimation=!parentAnimationDetected||animateChildren;return allowAnimation&&rootElementDetected&&bodyElementDetected;}
function markElementAnimationState(element,state,details){details=details||{};details.state=state;var node=getDomNode(element);node.setAttribute(NG_ANIMATE_ATTR_NAME,state);var oldValue=activeAnimationsLookup.get(node);var newValue=oldValue?extend(oldValue,details):details;activeAnimationsLookup.put(node,newValue);}}];}];var $$rAFMutexFactory=['$$rAF',function($$rAF){return function(){var passed=false;$$rAF(function(){passed=true;});return function(fn){passed?fn():$$rAF(fn);};};}];var $$AnimateRunnerFactory=['$q','$$rAFMutex',function($q,$$rAFMutex){var INITIAL_STATE=0;var DONE_PENDING_STATE=1;var DONE_COMPLETE_STATE=2;AnimateRunner.chain=function(chain,callback){var index=0;next();function next(){if(index===chain.length){callback(true);return;}
chain[index](function(response){if(response===false){callback(false);return;}
index++;next();});}};AnimateRunner.all=function(runners,callback){var count=0;var status=true;forEach(runners,function(runner){runner.done(onProgress);});function onProgress(response){status=status&&response;if(++count===runners.length){callback(status);}}};function AnimateRunner(host){this.setHost(host);this._doneCallbacks=[];this._runInAnimationFrame=$$rAFMutex();this._state=0;}
AnimateRunner.prototype={setHost:function(host){this.host=host||{};},done:function(fn){if(this._state===DONE_COMPLETE_STATE){fn();}else{this._doneCallbacks.push(fn);}},progress:noop,getPromise:function(){if(!this.promise){var self=this;this.promise=$q(function(resolve,reject){self.done(function(status){status===false?reject():resolve();});});}
return this.promise;},then:function(resolveHandler,rejectHandler){return this.getPromise().then(resolveHandler,rejectHandler);},'catch':function(handler){return this.getPromise()['catch'](handler);},'finally':function(handler){return this.getPromise()['finally'](handler);},pause:function(){if(this.host.pause){this.host.pause();}},resume:function(){if(this.host.resume){this.host.resume();}},end:function(){if(this.host.end){this.host.end();}
this._resolve(true);},cancel:function(){if(this.host.cancel){this.host.cancel();}
this._resolve(false);},complete:function(response){var self=this;if(self._state===INITIAL_STATE){self._state=DONE_PENDING_STATE;self._runInAnimationFrame(function(){self._resolve(response);});}},_resolve:function(response){if(this._state!==DONE_COMPLETE_STATE){forEach(this._doneCallbacks,function(fn){fn(response);});this._doneCallbacks.length=0;this._state=DONE_COMPLETE_STATE;}}};return AnimateRunner;}];var $$AnimationProvider=['$animateProvider',function($animateProvider){var NG_ANIMATE_REF_ATTR='ng-animate-ref';var drivers=this.drivers=[];var RUNNER_STORAGE_KEY='$$animationRunner';function setRunner(element,runner){element.data(RUNNER_STORAGE_KEY,runner);}
function removeRunner(element){element.removeData(RUNNER_STORAGE_KEY);}
function getRunner(element){return element.data(RUNNER_STORAGE_KEY);}
this.$get=['$$jqLite','$rootScope','$injector','$$AnimateRunner','$$HashMap',function($$jqLite,$rootScope,$injector,$$AnimateRunner,$$HashMap){var animationQueue=[];var applyAnimationClasses=applyAnimationClassesFactory($$jqLite);function sortAnimations(animations){var tree={children:[]};var i,lookup=new $$HashMap();for(i=0;i<animations.length;i++){var animation=animations[i];lookup.put(animation.domNode,animations[i]={domNode:animation.domNode,fn:animation.fn,children:[]});}
for(i=0;i<animations.length;i++){processNode(animations[i]);}
return flatten(tree);function processNode(entry){if(entry.processed)return entry;entry.processed=true;var elementNode=entry.domNode;var parentNode=elementNode.parentNode;lookup.put(elementNode,entry);var parentEntry;while(parentNode){parentEntry=lookup.get(parentNode);if(parentEntry){if(!parentEntry.processed){parentEntry=processNode(parentEntry);}
break;}
parentNode=parentNode.parentNode;}
(parentEntry||tree).children.push(entry);return entry;}
function flatten(tree){var result=[];var queue=[];var i;for(i=0;i<tree.children.length;i++){queue.push(tree.children[i]);}
var remainingLevelEntries=queue.length;var nextLevelEntries=0;var row=[];for(i=0;i<queue.length;i++){var entry=queue[i];if(remainingLevelEntries<=0){remainingLevelEntries=nextLevelEntries;nextLevelEntries=0;result=result.concat(row);row=[];}
row.push(entry.fn);forEach(entry.children,function(childEntry){nextLevelEntries++;queue.push(childEntry);});remainingLevelEntries--;}
if(row.length){result=result.concat(row);}
return result;}}
return function(element,event,options,onBeforeClassesAppliedCb){options=prepareAnimationOptions(options);var isStructural=['enter','move','leave'].indexOf(event)>=0;var runner=new $$AnimateRunner({end:function(){close();},cancel:function(){close(true);}});if(!drivers.length){close();return runner;}
setRunner(element,runner);var classes=mergeClasses(element.attr('class'),mergeClasses(options.addClass,options.removeClass));var tempClasses=options.tempClasses;if(tempClasses){classes+=' '+tempClasses;options.tempClasses=null;}
animationQueue.push({element:element,classes:classes,event:event,structural:isStructural,options:options,beforeStart:beforeStart,close:close});element.on('$destroy',handleDestroyedElement);if(animationQueue.length>1)return runner;$rootScope.$$postDigest(function(){var animations=[];forEach(animationQueue,function(entry){var elm=entry.element;if(getRunner(elm)&&getDomNode(elm).parentNode){animations.push(entry);}else{entry.close();}});animationQueue.length=0;var groupedAnimations=groupAnimations(animations);var toBeSortedAnimations=[];forEach(groupedAnimations,function(animationEntry){toBeSortedAnimations.push({domNode:getDomNode(animationEntry.from?animationEntry.from.element:animationEntry.element),fn:function triggerAnimationStart(){animationEntry.beforeStart();var startAnimationFn,closeFn=animationEntry.close;var targetElement=animationEntry.anchors?(animationEntry.from.element||animationEntry.to.element):animationEntry.element;if(getRunner(targetElement)){var operation=invokeFirstDriver(animationEntry,onBeforeClassesAppliedCb);if(operation){startAnimationFn=operation.start;}}
if(!startAnimationFn){closeFn();}else{var animationRunner=startAnimationFn();animationRunner.done(function(status){closeFn(!status);});updateAnimationRunners(animationEntry,animationRunner);}}});});forEach(sortAnimations(toBeSortedAnimations),function(triggerAnimation){triggerAnimation();});});return runner;function getAnchorNodes(node){var SELECTOR='['+NG_ANIMATE_REF_ATTR+']';var items=node.hasAttribute(NG_ANIMATE_REF_ATTR)?[node]:node.querySelectorAll(SELECTOR);var anchors=[];forEach(items,function(node){var attr=node.getAttribute(NG_ANIMATE_REF_ATTR);if(attr&&attr.length){anchors.push(node);}});return anchors;}
function groupAnimations(animations){var preparedAnimations=[];var refLookup={};forEach(animations,function(animation,index){var element=animation.element;var node=getDomNode(element);var event=animation.event;var enterOrMove=['enter','move'].indexOf(event)>=0;var anchorNodes=animation.structural?getAnchorNodes(node):[];if(anchorNodes.length){var direction=enterOrMove?'to':'from';forEach(anchorNodes,function(anchor){var key=anchor.getAttribute(NG_ANIMATE_REF_ATTR);refLookup[key]=refLookup[key]||{};refLookup[key][direction]={animationID:index,element:jqLite(anchor)};});}else{preparedAnimations.push(animation);}});var usedIndicesLookup={};var anchorGroups={};forEach(refLookup,function(operations,key){var from=operations.from;var to=operations.to;if(!from||!to){var index=from?from.animationID:to.animationID;var indexKey=index.toString();if(!usedIndicesLookup[indexKey]){usedIndicesLookup[indexKey]=true;preparedAnimations.push(animations[index]);}
return;}
var fromAnimation=animations[from.animationID];var toAnimation=animations[to.animationID];var lookupKey=from.animationID.toString();if(!anchorGroups[lookupKey]){var group=anchorGroups[lookupKey]={beforeStart:function(){fromAnimation.beforeStart();toAnimation.beforeStart();},close:function(){fromAnimation.close();toAnimation.close();},classes:cssClassesIntersection(fromAnimation.classes,toAnimation.classes),from:fromAnimation,to:toAnimation,anchors:[]};if(group.classes.length){preparedAnimations.push(group);}else{preparedAnimations.push(fromAnimation);preparedAnimations.push(toAnimation);}}
anchorGroups[lookupKey].anchors.push({'out':from.element,'in':to.element});});return preparedAnimations;}
function cssClassesIntersection(a,b){a=a.split(' ');b=b.split(' ');var matches=[];for(var i=0;i<a.length;i++){var aa=a[i];if(aa.substring(0,3)==='ng-')continue;for(var j=0;j<b.length;j++){if(aa===b[j]){matches.push(aa);break;}}}
return matches.join(' ');}
function invokeFirstDriver(animationDetails,onBeforeClassesAppliedCb){for(var i=drivers.length-1;i>=0;i--){var driverName=drivers[i];if(!$injector.has(driverName))continue;var factory=$injector.get(driverName);var driver=factory(animationDetails,onBeforeClassesAppliedCb);if(driver){return driver;}}}
function beforeStart(){element.addClass(NG_ANIMATE_CLASSNAME);if(tempClasses){$$jqLite.addClass(element,tempClasses);}}
function updateAnimationRunners(animation,newRunner){if(animation.from&&animation.to){update(animation.from.element);update(animation.to.element);}else{update(animation.element);}
function update(element){getRunner(element).setHost(newRunner);}}
function handleDestroyedElement(){var runner=getRunner(element);if(runner&&(event!=='leave'||!options.$$domOperationFired)){runner.end();}}
function close(rejected){element.off('$destroy',handleDestroyedElement);removeRunner(element);applyAnimationClasses(element,options);applyAnimationStyles(element,options);options.domOperation();if(tempClasses){$$jqLite.removeClass(element,tempClasses);}
element.removeClass(NG_ANIMATE_CLASSNAME);runner.complete(!rejected);}};}];}];angular.module('ngAnimate',[]).provider('$$body',$$BodyProvider).directive('ngAnimateChildren',$$AnimateChildrenDirective).factory('$$rAFMutex',$$rAFMutexFactory).factory('$$AnimateRunner',$$AnimateRunnerFactory).provider('$$animateQueue',$$AnimateQueueProvider).provider('$$animation',$$AnimationProvider).provider('$animateCss',$AnimateCssProvider).provider('$$animateCssDriver',$$AnimateCssDriverProvider).provider('$$animateJs',$$AnimateJsProvider).provider('$$animateJsDriver',$$AnimateJsDriverProvider);})(window,window.angular);(function(){function patchXHR(fnName,newFn){window.XMLHttpRequest.prototype[fnName]=newFn(window.XMLHttpRequest.prototype[fnName]);}
function redefineProp(xhr,prop,fn){try{Object.defineProperty(xhr,prop,{get:fn});}catch(e){}}
if(!window.FileAPI){window.FileAPI={};}
if(!window.XMLHttpRequest){throw'AJAX is not supported. XMLHttpRequest is not defined.';}
FileAPI.shouldLoad=!window.FormData||FileAPI.forceLoad;if(FileAPI.shouldLoad){var initializeUploadListener=function(xhr){if(!xhr.__listeners){if(!xhr.upload)xhr.upload={};xhr.__listeners=[];var origAddEventListener=xhr.upload.addEventListener;xhr.upload.addEventListener=function(t,fn){xhr.__listeners[t]=fn;if(origAddEventListener)origAddEventListener.apply(this,arguments);};}};patchXHR('open',function(orig){return function(m,url,b){initializeUploadListener(this);this.__url=url;try{orig.apply(this,[m,url,b]);}catch(e){if(e.message.indexOf('Access is denied')>-1){this.__origError=e;orig.apply(this,[m,'_fix_for_ie_crossdomain__',b]);}}};});patchXHR('getResponseHeader',function(orig){return function(h){return this.__fileApiXHR&&this.__fileApiXHR.getResponseHeader?this.__fileApiXHR.getResponseHeader(h):(orig==null?null:orig.apply(this,[h]));};});patchXHR('getAllResponseHeaders',function(orig){return function(){return this.__fileApiXHR&&this.__fileApiXHR.getAllResponseHeaders?this.__fileApiXHR.getAllResponseHeaders():(orig==null?null:orig.apply(this));};});patchXHR('abort',function(orig){return function(){return this.__fileApiXHR&&this.__fileApiXHR.abort?this.__fileApiXHR.abort():(orig==null?null:orig.apply(this));};});patchXHR('setRequestHeader',function(orig){return function(header,value){if(header==='__setXHR_'){initializeUploadListener(this);var val=value(this);if(val instanceof Function){val(this);}}else{this.__requestHeaders=this.__requestHeaders||{};this.__requestHeaders[header]=value;orig.apply(this,arguments);}};});patchXHR('send',function(orig){return function(){var xhr=this;if(arguments[0]&&arguments[0].__isFileAPIShim){var formData=arguments[0];var config={url:xhr.__url,jsonp:false,cache:true,complete:function(err,fileApiXHR){if(err&&angular.isString(err)&&err.indexOf('#2174')!==-1){err=null;}
xhr.__completed=true;if(!err&&xhr.__listeners.load)
xhr.__listeners.load({type:'load',loaded:xhr.__loaded,total:xhr.__total,target:xhr,lengthComputable:true});if(!err&&xhr.__listeners.loadend)
xhr.__listeners.loadend({type:'loadend',loaded:xhr.__loaded,total:xhr.__total,target:xhr,lengthComputable:true});if(err==='abort'&&xhr.__listeners.abort)
xhr.__listeners.abort({type:'abort',loaded:xhr.__loaded,total:xhr.__total,target:xhr,lengthComputable:true});if(fileApiXHR.status!==undefined)redefineProp(xhr,'status',function(){return(fileApiXHR.status===0&&err&&err!=='abort')?500:fileApiXHR.status;});if(fileApiXHR.statusText!==undefined)redefineProp(xhr,'statusText',function(){return fileApiXHR.statusText;});redefineProp(xhr,'readyState',function(){return 4;});if(fileApiXHR.response!==undefined)redefineProp(xhr,'response',function(){return fileApiXHR.response;});var resp=fileApiXHR.responseText||(err&&fileApiXHR.status===0&&err!=='abort'?err:undefined);redefineProp(xhr,'responseText',function(){return resp;});redefineProp(xhr,'response',function(){return resp;});if(err)redefineProp(xhr,'err',function(){return err;});xhr.__fileApiXHR=fileApiXHR;if(xhr.onreadystatechange)xhr.onreadystatechange();if(xhr.onload)xhr.onload();},progress:function(e){e.target=xhr;if(xhr.__listeners.progress)xhr.__listeners.progress(e);xhr.__total=e.total;xhr.__loaded=e.loaded;if(e.total===e.loaded){var _this=this;setTimeout(function(){if(!xhr.__completed){xhr.getAllResponseHeaders=function(){};_this.complete(null,{status:204,statusText:'No Content'});}},FileAPI.noContentTimeout||10000);}},headers:xhr.__requestHeaders};config.data={};config.files={};for(var i=0;i<formData.data.length;i++){var item=formData.data[i];if(item.val!=null&&item.val.name!=null&&item.val.size!=null&&item.val.type!=null){config.files[item.key]=item.val;}else{config.data[item.key]=item.val;}}
setTimeout(function(){if(!FileAPI.hasFlash){throw'Adode Flash Player need to be installed. To check ahead use "FileAPI.hasFlash"';}
xhr.__fileApiXHR=FileAPI.upload(config);},1);}else{if(this.__origError){throw this.__origError;}
orig.apply(xhr,arguments);}};});window.XMLHttpRequest.__isFileAPIShim=true;window.FormData=FormData=function(){return{append:function(key,val,name){if(val.__isFileAPIBlobShim){val=val.data[0];}
this.data.push({key:key,val:val,name:name});},data:[],__isFileAPIShim:true};};window.Blob=Blob=function(b){return{data:b,__isFileAPIBlobShim:true};};}})();(function(){function isInputTypeFile(elem){return elem[0].tagName.toLowerCase()==='input'&&elem.attr('type')&&elem.attr('type').toLowerCase()==='file';}
function hasFlash(){try{var fo=new ActiveXObject('ShockwaveFlash.ShockwaveFlash');if(fo)return true;}catch(e){if(navigator.mimeTypes['application/x-shockwave-flash']!==undefined)return true;}
return false;}
function getOffset(obj){var left=0,top=0;if(window.jQuery){return jQuery(obj).offset();}
if(obj.offsetParent){do{left+=(obj.offsetLeft-obj.scrollLeft);top+=(obj.offsetTop-obj.scrollTop);obj=obj.offsetParent;}while(obj);}
return{left:left,top:top};}
if(FileAPI.shouldLoad){FileAPI.hasFlash=hasFlash();if(FileAPI.forceLoad){FileAPI.html5=false;}
if(!FileAPI.upload){var jsUrl,basePath,script=document.createElement('script'),allScripts=document.getElementsByTagName('script'),i,index,src;if(window.FileAPI.jsUrl){jsUrl=window.FileAPI.jsUrl;}else if(window.FileAPI.jsPath){basePath=window.FileAPI.jsPath;}else{for(i=0;i<allScripts.length;i++){src=allScripts[i].src;index=src.search(/\/ng\-file\-upload[\-a-zA-z0-9\.]*\.js/);if(index>-1){basePath=src.substring(0,index+1);break;}}}
if(FileAPI.staticPath==null)FileAPI.staticPath=basePath;script.setAttribute('src',jsUrl||basePath+'FileAPI.js');document.getElementsByTagName('head')[0].appendChild(script);}
FileAPI.ngfFixIE=function(elem,fileElem,changeFn){if(!hasFlash()){throw'Adode Flash Player need to be installed. To check ahead use "FileAPI.hasFlash"';}
var fixInputStyle=function(){if(elem.attr('disabled')){if(fileElem)fileElem.removeClass('js-fileapi-wrapper');}else{if(!fileElem.attr('__ngf_flash_')){fileElem.unbind('change');fileElem.unbind('click');fileElem.bind('change',function(evt){fileApiChangeFn.apply(this,[evt]);changeFn.apply(this,[evt]);});fileElem.attr('__ngf_flash_','true');}
fileElem.addClass('js-fileapi-wrapper');if(!isInputTypeFile(elem)){fileElem.css('position','absolute').css('top',getOffset(elem[0]).top+'px').css('left',getOffset(elem[0]).left+'px').css('width',elem[0].offsetWidth+'px').css('height',elem[0].offsetHeight+'px').css('filter','alpha(opacity=0)').css('display',elem.css('display')).css('overflow','hidden').css('z-index','900000').css('visibility','visible');}}};elem.bind('mouseenter',fixInputStyle);var fileApiChangeFn=function(evt){var files=FileAPI.getFiles(evt);for(var i=0;i<files.length;i++){if(files[i].size===undefined)files[i].size=0;if(files[i].name===undefined)files[i].name='file';if(files[i].type===undefined)files[i].type='undefined';}
if(!evt.target){evt.target={};}
evt.target.files=files;if(evt.target.files!==files){evt.__files_=files;}
(evt.__files_||evt.target.files).item=function(i){return(evt.__files_||evt.target.files)[i]||null;};};};FileAPI.disableFileInput=function(elem,disable){if(disable){elem.removeClass('js-fileapi-wrapper');}else{elem.addClass('js-fileapi-wrapper');}};}})();if(!window.FileReader){window.FileReader=function(){var _this=this,loadStarted=false;this.listeners={};this.addEventListener=function(type,fn){_this.listeners[type]=_this.listeners[type]||[];_this.listeners[type].push(fn);};this.removeEventListener=function(type,fn){if(_this.listeners[type])_this.listeners[type].splice(_this.listeners[type].indexOf(fn),1);};this.dispatchEvent=function(evt){var list=_this.listeners[evt.type];if(list){for(var i=0;i<list.length;i++){list[i].call(_this,evt);}}};this.onabort=this.onerror=this.onload=this.onloadstart=this.onloadend=this.onprogress=null;var constructEvent=function(type,evt){var e={type:type,target:_this,loaded:evt.loaded,total:evt.total,error:evt.error};if(evt.result!=null)e.target.result=evt.result;return e;};var listener=function(evt){if(!loadStarted){loadStarted=true;if(_this.onloadstart)_this.onloadstart(constructEvent('loadstart',evt));}
var e;if(evt.type==='load'){if(_this.onloadend)_this.onloadend(constructEvent('loadend',evt));e=constructEvent('load',evt);if(_this.onload)_this.onload(e);_this.dispatchEvent(e);}else if(evt.type==='progress'){e=constructEvent('progress',evt);if(_this.onprogress)_this.onprogress(e);_this.dispatchEvent(e);}else{e=constructEvent('error',evt);if(_this.onerror)_this.onerror(e);_this.dispatchEvent(e);}};this.readAsDataURL=function(file){FileAPI.readAsDataURL(file,listener);};this.readAsText=function(file){FileAPI.readAsText(file,listener);};};}
if(window.XMLHttpRequest&&!(window.FileAPI&&FileAPI.shouldLoad)){window.XMLHttpRequest.prototype.setRequestHeader=(function(orig){return function(header,value){if(header==='__setXHR_'){var val=value(this);if(val instanceof Function){val(this);}}else{orig.apply(this,arguments);}};})(window.XMLHttpRequest.prototype.setRequestHeader);}
var ngFileUpload=angular.module('ngFileUpload',[]);ngFileUpload.version='10.1.5';ngFileUpload.service('UploadBase',['$http','$q','$timeout',function($http,$q,$timeout){var upload=this;this.isResumeSupported=function(){return window.Blob&&(Blob instanceof Function)&&new Blob().slice;};var resumeSupported=this.isResumeSupported();function sendHttp(config){config.method=config.method||'POST';config.headers=config.headers||{};var deferred=config._deferred=config._deferred||$q.defer();var promise=deferred.promise;function notifyProgress(e){if(deferred.notify){deferred.notify(e);}
if(promise.progressFunc){$timeout(function(){promise.progressFunc(e);});}}
function getNotifyEvent(n){if(config._start!=null&&resumeSupported){return{loaded:n.loaded+config._start,total:config._file.size,type:n.type,config:config,lengthComputable:true,target:n.target};}else{return n;}}
if(!config.disableProgress){config.headers.__setXHR_=function(){return function(xhr){if(!xhr||!(xhr instanceof XMLHttpRequest))return;config.__XHR=xhr;if(config.xhrFn)config.xhrFn(xhr);xhr.upload.addEventListener('progress',function(e){e.config=config;notifyProgress(getNotifyEvent(e));},false);xhr.upload.addEventListener('load',function(e){if(e.lengthComputable){e.config=config;notifyProgress(getNotifyEvent(e));}},false);};};}
function uploadWithAngular(){$http(config).then(function(r){if(resumeSupported&&config._chunkSize&&!config._finished){notifyProgress({loaded:config._end,total:config._file.size,config:config,type:'progress'});upload.upload(config,true);}else{if(config._finished)delete config._finished;deferred.resolve(r);}},function(e){deferred.reject(e);},function(n){deferred.notify(n);});}
if(!resumeSupported){uploadWithAngular();}else if(config._chunkSize&&config._end&&!config._finished){config._start=config._end;config._end+=config._chunkSize;uploadWithAngular();}else if(config.resumeSizeUrl){$http.get(config.resumeSizeUrl).then(function(resp){if(config.resumeSizeResponseReader){config._start=config.resumeSizeResponseReader(resp.data);}else{config._start=parseInt((resp.data.size==null?resp.data:resp.data.size).toString());}
if(config._chunkSize){config._end=config._start+config._chunkSize;}
uploadWithAngular();},function(e){throw e;});}else if(config.resumeSize){config.resumeSize().then(function(size){config._start=size;uploadWithAngular();},function(e){throw e;});}else{uploadWithAngular();}
promise.success=function(fn){promise.then(function(response){fn(response.data,response.status,response.headers,config);});return promise;};promise.error=function(fn){promise.then(null,function(response){fn(response.data,response.status,response.headers,config);});return promise;};promise.progress=function(fn){promise.progressFunc=fn;promise.then(null,null,function(n){fn(n);});return promise;};promise.abort=promise.pause=function(){if(config.__XHR){$timeout(function(){config.__XHR.abort();});}
return promise;};promise.xhr=function(fn){config.xhrFn=(function(origXhrFn){return function(){if(origXhrFn)origXhrFn.apply(promise,arguments);fn.apply(promise,arguments);};})(config.xhrFn);return promise;};return promise;}
this.rename=function(file,name){file.ngfName=name;return file;};this.jsonBlob=function(val){if(val!=null&&!angular.isString(val)){val=JSON.stringify(val);}
var blob=new Blob([val],{type:'application/json'});blob._ngfBlob=true;return blob;};this.json=function(val){return angular.toJson(val);};function copy(obj){var clone={};for(var key in obj){if(obj.hasOwnProperty(key)){clone[key]=obj[key];}}
return clone;}
this.upload=function(config,internal){function isFile(file){return file!=null&&(file instanceof Blob||(file.flashId&&file.name&&file.size));}
function toResumeFile(file,formData){if(file._ngfBlob)return file;config._file=config._file||file;if(config._start!=null&&resumeSupported){if(config._end&&config._end>=file.size){config._finished=true;config._end=file.size;}
var slice=file.slice(config._start,config._end||file.size);slice.name=file.name;slice.ngfName=file.ngfName;if(config._chunkSize){formData.append('_chunkSize',config._end-config._start);formData.append('_chunkNumber',Math.floor(config._start/config._chunkSize));formData.append('_totalSize',config._file.size);}
return slice;}
return file;}
function addFieldToFormData(formData,val,key){if(val!==undefined){if(angular.isDate(val)){val=val.toISOString();}
if(angular.isString(val)){formData.append(key,val);}else if(isFile(val)){var file=toResumeFile(val,formData);var split=key.split(',');if(split[1]){file.ngfName=split[1].replace(/^\s+|\s+$/g,'');key=split[0];}
config._fileKey=config._fileKey||key;formData.append(key,file,file.ngfName||file.name);}else{if(angular.isObject(val)){if(val.$$ngfCircularDetection)throw'ngFileUpload: Circular reference in config.data. Make sure specified data for Upload.upload() has no circular reference: '+key;val.$$ngfCircularDetection=true;try{for(var k in val){if(val.hasOwnProperty(k)&&k!=='$$ngfCircularDetection'){var objectKey=config.objectKey==null?'[i]':config.objectKey;if(val.length&&parseInt(k)>-1){objectKey=config.arrayKey==null?objectKey:config.arrayKey;}
addFieldToFormData(formData,val[k],key+objectKey.replace(/[ik]/g,k));}}}finally{delete val.$$ngfCircularDetection;}}else{formData.append(key,val);}}}}
function digestConfig(){config._chunkSize=upload.translateScalars(config.resumeChunkSize);config._chunkSize=config._chunkSize?parseInt(config._chunkSize.toString()):null;config.headers=config.headers||{};config.headers['Content-Type']=undefined;config.transformRequest=config.transformRequest?(angular.isArray(config.transformRequest)?config.transformRequest:[config.transformRequest]):[];config.transformRequest.push(function(data){var formData=new FormData(),key;data=data||config.fields||{};if(config.file){data.file=config.file;}
for(key in data){if(data.hasOwnProperty(key)){var val=data[key];if(config.formDataAppender){config.formDataAppender(formData,key,val);}else{addFieldToFormData(formData,val,key);}}}
return formData;});}
if(!internal)config=copy(config);if(!config._isDigested){config._isDigested=true;digestConfig();}
return sendHttp(config);};this.http=function(config){config=copy(config);config.transformRequest=config.transformRequest||function(data){if((window.ArrayBuffer&&data instanceof window.ArrayBuffer)||data instanceof Blob){return data;}
return $http.defaults.transformRequest[0].apply(this,arguments);};config._chunkSize=upload.translateScalars(config.resumeChunkSize);config._chunkSize=config._chunkSize?parseInt(config._chunkSize.toString()):null;return sendHttp(config);};this.translateScalars=function(str){if(angular.isString(str)){if(str.search(/kb/i)===str.length-2){return parseFloat(str.substring(0,str.length-2)*1000);}else if(str.search(/mb/i)===str.length-2){return parseFloat(str.substring(0,str.length-2)*1000000);}else if(str.search(/gb/i)===str.length-2){return parseFloat(str.substring(0,str.length-2)*1000000000);}else if(str.search(/b/i)===str.length-1){return parseFloat(str.substring(0,str.length-1));}else if(str.search(/s/i)===str.length-1){return parseFloat(str.substring(0,str.length-1));}else if(str.search(/m/i)===str.length-1){return parseFloat(str.substring(0,str.length-1)*60);}else if(str.search(/h/i)===str.length-1){return parseFloat(str.substring(0,str.length-1)*3600);}}
return str;};this.setDefaults=function(defaults){this.defaults=defaults||{};};this.defaults={};this.version=ngFileUpload.version;}]);ngFileUpload.service('Upload',['$parse','$timeout','$compile','$q','UploadExif',function($parse,$timeout,$compile,$q,UploadExif){var upload=UploadExif;upload.getAttrWithDefaults=function(attr,name){if(attr[name]!=null)return attr[name];var def=upload.defaults[name];return(def==null?def:(angular.isString(def)?def:JSON.stringify(def)));};upload.attrGetter=function(name,attr,scope,params){var attrVal=this.getAttrWithDefaults(attr,name);if(scope){try{if(params){return $parse(attrVal)(scope,params);}else{return $parse(attrVal)(scope);}}catch(e){if(name.search(/min|max|pattern/i)){return attrVal;}else{throw e;}}}else{return attrVal;}};upload.shouldUpdateOn=function(type,attr,scope){var modelOptions=upload.attrGetter('ngModelOptions',attr,scope);if(modelOptions&&modelOptions.updateOn){return modelOptions.updateOn.split(' ').indexOf(type)>-1;}
return true;};upload.emptyPromise=function(){var d=$q.defer();var args=arguments;$timeout(function(){d.resolve.apply(d,args);});return d.promise;};upload.happyPromise=function(promise,data){var d=$q.defer();promise.then(function(result){d.resolve(result);},function(error){$timeout(function(){throw error;});d.resolve(data);});return d.promise;};function applyExifRotations(files,attr,scope){var promises=[upload.emptyPromise()];angular.forEach(files,function(f,i){if(f.type.indexOf('image/jpeg')===0&&upload.attrGetter('ngfFixOrientation',attr,scope,{$file:f})){promises.push(upload.happyPromise(upload.applyExifRotation(f),f).then(function(fixedFile){files.splice(i,1,fixedFile);}));}});return $q.all(promises);}
function resize(files,attr,scope){var param=upload.attrGetter('ngfResize',attr,scope);if(!param||!upload.isResizeSupported()||!files.length)return upload.emptyPromise();var promises=[upload.emptyPromise()];angular.forEach(files,function(f,i){if(f.type.indexOf('image')===0){if(param.pattern&&!upload.validatePattern(f,param.pattern))return;var promise=upload.resize(f,param.width,param.height,param.quality,param.type,param.ratio,param.centerCrop);promises.push(promise);promise.then(function(resizedFile){files.splice(i,1,resizedFile);},function(e){f.$error='resize';f.$errorParam=(e?(e.message?e.message:e)+': ':'')+(f&&f.name);});}});return $q.all(promises);}
function handleKeep(files,prevFiles,attr,scope){var dupFiles=[];var keep=upload.attrGetter('ngfKeep',attr,scope);if(keep){var hasNew=false;if(keep==='distinct'||upload.attrGetter('ngfKeepDistinct',attr,scope)===true){var len=prevFiles.length;if(files){for(var i=0;i<files.length;i++){for(var j=0;j<len;j++){if(files[i].name===prevFiles[j].name){dupFiles.push(files[i]);break;}}
if(j===len){prevFiles.push(files[i]);hasNew=true;}}}
files=prevFiles;}else{files=prevFiles.concat(files||[]);}}
return{files:files,dupFiles:dupFiles,keep:keep};}
upload.updateModel=function(ngModel,attr,scope,fileChange,files,evt,noDelay){function update(files,invalidFiles,newFiles,dupFiles,isSingleModel){var file=files&&files.length?files[0]:null;if(ngModel){upload.applyModelValidation(ngModel,files);ngModel.$ngfModelChange=true;ngModel.$setViewValue(isSingleModel?file:files);}
if(fileChange){$parse(fileChange)(scope,{$files:files,$file:file,$newFiles:newFiles,$duplicateFiles:dupFiles,$invalidFiles:invalidFiles,$event:evt});}
var invalidModel=upload.attrGetter('ngfModelInvalid',attr);if(invalidModel){$timeout(function(){$parse(invalidModel).assign(scope,invalidFiles);});}
$timeout(function(){});}
var newFiles=files;var prevFiles=ngModel&&ngModel.$modelValue&&(angular.isArray(ngModel.$modelValue)?ngModel.$modelValue:[ngModel.$modelValue]);prevFiles=(prevFiles||attr.$$ngfPrevFiles||[]).slice(0);var keepResult=handleKeep(files,prevFiles,attr,scope);files=keepResult.files;var dupFiles=keepResult.dupFiles;var isSingleModel=!upload.attrGetter('ngfMultiple',attr,scope)&&!upload.attrGetter('multiple',attr)&&!keepResult.keep;attr.$$ngfPrevFiles=files;if(keepResult.keep&&(!newFiles||!newFiles.length))return;upload.attrGetter('ngfBeforeModelChange',attr,scope,{$files:files,$file:files&&files.length?files[0]:null,$duplicateFiles:dupFiles,$event:evt});upload.validate(newFiles,ngModel,attr,scope).then(function(){if(noDelay){update(files,[],newFiles,dupFiles,isSingleModel);}else{var options=upload.attrGetter('ngModelOptions',attr,scope);if(!options||!options.allowInvalid){var valids=[],invalids=[];angular.forEach(files,function(file){if(file.$error){invalids.push(file);}else{valids.push(file);}});files=valids;}
var fixOrientation=upload.emptyPromise(files);if(upload.attrGetter('ngfFixOrientation',attr,scope)&&upload.isExifSupported()){fixOrientation=applyExifRotations(files,attr,scope);}
fixOrientation.then(function(){resize(files,attr,scope).then(function(){$timeout(function(){update(files,invalids,newFiles,dupFiles,isSingleModel);},options&&options.debounce?options.debounce.change||options.debounce:0);},function(e){throw'Could not resize files '+e;});});}});var l=prevFiles.length;while(l--){var prevFile=prevFiles[l];if(window.URL&&prevFile.blobUrl){URL.revokeObjectURL(prevFile.blobUrl);delete prevFile.blobUrl;}}};return upload;}]);ngFileUpload.directive('ngfSelect',['$parse','$timeout','$compile','Upload',function($parse,$timeout,$compile,Upload){var generatedElems=[];function isDelayedClickSupported(ua){var m=ua.match(/Android[^\d]*(\d+)\.(\d+)/);if(m&&m.length>2){var v=Upload.defaults.androidFixMinorVersion||4;return parseInt(m[1])<4||(parseInt(m[1])===v&&parseInt(m[2])<v);}
return ua.indexOf('Chrome')===-1&&/.*Windows.*Safari.*/.test(ua);}
function linkFileSelect(scope,elem,attr,ngModel,$parse,$timeout,$compile,upload){var attrGetter=function(name,scope){return upload.attrGetter(name,attr,scope);};function isInputTypeFile(){return elem[0].tagName.toLowerCase()==='input'&&attr.type&&attr.type.toLowerCase()==='file';}
function fileChangeAttr(){return attrGetter('ngfChange')||attrGetter('ngfSelect');}
function changeFn(evt){if(upload.shouldUpdateOn('change',attr,scope)){var fileList=evt.__files_||(evt.target&&evt.target.files),files=[];for(var i=0;i<fileList.length;i++){files.push(fileList[i]);}
upload.updateModel(ngModel,attr,scope,fileChangeAttr(),files.length?files:null,evt);}}
upload.registerModelChangeValidator(ngModel,attr,scope);var unwatches=[];unwatches.push(scope.$watch(attrGetter('ngfMultiple'),function(){fileElem.attr('multiple',attrGetter('ngfMultiple',scope));}));unwatches.push(scope.$watch(attrGetter('ngfCapture'),function(){fileElem.attr('capture',attrGetter('ngfCapture',scope));}));unwatches.push(scope.$watch(attrGetter('ngfAccept'),function(){fileElem.attr('accept',attrGetter('ngfAccept',scope));}));attr.$observe('accept',function(){fileElem.attr('accept',attrGetter('accept'));});unwatches.push(function(){if(attr.$$observers)delete attr.$$observers.accept;});function bindAttrToFileInput(fileElem){if(elem!==fileElem){for(var i=0;i<elem[0].attributes.length;i++){var attribute=elem[0].attributes[i];if(attribute.name!=='type'&&attribute.name!=='class'&&attribute.name!=='style'){if(attribute.value==null||attribute.value===''){if(attribute.name==='required')attribute.value='required';if(attribute.name==='multiple')attribute.value='multiple';}
fileElem.attr(attribute.name,attribute.name==='id'?'ngf-'+attribute.value:attribute.value);}}}}
function createFileInput(){if(isInputTypeFile()){return elem;}
var fileElem=angular.element('<input type="file">');bindAttrToFileInput(fileElem);fileElem.css('visibility','hidden').css('position','absolute').css('overflow','hidden').css('width','0px').css('height','0px').css('border','none').css('margin','0px').css('padding','0px').attr('tabindex','-1');generatedElems.push({el:elem,ref:fileElem});document.body.appendChild(fileElem[0]);return fileElem;}
var initialTouchStartY=0;function clickHandler(evt){if(elem.attr('disabled')||attrGetter('ngfSelectDisabled',scope))return false;var r=handleTouch(evt);if(r!=null)return r;resetModel(evt);try{if(!isInputTypeFile()&&!document.body.contains(fileElem[0])){generatedElems.push({el:elem,ref:fileElem});document.body.appendChild(fileElem[0]);fileElem.bind('change',changeFn);}}catch(e){}
if(isDelayedClickSupported(navigator.userAgent)){setTimeout(function(){fileElem[0].click();},0);}else{fileElem[0].click();}
return false;}
function handleTouch(evt){var touches=evt.changedTouches||(evt.originalEvent&&evt.originalEvent.changedTouches);if(evt.type==='touchstart'){initialTouchStartY=touches?touches[0].clientY:0;return true;}else{evt.stopPropagation();evt.preventDefault();if(evt.type==='touchend'){var currentLocation=touches?touches[0].clientY:0;if(Math.abs(currentLocation-initialTouchStartY)>20)return false;}}}
var fileElem=elem;function resetModel(evt){if(upload.shouldUpdateOn('click',attr,scope)&&fileElem.val()){fileElem.val(null);upload.updateModel(ngModel,attr,scope,fileChangeAttr(),null,evt,true);}}
if(!isInputTypeFile()){fileElem=createFileInput();}
fileElem.bind('change',changeFn);if(!isInputTypeFile()){elem.bind('click touchstart touchend',clickHandler);}else{elem.bind('click',resetModel);}
function ie10SameFileSelectFix(evt){if(fileElem&&!fileElem.attr('__ngf_ie10_Fix_')){if(!fileElem[0].parentNode){fileElem=null;return;}
evt.preventDefault();evt.stopPropagation();fileElem.unbind('click');var clone=fileElem.clone();fileElem.replaceWith(clone);fileElem=clone;fileElem.attr('__ngf_ie10_Fix_','true');fileElem.bind('change',changeFn);fileElem.bind('click',ie10SameFileSelectFix);fileElem[0].click();return false;}else{fileElem.removeAttr('__ngf_ie10_Fix_');}}
if(navigator.appVersion.indexOf('MSIE 10')!==-1){fileElem.bind('click',ie10SameFileSelectFix);}
if(ngModel)ngModel.$formatters.push(function(val){if(val==null||val.length===0){if(fileElem.val()){fileElem.val(null);}}
return val;});scope.$on('$destroy',function(){if(!isInputTypeFile())fileElem.remove();angular.forEach(unwatches,function(unwatch){unwatch();});});$timeout(function(){for(var i=0;i<generatedElems.length;i++){var g=generatedElems[i];if(!document.body.contains(g.el[0])){generatedElems.splice(i,1);g.ref.remove();}}});if(window.FileAPI&&window.FileAPI.ngfFixIE){window.FileAPI.ngfFixIE(elem,fileElem,changeFn);}}
return{restrict:'AEC',require:'?ngModel',link:function(scope,elem,attr,ngModel){linkFileSelect(scope,elem,attr,ngModel,$parse,$timeout,$compile,Upload);}};}]);(function(){ngFileUpload.service('UploadDataUrl',['UploadBase','$timeout','$q',function(UploadBase,$timeout,$q){var upload=UploadBase;upload.base64DataUrl=function(file){if(angular.isArray(file)){var d=$q.defer(),count=0;angular.forEach(file,function(f){upload.dataUrl(f,true)['finally'](function(){count++;if(count===file.length){var urls=[];angular.forEach(file,function(ff){urls.push(ff.$ngfDataUrl);});d.resolve(urls,file);}});});return d.promise;}else{return upload.dataUrl(file,true);}};upload.dataUrl=function(file,disallowObjectUrl){if(!file)return upload.emptyPromise(file,file);if((disallowObjectUrl&&file.$ngfDataUrl!=null)||(!disallowObjectUrl&&file.$ngfBlobUrl!=null)){return upload.emptyPromise(disallowObjectUrl?file.$ngfDataUrl:file.$ngfBlobUrl,file);}
var p=disallowObjectUrl?file.$$ngfDataUrlPromise:file.$$ngfBlobUrlPromise;if(p)return p;var deferred=$q.defer();$timeout(function(){if(window.FileReader&&file&&(!window.FileAPI||navigator.userAgent.indexOf('MSIE 8')===-1||file.size<20000)&&(!window.FileAPI||navigator.userAgent.indexOf('MSIE 9')===-1||file.size<4000000)){var URL=window.URL||window.webkitURL;if(URL&&URL.createObjectURL&&!disallowObjectUrl){var url;try{url=URL.createObjectURL(file);}catch(e){$timeout(function(){file.$ngfBlobUrl='';deferred.reject();});return;}
$timeout(function(){file.$ngfBlobUrl=url;if(url)deferred.resolve(url,file);});}else{var fileReader=new FileReader();fileReader.onload=function(e){$timeout(function(){file.$ngfDataUrl=e.target.result;deferred.resolve(e.target.result,file);});};fileReader.onerror=function(){$timeout(function(){file.$ngfDataUrl='';deferred.reject();});};fileReader.readAsDataURL(file);}}else{$timeout(function(){file[disallowObjectUrl?'dataUrl':'blobUrl']='';deferred.reject();});}});if(disallowObjectUrl){p=file.$$ngfDataUrlPromise=deferred.promise;}else{p=file.$$ngfBlobUrlPromise=deferred.promise;}
p['finally'](function(){delete file[disallowObjectUrl?'$$ngfDataUrlPromise':'$$ngfBlobUrlPromise'];});return p;};return upload;}]);function getTagType(el){if(el.tagName.toLowerCase()==='img')return'image';if(el.tagName.toLowerCase()==='audio')return'audio';if(el.tagName.toLowerCase()==='video')return'video';return/./;}
function linkFileDirective(Upload,$timeout,scope,elem,attr,directiveName,resizeParams,isBackground){function constructDataUrl(file){var disallowObjectUrl=Upload.attrGetter('ngfNoObjectUrl',attr,scope);Upload.dataUrl(file,disallowObjectUrl)['finally'](function(){$timeout(function(){var src=(disallowObjectUrl?file.$ngfDataUrl:file.$ngfBlobUrl)||file.$ngfDataUrl;if(isBackground){elem.css('background-image','url(\''+(src||'')+'\')');}else{elem.attr('src',src);}
if(src){elem.removeClass('ng-hide');}else{elem.addClass('ng-hide');}});});}
$timeout(function(){var unwatch=scope.$watch(attr[directiveName],function(file){var size=resizeParams;if(directiveName==='ngfThumbnail'){if(!size){size={width:elem[0].clientWidth,height:elem[0].clientHeight};}
if(size.width===0&&window.getComputedStyle){var style=getComputedStyle(elem[0]);size={width:parseInt(style.width.slice(0,-2)),height:parseInt(style.height.slice(0,-2))};}}
if(angular.isString(file)){elem.removeClass('ng-hide');if(isBackground){return elem.css('background-image','url(\''+file+'\')');}else{return elem.attr('src',file);}}
if(file&&file.type&&file.type.search(getTagType(elem[0]))===0&&(!isBackground||file.type.indexOf('image')===0)){if(size&&Upload.isResizeSupported()){Upload.resize(file,size.width,size.height,size.quality).then(function(f){constructDataUrl(f);},function(e){throw e;});}else{constructDataUrl(file);}}else{elem.addClass('ng-hide');}});scope.$on('$destroy',function(){unwatch();});});}
ngFileUpload.directive('ngfSrc',['Upload','$timeout',function(Upload,$timeout){return{restrict:'AE',link:function(scope,elem,attr){linkFileDirective(Upload,$timeout,scope,elem,attr,'ngfSrc',Upload.attrGetter('ngfResize',attr,scope),false);}};}]);ngFileUpload.directive('ngfBackground',['Upload','$timeout',function(Upload,$timeout){return{restrict:'AE',link:function(scope,elem,attr){linkFileDirective(Upload,$timeout,scope,elem,attr,'ngfBackground',Upload.attrGetter('ngfResize',attr,scope),true);}};}]);ngFileUpload.directive('ngfThumbnail',['Upload','$timeout',function(Upload,$timeout){return{restrict:'AE',link:function(scope,elem,attr){var size=Upload.attrGetter('ngfSize',attr,scope);linkFileDirective(Upload,$timeout,scope,elem,attr,'ngfThumbnail',size,Upload.attrGetter('ngfAsBackground',attr,scope));}};}]);ngFileUpload.config(['$compileProvider',function($compileProvider){if($compileProvider.imgSrcSanitizationWhitelist)$compileProvider.imgSrcSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|local|file|data|blob):/);if($compileProvider.aHrefSanitizationWhitelist)$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|local|file|data|blob):/);}]);ngFileUpload.filter('ngfDataUrl',['UploadDataUrl','$sce',function(UploadDataUrl,$sce){return function(file,disallowObjectUrl,trustedUrl){if(angular.isString(file)){return $sce.trustAsResourceUrl(file);}
var src=file&&((disallowObjectUrl?file.$ngfDataUrl:file.$ngfBlobUrl)||file.$ngfDataUrl);if(file&&!src){if(!file.$ngfDataUrlFilterInProgress&&angular.isObject(file)){file.$ngfDataUrlFilterInProgress=true;UploadDataUrl.dataUrl(file,disallowObjectUrl);}
return'';}
if(file)delete file.$ngfDataUrlFilterInProgress;return(file&&src?(trustedUrl?$sce.trustAsResourceUrl(src):src):file)||'';};}]);})();ngFileUpload.service('UploadValidate',['UploadDataUrl','$q','$timeout',function(UploadDataUrl,$q,$timeout){var upload=UploadDataUrl;function globStringToRegex(str){var regexp='',excludes=[];if(str.length>2&&str[0]==='/'&&str[str.length-1]==='/'){regexp=str.substring(1,str.length-1);}else{var split=str.split(',');if(split.length>1){for(var i=0;i<split.length;i++){var r=globStringToRegex(split[i]);if(r.regexp){regexp+='('+r.regexp+')';if(i<split.length-1){regexp+='|';}}else{excludes=excludes.concat(r.excludes);}}}else{if(str.indexOf('!')===0){excludes.push('^((?!'+globStringToRegex(str.substring(1)).regexp+').)*$');}else{if(str.indexOf('.')===0){str='*'+str;}
regexp='^'+str.replace(new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]','g'),'\\$&')+'$';regexp=regexp.replace(/\\\*/g,'.*').replace(/\\\?/g,'.');}}}
return{regexp:regexp,excludes:excludes};}
upload.validatePattern=function(file,val){if(!val){return true;}
var pattern=globStringToRegex(val),valid=true;if(pattern.regexp&&pattern.regexp.length){var regexp=new RegExp(pattern.regexp,'i');valid=(file.type!=null&&regexp.test(file.type))||(file.name!=null&&regexp.test(file.name));}
var len=pattern.excludes.length;while(len--){var exclude=new RegExp(pattern.excludes[len],'i');valid=valid&&(file.type==null||exclude.test(file.type))&&(file.name==null||exclude.test(file.name));}
return valid;};upload.ratioToFloat=function(val){var r=val.toString(),xIndex=r.search(/[x:]/i);if(xIndex>-1){r=parseFloat(r.substring(0,xIndex))/parseFloat(r.substring(xIndex+1));}else{r=parseFloat(r);}
return r;};upload.registerModelChangeValidator=function(ngModel,attr,scope){if(ngModel){ngModel.$formatters.push(function(files){if(!ngModel.$ngfModelChange){upload.validate(files,ngModel,attr,scope,function(){upload.applyModelValidation(ngModel,files);});}else{ngModel.$ngfModelChange=false;}});}};function markModelAsDirty(ngModel,files){if(files!=null&&!ngModel.$dirty){if(ngModel.$setDirty){ngModel.$setDirty();}else{ngModel.$dirty=true;}}}
upload.applyModelValidation=function(ngModel,files){markModelAsDirty(ngModel,files);angular.forEach(ngModel.$ngfValidations,function(validation){ngModel.$setValidity(validation.name,validation.valid);});};upload.validate=function(files,ngModel,attr,scope){ngModel=ngModel||{};ngModel.$ngfValidations=ngModel.$ngfValidations||[];angular.forEach(ngModel.$ngfValidations,function(v){v.valid=true;});var attrGetter=function(name,params){return upload.attrGetter(name,attr,scope,params);};if(files==null||files.length===0){return upload.emptyPromise(ngModel);}
files=files.length===undefined?[files]:files.slice(0);function validateSync(name,validatorVal,fn){if(files){var dName='ngf'+name[0].toUpperCase()+name.substr(1);var i=files.length,valid=null;while(i--){var file=files[i];if(file){var val=attrGetter(dName,{'$file':file});if(val==null){val=validatorVal(attrGetter('ngfValidate')||{});valid=valid==null?true:valid;}
if(val!=null){if(!fn(file,val)){file.$error=name;file.$errorParam=val;files.splice(i,1);valid=false;}}}}
if(valid!==null){ngModel.$ngfValidations.push({name:name,valid:valid});}}}
validateSync('pattern',function(cons){return cons.pattern;},upload.validatePattern);validateSync('minSize',function(cons){return cons.size&&cons.size.min;},function(file,val){return file.size>=upload.translateScalars(val);});validateSync('maxSize',function(cons){return cons.size&&cons.size.max;},function(file,val){return file.size<=upload.translateScalars(val);});var totalSize=0;validateSync('maxTotalSize',function(cons){return cons.maxTotalSize&&cons.maxTotalSize;},function(file,val){totalSize+=file.size;if(totalSize>upload.translateScalars(val)){files.splice(0,files.length);return false;}
return true;});validateSync('validateFn',function(){return null;},function(file,r){return r===true||r===null||r==='';});if(!files.length){return upload.emptyPromise(ngModel,ngModel.$ngfValidations);}
function validateAsync(name,validatorVal,type,asyncFn,fn){var promises=[upload.emptyPromise()];if(files){var dName='ngf'+name[0].toUpperCase()+name.substr(1);files=files.length===undefined?[files]:files;angular.forEach(files,function(file){var defer=$q.defer();promises.push(defer.promise);if(type&&(file.type==null||file.type.search(type)!==0)){defer.resolve();return;}
var val=attrGetter(dName,{'$file':file})||validatorVal(attrGetter('ngfValidate',{'$file':file})||{});if(val){asyncFn(file,val).then(function(d){if(!fn(d,val)){file.$error=name;file.$errorParam=val;defer.reject();}else{defer.resolve();}},function(){if(attrGetter('ngfValidateForce',{'$file':file})){file.$error=name;file.$errorParam=val;defer.reject();}else{defer.resolve();}});}else{defer.resolve();}});return $q.all(promises).then(function(){ngModel.$ngfValidations.push({name:name,valid:true});},function(){ngModel.$ngfValidations.push({name:name,valid:false});});}}
var deffer=$q.defer();var promises=[];promises.push(upload.happyPromise(validateAsync('maxHeight',function(cons){return cons.height&&cons.height.max;},/image/,this.imageDimensions,function(d,val){return d.height<=val;})));promises.push(upload.happyPromise(validateAsync('minHeight',function(cons){return cons.height&&cons.height.min;},/image/,this.imageDimensions,function(d,val){return d.height>=val;})));promises.push(upload.happyPromise(validateAsync('maxWidth',function(cons){return cons.width&&cons.width.max;},/image/,this.imageDimensions,function(d,val){return d.width<=val;})));promises.push(upload.happyPromise(validateAsync('minWidth',function(cons){return cons.width&&cons.width.min;},/image/,this.imageDimensions,function(d,val){return d.width>=val;})));promises.push(upload.happyPromise(validateAsync('ratio',function(cons){return cons.ratio;},/image/,this.imageDimensions,function(d,val){var split=val.toString().split(','),valid=false;for(var i=0;i<split.length;i++){if(Math.abs((d.width/d.height)-upload.ratioToFloat(split[i]))<0.0001){valid=true;}}
return valid;})));promises.push(upload.happyPromise(validateAsync('maxRatio',function(cons){return cons.ratio;},/image/,this.imageDimensions,function(d,val){return(d.width/d.height)-upload.ratioToFloat(val)<0.0001;})));promises.push(upload.happyPromise(validateAsync('minRatio',function(cons){return cons.ratio;},/image/,this.imageDimensions,function(d,val){return(d.width/d.height)-upload.ratioToFloat(val)>-0.0001;})));promises.push(upload.happyPromise(validateAsync('maxDuration',function(cons){return cons.duration&&cons.duration.max;},/audio|video/,this.mediaDuration,function(d,val){return d<=upload.translateScalars(val);})));promises.push(upload.happyPromise(validateAsync('minDuration',function(cons){return cons.duration&&cons.duration.min;},/audio|video/,this.mediaDuration,function(d,val){return d>=upload.translateScalars(val);})));promises.push(upload.happyPromise(validateAsync('validateAsyncFn',function(){return null;},null,function(file,val){return val;},function(r){return r===true||r===null||r==='';})));return $q.all(promises).then(function(){deffer.resolve(ngModel,ngModel.$ngfValidations);});};upload.imageDimensions=function(file){if(file.$ngfWidth&&file.$ngfHeight){var d=$q.defer();$timeout(function(){d.resolve({width:file.$ngfWidth,height:file.$ngfHeight});});return d.promise;}
if(file.$ngfDimensionPromise)return file.$ngfDimensionPromise;var deferred=$q.defer();$timeout(function(){if(file.type.indexOf('image')!==0){deferred.reject('not image');return;}
upload.dataUrl(file).then(function(dataUrl){var img=angular.element('<img>').attr('src',dataUrl).css('visibility','hidden').css('position','fixed');function success(){var width=img[0].clientWidth;var height=img[0].clientHeight;img.remove();file.$ngfWidth=width;file.$ngfHeight=height;deferred.resolve({width:width,height:height});}
function error(){img.remove();deferred.reject('load error');}
img.on('load',success);img.on('error',error);var count=0;function checkLoadError(){$timeout(function(){if(img[0].parentNode){if(img[0].clientWidth){success();}else if(count>10){error();}else{checkLoadError();}}},1000);}
checkLoadError();angular.element(document.getElementsByTagName('body')[0]).append(img);},function(){deferred.reject('load error');});});file.$ngfDimensionPromise=deferred.promise;file.$ngfDimensionPromise['finally'](function(){delete file.$ngfDimensionPromise;});return file.$ngfDimensionPromise;};upload.mediaDuration=function(file){if(file.$ngfDuration){var d=$q.defer();$timeout(function(){d.resolve(file.$ngfDuration);});return d.promise;}
if(file.$ngfDurationPromise)return file.$ngfDurationPromise;var deferred=$q.defer();$timeout(function(){if(file.type.indexOf('audio')!==0&&file.type.indexOf('video')!==0){deferred.reject('not media');return;}
upload.dataUrl(file).then(function(dataUrl){var el=angular.element(file.type.indexOf('audio')===0?'<audio>':'<video>').attr('src',dataUrl).css('visibility','none').css('position','fixed');function success(){var duration=el[0].duration;file.$ngfDuration=duration;el.remove();deferred.resolve(duration);}
function error(){el.remove();deferred.reject('load error');}
el.on('loadedmetadata',success);el.on('error',error);var count=0;function checkLoadError(){$timeout(function(){if(el[0].parentNode){if(el[0].duration){success();}else if(count>10){error();}else{checkLoadError();}}},1000);}
checkLoadError();angular.element(document.body).append(el);},function(){deferred.reject('load error');});});file.$ngfDurationPromise=deferred.promise;file.$ngfDurationPromise['finally'](function(){delete file.$ngfDurationPromise;});return file.$ngfDurationPromise;};return upload;}]);ngFileUpload.service('UploadResize',['UploadValidate','$q',function(UploadValidate,$q){var upload=UploadValidate;var calculateAspectRatioFit=function(srcWidth,srcHeight,maxWidth,maxHeight,centerCrop){var ratio=centerCrop?Math.max(maxWidth/srcWidth,maxHeight/srcHeight):Math.min(maxWidth/srcWidth,maxHeight/srcHeight);return{width:srcWidth*ratio,height:srcHeight*ratio,marginX:srcWidth*ratio-maxWidth,marginY:srcHeight*ratio-maxHeight};};var resize=function(imagen,width,height,quality,type,ratio,centerCrop){var deferred=$q.defer();var canvasElement=document.createElement('canvas');var imageElement=document.createElement('img');imageElement.onload=function(){try{if(ratio){var ratioFloat=upload.ratioToFloat(ratio);var imgRatio=imageElement.width/imageElement.height;if(imgRatio<ratioFloat){width=imageElement.width;height=width/ratioFloat;}else{height=imageElement.height;width=height*ratioFloat;}}
if(!width){width=imageElement.width;}
if(!height){height=imageElement.height;}
var dimensions=calculateAspectRatioFit(imageElement.width,imageElement.height,width,height,centerCrop);canvasElement.width=Math.min(dimensions.width,width);canvasElement.height=Math.min(dimensions.height,height);var context=canvasElement.getContext('2d');context.drawImage(imageElement,Math.min(0,-dimensions.marginX/2),Math.min(0,-dimensions.marginY/2),dimensions.width,dimensions.height);deferred.resolve(canvasElement.toDataURL(type||'image/WebP',quality||1.0));}catch(e){deferred.reject(e);}};imageElement.onerror=function(){deferred.reject();};imageElement.src=imagen;return deferred.promise;};upload.dataUrltoBlob=function(dataurl,name){var arr=dataurl.split(','),mime=arr[0].match(/:(.*?);/)[1],bstr=atob(arr[1]),n=bstr.length,u8arr=new Uint8Array(n);while(n--){u8arr[n]=bstr.charCodeAt(n);}
var blob=new Blob([u8arr],{type:mime});blob.name=name;return blob;};upload.isResizeSupported=function(){var elem=document.createElement('canvas');return window.atob&&elem.getContext&&elem.getContext('2d');};if(upload.isResizeSupported()){Object.defineProperty(Blob.prototype,'name',{get:function(){return this.$ngfName;},set:function(v){this.$ngfName=v;},configurable:true});}
upload.resize=function(file,width,height,quality,type,ratio,centerCrop){if(file.type.indexOf('image')!==0)return upload.emptyPromise(file);var deferred=$q.defer();upload.dataUrl(file,true).then(function(url){resize(url,width,height,quality,type||file.type,ratio,centerCrop).then(function(dataUrl){deferred.resolve(upload.dataUrltoBlob(dataUrl,file.name));},function(){deferred.reject();});},function(){deferred.reject();});return deferred.promise;};return upload;}]);(function(){ngFileUpload.directive('ngfDrop',['$parse','$timeout','$location','Upload','$http',function($parse,$timeout,$location,Upload,$http){return{restrict:'AEC',require:'?ngModel',link:function(scope,elem,attr,ngModel){linkDrop(scope,elem,attr,ngModel,$parse,$timeout,$location,Upload,$http);}};}]);ngFileUpload.directive('ngfNoFileDrop',function(){return function(scope,elem){if(dropAvailable())elem.css('display','none');};});ngFileUpload.directive('ngfDropAvailable',['$parse','$timeout','Upload',function($parse,$timeout,Upload){return function(scope,elem,attr){if(dropAvailable()){var model=$parse(Upload.attrGetter('ngfDropAvailable',attr));$timeout(function(){model(scope);if(model.assign){model.assign(scope,true);}});}};}]);function linkDrop(scope,elem,attr,ngModel,$parse,$timeout,$location,upload,$http){var available=dropAvailable();var attrGetter=function(name,scope,params){return upload.attrGetter(name,attr,scope,params);};if(attrGetter('dropAvailable')){$timeout(function(){if(scope[attrGetter('dropAvailable')]){scope[attrGetter('dropAvailable')].value=available;}else{scope[attrGetter('dropAvailable')]=available;}});}
if(!available){if(attrGetter('ngfHideOnDropNotAvailable',scope)===true){elem.css('display','none');}
return;}
function isDisabled(){return elem.attr('disabled')||attrGetter('ngfDropDisabled',scope);}
if(attrGetter('ngfSelect')==null){upload.registerModelChangeValidator(ngModel,attr,scope);}
var leaveTimeout=null;var stopPropagation=$parse(attrGetter('ngfStopPropagation'));var dragOverDelay=1;var actualDragOverClass;elem[0].addEventListener('dragover',function(evt){if(isDisabled())return;evt.preventDefault();if(stopPropagation(scope))evt.stopPropagation();if(navigator.userAgent.indexOf('Chrome')>-1){var b=evt.dataTransfer.effectAllowed;evt.dataTransfer.dropEffect=('move'===b||'linkMove'===b)?'move':'copy';}
$timeout.cancel(leaveTimeout);if(!actualDragOverClass){actualDragOverClass='C';calculateDragOverClass(scope,attr,evt,function(clazz){actualDragOverClass=clazz;elem.addClass(actualDragOverClass);attrGetter('ngfDrag',scope,{$isDragging:true,$class:actualDragOverClass,$event:evt});});}},false);elem[0].addEventListener('dragenter',function(evt){if(isDisabled())return;evt.preventDefault();if(stopPropagation(scope))evt.stopPropagation();},false);elem[0].addEventListener('dragleave',function(evt){if(isDisabled())return;evt.preventDefault();if(stopPropagation(scope))evt.stopPropagation();leaveTimeout=$timeout(function(){if(actualDragOverClass)elem.removeClass(actualDragOverClass);actualDragOverClass=null;attrGetter('ngfDrag',scope,{$isDragging:false,$event:evt});},dragOverDelay||100);},false);elem[0].addEventListener('drop',function(evt){if(isDisabled()||!upload.shouldUpdateOn('drop',attr,scope))return;evt.preventDefault();if(stopPropagation(scope))evt.stopPropagation();if(actualDragOverClass)elem.removeClass(actualDragOverClass);actualDragOverClass=null;var html;try{html=(evt.dataTransfer&&evt.dataTransfer.getData&&evt.dataTransfer.getData('text/html'));}catch(e){}
if(upload.shouldUpdateOn('dropUrl',attr,scope)&&html){var url;html.replace(/<img .*src *=\"([^\"]*)\"/,function(m,src){url=src;});if(url){$http({url:url,method:'get',responseType:'arraybuffer'}).then(function(resp){var arrayBufferView=new Uint8Array(resp.data);var type=resp.headers('content-type')||'image/WebP';var blob=new Blob([arrayBufferView],{type:type});upload.updateModel(ngModel,attr,scope,attrGetter('ngfChange')||attrGetter('ngfDrop'),[blob],evt);});}}else{extractFiles(evt,function(files){upload.updateModel(ngModel,attr,scope,attrGetter('ngfChange')||attrGetter('ngfDrop'),files,evt);},attrGetter('ngfAllowDir',scope)!==false,attrGetter('multiple')||attrGetter('ngfMultiple',scope));}},false);elem[0].addEventListener('paste',function(evt){if(isDisabled()||!upload.shouldUpdateOn('paste',attr,scope))return;var files=[];var clipboard=evt.clipboardData||evt.originalEvent.clipboardData;if(clipboard&&clipboard.items){for(var k=0;k<clipboard.items.length;k++){if(clipboard.items[k].type.indexOf('image')!==-1){files.push(clipboard.items[k].getAsFile());}}
upload.updateModel(ngModel,attr,scope,attrGetter('ngfChange')||attrGetter('ngfDrop'),files,evt);}},false);function calculateDragOverClass(scope,attr,evt,callback){var obj=attrGetter('ngfDragOverClass',scope,{$event:evt}),dClass='dragover';if(angular.isString(obj)){dClass=obj;}else if(obj){if(obj.delay)dragOverDelay=obj.delay;if(obj.accept||obj.reject){var items=evt.dataTransfer.items;if(items==null||!items.length){dClass=obj.accept;}else{var pattern=obj.pattern||attrGetter('ngfPattern',scope,{$event:evt});var len=items.length;while(len--){if(!upload.validatePattern(items[len],pattern)){dClass=obj.reject;break;}else{dClass=obj.accept;}}}}}
callback(dClass);}
function extractFiles(evt,callback,allowDir,multiple){var files=[],processing=0;function traverseFileTree(files,entry,path){if(entry!=null){if(entry.isDirectory){var filePath=(path||'')+entry.name;files.push({name:entry.name,type:'directory',path:filePath});var dirReader=entry.createReader();var entries=[];processing++;var readEntries=function(){dirReader.readEntries(function(results){try{if(!results.length){for(var i=0;i<entries.length;i++){traverseFileTree(files,entries[i],(path?path:'')+entry.name+'/');}
processing--;}else{entries=entries.concat(Array.prototype.slice.call(results||[],0));readEntries();}}catch(e){processing--;console.error(e);}},function(){processing--;});};readEntries();}else{processing++;entry.file(function(file){try{processing--;file.path=(path?path:'')+file.name;files.push(file);}catch(e){processing--;console.error(e);}},function(){processing--;});}}}
var items=evt.dataTransfer.items;if(items&&items.length>0&&$location.protocol()!=='file'){for(var i=0;i<items.length;i++){if(items[i].webkitGetAsEntry&&items[i].webkitGetAsEntry()&&items[i].webkitGetAsEntry().isDirectory){var entry=items[i].webkitGetAsEntry();if(entry.isDirectory&&!allowDir){continue;}
if(entry!=null){traverseFileTree(files,entry);}}else{var f=items[i].getAsFile();if(f!=null)files.push(f);}
if(!multiple&&files.length>0)break;}}else{var fileList=evt.dataTransfer.files;if(fileList!=null){for(var j=0;j<fileList.length;j++){files.push(fileList.item(j));if(!multiple&&files.length>0){break;}}}}
var delays=0;(function waitForProcess(delay){$timeout(function(){if(!processing){if(!multiple&&files.length>1){i=0;while(files[i].type==='directory')i++;files=[files[i]];}
callback(files);}else{if(delays++*10<20*1000){waitForProcess(10);}}},delay||0);})();}}
function dropAvailable(){var div=document.createElement('div');return('draggable'in div)&&('ondrop'in div)&&!/Edge\/12./i.test(navigator.userAgent);}})();ngFileUpload.service('UploadExif',['UploadResize','$q',function(UploadResize,$q){var upload=UploadResize;function findEXIFinJPEG(file){var dataView=new DataView(file);if((dataView.getUint8(0)!==0xFF)||(dataView.getUint8(1)!==0xD8)){return'Not a valid JPEG';}
var offset=2,length=file.byteLength,marker;while(offset<length){if(dataView.getUint8(offset)!==0xFF){return'Not a valid marker at offset '+offset+', found: '+dataView.getUint8(offset);}
marker=dataView.getUint8(offset+1);if(marker===225){return readEXIFData(dataView,offset+4,dataView.getUint16(offset+2)-2);}else{offset+=2+dataView.getUint16(offset+2);}}}
function readOrientation(file,tiffStart,dirStart,bigEnd){var entries=file.getUint16(dirStart,!bigEnd),entryOffset,i;for(i=0;i<entries;i++){entryOffset=dirStart+i*12+2;var val=file.getUint16(entryOffset,!bigEnd);if(0x0112===val){return readTagValue(file,entryOffset,tiffStart,bigEnd);}}
return null;}
function readTagValue(file,entryOffset,tiffStart,bigEnd){var numValues=file.getUint32(entryOffset+4,!bigEnd),valueOffset=file.getUint32(entryOffset+8,!bigEnd)+tiffStart,offset,vals,n;if(numValues===1){return file.getUint16(entryOffset+8,!bigEnd);}else{offset=numValues>2?valueOffset:(entryOffset+8);vals=[];for(n=0;n<numValues;n++){vals[n]=file.getUint16(offset+2*n,!bigEnd);}
return vals;}}
function getStringFromDB(buffer,start,length){var outstr='';for(var n=start;n<start+length;n++){outstr+=String.fromCharCode(buffer.getUint8(n));}
return outstr;}
function readEXIFData(file,start){if(getStringFromDB(file,start,4)!=='Exif'){return'Not valid EXIF data! '+getStringFromDB(file,start,4);}
var bigEnd,tiffOffset=start+6;if(file.getUint16(tiffOffset)===0x4949){bigEnd=false;}else if(file.getUint16(tiffOffset)===0x4D4D){bigEnd=true;}else{return'Not valid TIFF data! (no 0x4949 or 0x4D4D)';}
if(file.getUint16(tiffOffset+2,!bigEnd)!==0x002A){return'Not valid TIFF data! (no 0x002A)';}
var firstIFDOffset=file.getUint32(tiffOffset+4,!bigEnd);if(firstIFDOffset<0x00000008){return'Not valid TIFF data! (First offset less than 8)',file.getUint32(tiffOffset+4,!bigEnd);}
return readOrientation(file,tiffOffset,tiffOffset+firstIFDOffset,bigEnd);}
upload.isExifSupported=function(){return window.FileReader&&new FileReader().readAsArrayBuffer&&upload.isResizeSupported();};upload.orientation=function(file){if(file.$ngfOrientation!=null){return upload.emptyPromise(file.$ngfOrientation);}
var defer=$q.defer();var fileReader=new FileReader();fileReader.onload=function(e){var orientation;try{orientation=findEXIFinJPEG(e.target.result);}catch(e){defer.reject(e);return;}
if(angular.isString(orientation)){defer.resolve(1);}else{file.$ngfOrientation=orientation;defer.resolve(orientation);}};fileReader.onerror=function(e){defer.reject(e);};fileReader.readAsArrayBuffer(file);return defer.promise;};function applyTransform(ctx,orientation,width,height){switch(orientation){case 2:return ctx.transform(-1,0,0,1,width,0);case 3:return ctx.transform(-1,0,0,-1,width,height);case 4:return ctx.transform(1,0,0,-1,0,height);case 5:return ctx.transform(0,1,1,0,0,0);case 6:return ctx.transform(0,1,-1,0,height,0);case 7:return ctx.transform(0,-1,-1,0,height,width);case 8:return ctx.transform(0,-1,1,0,0,width);}}
upload.applyExifRotation=function(file){if(file.type.indexOf('image/jpeg')!==0){return upload.emptyPromise(file);}
var deferred=$q.defer();upload.orientation(file).then(function(orientation){if(!orientation||orientation<2||orientation>8){deferred.resolve(file);}
upload.dataUrl(file,true).then(function(url){var canvas=document.createElement('canvas');var img=document.createElement('img');img.onload=function(){try{canvas.width=orientation>4?img.height:img.width;canvas.height=orientation>4?img.width:img.height;var ctx=canvas.getContext('2d');applyTransform(ctx,orientation,img.width,img.height);ctx.drawImage(img,0,0);var dataUrl=canvas.toDataURL(file.type||'image/WebP',1.0);var blob=upload.dataUrltoBlob(dataUrl,file.name);deferred.resolve(blob);}catch(e){deferred.reject(e);}};img.onerror=function(){deferred.reject();};img.src=url;},function(e){deferred.reject(e);});},function(e){deferred.reject(e);});return deferred.promise;};return upload;}]);(function(){'use strict';angular.module('toastr',[]).factory('toastr',toastr);toastr.$inject=['$animate','$injector','$document','$rootScope','$sce','toastrConfig','$q'];function toastr($animate,$injector,$document,$rootScope,$sce,toastrConfig,$q){var container;var index=0;var toasts=[];var previousToastMessage='';var openToasts={};var containerDefer=$q.defer();var toast={clear:clear,error:error,info:info,remove:remove,success:success,warning:warning};return toast;function clear(toast){if(arguments.length===1&&!toast){return;}
if(toast){remove(toast.toastId);}else{for(var i=0;i<toasts.length;i++){remove(toasts[i].toastId);}}}
function error(message,title,optionsOverride){var type=_getOptions().iconClasses.error;return _buildNotification(type,message,title,optionsOverride);}
function info(message,title,optionsOverride){var type=_getOptions().iconClasses.info;return _buildNotification(type,message,title,optionsOverride);}
function success(message,title,optionsOverride){var type=_getOptions().iconClasses.success;return _buildNotification(type,message,title,optionsOverride);}
function warning(message,title,optionsOverride){var type=_getOptions().iconClasses.warning;return _buildNotification(type,message,title,optionsOverride);}
function remove(toastId,wasClicked){var toast=findToast(toastId);if(toast&&!toast.deleting){toast.deleting=true;toast.isOpened=false;$animate.leave(toast.el).then(function(){if(toast.scope.options.onHidden){toast.scope.options.onHidden(!!wasClicked,toast);}
toast.scope.$destroy();var index=toasts.indexOf(toast);delete openToasts[toast.scope.message];toasts.splice(index,1);var maxOpened=toastrConfig.maxOpened;if(maxOpened&&toasts.length>=maxOpened){toasts[maxOpened-1].open.resolve();}
if(lastToast()){container.remove();container=null;containerDefer=$q.defer();}});}
function findToast(toastId){for(var i=0;i<toasts.length;i++){if(toasts[i].toastId===toastId){return toasts[i];}}}
function lastToast(){return!toasts.length;}}
function _buildNotification(type,message,title,optionsOverride){if(angular.isObject(title)){optionsOverride=title;title=null;}
return _notify({iconClass:type,message:message,optionsOverride:optionsOverride,title:title});}
function _getOptions(){return angular.extend({},toastrConfig);}
function _createOrGetContainer(options){if(container){return containerDefer.promise;}
container=angular.element('<div></div>');container.attr('id',options.containerId);container.addClass(options.positionClass);container.css({'pointer-events':'auto'});var target=angular.element(document.querySelector(options.target));if(!target||!target.length){throw'Target for toasts doesn\'t exist';}
$animate.enter(container,target).then(function(){containerDefer.resolve();});return containerDefer.promise;}
function _notify(map){var options=_getOptions();if(shouldExit()){return;}
var newToast=createToast();toasts.push(newToast);if(ifMaxOpenedAndAutoDismiss()){var oldToasts=toasts.slice(0,(toasts.length-options.maxOpened));for(var i=0,len=oldToasts.length;i<len;i++){remove(oldToasts[i].toastId);}}
if(maxOpenedNotReached()){newToast.open.resolve();}
newToast.open.promise.then(function(){_createOrGetContainer(options).then(function(){newToast.isOpened=true;if(options.newestOnTop){$animate.enter(newToast.el,container).then(function(){newToast.scope.init();});}else{var sibling=container[0].lastChild?angular.element(container[0].lastChild):null;$animate.enter(newToast.el,container,sibling).then(function(){newToast.scope.init();});}});});return newToast;function ifMaxOpenedAndAutoDismiss(){return options.autoDismiss&&options.maxOpened&&toasts.length>options.maxOpened;}
function createScope(toast,map,options){if(options.allowHtml){toast.scope.allowHtml=true;toast.scope.title=$sce.trustAsHtml(map.title);toast.scope.message=$sce.trustAsHtml(map.message);}else{toast.scope.title=map.title;toast.scope.message=map.message;}
toast.scope.toastType=toast.iconClass;toast.scope.toastId=toast.toastId;toast.scope.extraData=options.extraData;toast.scope.options={extendedTimeOut:options.extendedTimeOut,messageClass:options.messageClass,onHidden:options.onHidden,onShown:generateEvent('onShown'),onTap:generateEvent('onTap'),progressBar:options.progressBar,tapToDismiss:options.tapToDismiss,timeOut:options.timeOut,titleClass:options.titleClass,toastClass:options.toastClass};if(options.closeButton){toast.scope.options.closeHtml=options.closeHtml;}
function generateEvent(event){if(options[event]){return function(){options[event](toast);};}}}
function createToast(){var newToast={toastId:index++,isOpened:false,scope:$rootScope.$new(),open:$q.defer()};newToast.iconClass=map.iconClass;if(map.optionsOverride){angular.extend(options,cleanOptionsOverride(map.optionsOverride));newToast.iconClass=map.optionsOverride.iconClass||newToast.iconClass;}
createScope(newToast,map,options);newToast.el=createToastEl(newToast.scope);return newToast;function cleanOptionsOverride(options){var badOptions=['containerId','iconClasses','maxOpened','newestOnTop','positionClass','preventDuplicates','preventOpenDuplicates','templates'];for(var i=0,l=badOptions.length;i<l;i++){delete options[badOptions[i]];}
return options;}}
function createToastEl(scope){var angularDomEl=angular.element('<div toast></div>'),$compile=$injector.get('$compile');return $compile(angularDomEl)(scope);}
function maxOpenedNotReached(){return options.maxOpened&&toasts.length<=options.maxOpened||!options.maxOpened;}
function shouldExit(){var isDuplicateOfLast=options.preventDuplicates&&map.message===previousToastMessage;var isDuplicateOpen=options.preventOpenDuplicates&&openToasts[map.message];if(isDuplicateOfLast||isDuplicateOpen){return true;}
previousToastMessage=map.message;openToasts[map.message]=true;return false;}}}}());(function(){'use strict';angular.module('toastr').constant('toastrConfig',{allowHtml:false,autoDismiss:false,closeButton:false,closeHtml:'<button>&times;</button>',containerId:'toast-container',extendedTimeOut:1000,iconClasses:{error:'toast-error',info:'toast-info',success:'toast-success',warning:'toast-warning'},maxOpened:0,messageClass:'toast-message',newestOnTop:true,onHidden:null,onShown:null,onTap:null,positionClass:'toast-top-right',preventDuplicates:false,preventOpenDuplicates:false,progressBar:false,tapToDismiss:true,target:'body',templates:{toast:'directives/toast/toast.html',progressbar:'directives/progressbar/progressbar.html'},timeOut:5000,titleClass:'toast-title',toastClass:'toast'});}());(function(){'use strict';angular.module('toastr').directive('progressBar',progressBar);progressBar.$inject=['toastrConfig'];function progressBar(toastrConfig){return{replace:true,require:'^toast',templateUrl:function(){return toastrConfig.templates.progressbar;},link:linkFunction};function linkFunction(scope,element,attrs,toastCtrl){var intervalId,currentTimeOut,hideTime;toastCtrl.progressBar=scope;scope.start=function(duration){if(intervalId){clearInterval(intervalId);}
currentTimeOut=parseFloat(duration);hideTime=new Date().getTime()+currentTimeOut;intervalId=setInterval(updateProgress,10);};scope.stop=function(){if(intervalId){clearInterval(intervalId);}};function updateProgress(){var percentage=((hideTime-(new Date().getTime()))/currentTimeOut)*100;element.css('width',percentage+'%');}
scope.$on('$destroy',function(){clearInterval(intervalId);});}}}());(function(){'use strict';angular.module('toastr').controller('ToastController',ToastController);function ToastController(){this.progressBar=null;this.startProgressBar=function(duration){if(this.progressBar){this.progressBar.start(duration);}};this.stopProgressBar=function(){if(this.progressBar){this.progressBar.stop();}};}}());(function(){'use strict';angular.module('toastr').directive('toast',toast);toast.$inject=['$injector','$interval','toastrConfig','toastr'];function toast($injector,$interval,toastrConfig,toastr){return{replace:true,templateUrl:function(){return toastrConfig.templates.toast;},controller:'ToastController',link:toastLinkFunction};function toastLinkFunction(scope,element,attrs,toastCtrl){var timeout;scope.toastClass=scope.options.toastClass;scope.titleClass=scope.options.titleClass;scope.messageClass=scope.options.messageClass;scope.progressBar=scope.options.progressBar;if(wantsCloseButton()){var button=angular.element(scope.options.closeHtml),$compile=$injector.get('$compile');button.addClass('toast-close-button');button.attr('ng-click','close(true, $event)');$compile(button)(scope);element.prepend(button);}
scope.init=function(){if(scope.options.timeOut){timeout=createTimeout(scope.options.timeOut);}
if(scope.options.onShown){scope.options.onShown();}};element.on('mouseenter',function(){hideAndStopProgressBar();if(timeout){$interval.cancel(timeout);}});scope.tapToast=function(){if(angular.isFunction(scope.options.onTap)){scope.options.onTap();}
if(scope.options.tapToDismiss){scope.close(true);}};scope.close=function(wasClicked,$event){if($event&&angular.isFunction($event.stopPropagation)){$event.stopPropagation();}
toastr.remove(scope.toastId,wasClicked);};element.on('mouseleave',function(){if(scope.options.timeOut===0&&scope.options.extendedTimeOut===0){return;}
scope.$apply(function(){scope.progressBar=scope.options.progressBar;});timeout=createTimeout(scope.options.extendedTimeOut);});function createTimeout(time){toastCtrl.startProgressBar(time);return $interval(function(){toastCtrl.stopProgressBar();toastr.remove(scope.toastId);},time,1);}
function hideAndStopProgressBar(){scope.progressBar=false;toastCtrl.stopProgressBar();}
function wantsCloseButton(){return scope.options.closeHtml;}}}}());angular.module("toastr").run(["$templateCache",function($templateCache){$templateCache.put("directives/progressbar/progressbar.html","<div class=\"toast-progress\"></div>\n");$templateCache.put("directives/toast/toast.html","<div class=\"{{toastClass}} {{toastType}}\" ng-click=\"tapToast()\">\n  <div ng-switch on=\"allowHtml\">\n    <div ng-switch-default ng-if=\"title\" class=\"{{titleClass}}\" aria-label=\"{{title}}\">{{title}}</div>\n    <div ng-switch-default class=\"{{messageClass}}\" aria-label=\"{{message}}\">{{message}}</div>\n    <div ng-switch-when=\"true\" ng-if=\"title\" class=\"{{titleClass}}\" ng-bind-html=\"title\"></div>\n    <div ng-switch-when=\"true\" class=\"{{messageClass}}\" ng-bind-html=\"message\"></div>\n  </div>\n  <progress-bar ng-if=\"progressBar\"></progress-bar>\n</div>\n");}]);(function(window,angular,undefined){'use strict';var isArray=angular.isArray;var forEach=angular.forEach;var isString=angular.isString;var jqLite=angular.element;angular.module('ngMessages',[]).directive('ngMessages',['$animate',function($animate){var ACTIVE_CLASS='ng-active';var INACTIVE_CLASS='ng-inactive';return{require:'ngMessages',restrict:'AE',controller:['$element','$scope','$attrs',function($element,$scope,$attrs){var ctrl=this;var latestKey=0;var nextAttachId=0;this.getAttachId=function getAttachId(){return nextAttachId++;};var messages=this.messages={};var renderLater,cachedCollection;this.render=function(collection){collection=collection||{};renderLater=false;cachedCollection=collection;var multiple=isAttrTruthy($scope,$attrs.ngMessagesMultiple)||isAttrTruthy($scope,$attrs.multiple);var unmatchedMessages=[];var matchedKeys={};var messageItem=ctrl.head;var messageFound=false;var totalMessages=0;while(messageItem!=null){totalMessages++;var messageCtrl=messageItem.message;var messageUsed=false;if(!messageFound){forEach(collection,function(value,key){if(!messageUsed&&truthy(value)&&messageCtrl.test(key)){if(matchedKeys[key])return;matchedKeys[key]=true;messageUsed=true;messageCtrl.attach();}});}
if(messageUsed){messageFound=!multiple;}else{unmatchedMessages.push(messageCtrl);}
messageItem=messageItem.next;}
forEach(unmatchedMessages,function(messageCtrl){messageCtrl.detach();});unmatchedMessages.length!==totalMessages?$animate.setClass($element,ACTIVE_CLASS,INACTIVE_CLASS):$animate.setClass($element,INACTIVE_CLASS,ACTIVE_CLASS);};$scope.$watchCollection($attrs.ngMessages||$attrs['for'],ctrl.render);this.reRender=function(){if(!renderLater){renderLater=true;$scope.$evalAsync(function(){if(renderLater){cachedCollection&&ctrl.render(cachedCollection);}});}};this.register=function(comment,messageCtrl){var nextKey=latestKey.toString();messages[nextKey]={message:messageCtrl};insertMessageNode($element[0],comment,nextKey);comment.$$ngMessageNode=nextKey;latestKey++;ctrl.reRender();};this.deregister=function(comment){var key=comment.$$ngMessageNode;delete comment.$$ngMessageNode;removeMessageNode($element[0],comment,key);delete messages[key];ctrl.reRender();};function findPreviousMessage(parent,comment){var prevNode=comment;var parentLookup=[];while(prevNode&&prevNode!==parent){var prevKey=prevNode.$$ngMessageNode;if(prevKey&&prevKey.length){return messages[prevKey];}
if(prevNode.childNodes.length&&parentLookup.indexOf(prevNode)==-1){parentLookup.push(prevNode);prevNode=prevNode.childNodes[prevNode.childNodes.length-1];}else{prevNode=prevNode.previousSibling||prevNode.parentNode;}}}
function insertMessageNode(parent,comment,key){var messageNode=messages[key];if(!ctrl.head){ctrl.head=messageNode;}else{var match=findPreviousMessage(parent,comment);if(match){messageNode.next=match.next;match.next=messageNode;}else{messageNode.next=ctrl.head;ctrl.head=messageNode;}}}
function removeMessageNode(parent,comment,key){var messageNode=messages[key];var match=findPreviousMessage(parent,comment);if(match){match.next=messageNode.next;}else{ctrl.head=messageNode.next;}}}]};function isAttrTruthy(scope,attr){return(isString(attr)&&attr.length===0)||truthy(scope.$eval(attr));}
function truthy(val){return isString(val)?val.length:!!val;}}]).directive('ngMessagesInclude',['$templateRequest','$document','$compile',function($templateRequest,$document,$compile){return{restrict:'AE',require:'^^ngMessages',link:function($scope,element,attrs){var src=attrs.ngMessagesInclude||attrs.src;$templateRequest(src).then(function(html){$compile(html)($scope,function(contents){element.after(contents);var anchor=jqLite($document[0].createComment(' ngMessagesInclude: '+src+' '));element.after(anchor);element.remove();});});}};}]).directive('ngMessage',ngMessageDirectiveFactory('AE')).directive('ngMessageExp',ngMessageDirectiveFactory('A'));function ngMessageDirectiveFactory(restrict){return['$animate',function($animate){return{restrict:'AE',transclude:'element',terminal:true,require:'^^ngMessages',link:function(scope,element,attrs,ngMessagesCtrl,$transclude){var commentNode=element[0];var records;var staticExp=attrs.ngMessage||attrs.when;var dynamicExp=attrs.ngMessageExp||attrs.whenExp;var assignRecords=function(items){records=items?(isArray(items)?items:items.split(/[\s,]+/)):null;ngMessagesCtrl.reRender();};if(dynamicExp){assignRecords(scope.$eval(dynamicExp));scope.$watchCollection(dynamicExp,assignRecords);}else{assignRecords(staticExp);}
var currentElement,messageCtrl;ngMessagesCtrl.register(commentNode,messageCtrl={test:function(name){return contains(records,name);},attach:function(){if(!currentElement){$transclude(scope,function(elm){$animate.enter(elm,null,element);currentElement=elm;var $$attachId=currentElement.$$attachId=ngMessagesCtrl.getAttachId();currentElement.on('$destroy',function(){if(currentElement&&currentElement.$$attachId===$$attachId){ngMessagesCtrl.deregister(commentNode);messageCtrl.detach();}});});}},detach:function(){if(currentElement){var elm=currentElement;currentElement=null;$animate.leave(elm);}}});}};}];function contains(collection,key){if(collection){return isArray(collection)?collection.indexOf(key)>=0:collection.hasOwnProperty(key);}}}})(window,window.angular);(function(angular,analytics){'use strict';var angulartics=window.angulartics||(window.angulartics={});angulartics.waitForVendorCount=0;angulartics.waitForVendorApi=function(objectName,delay,containsField,registerFn,onTimeout){if(!onTimeout){angulartics.waitForVendorCount++;}
if(!registerFn){registerFn=containsField;containsField=undefined;}
if(!Object.prototype.hasOwnProperty.call(window,objectName)||(containsField!==undefined&&window[objectName][containsField]===undefined)){setTimeout(function(){angulartics.waitForVendorApi(objectName,delay,containsField,registerFn,true);},delay);}
else{angulartics.waitForVendorCount--;registerFn(window[objectName]);}};angular.module('angulartics',[]).provider('$analytics',function(){var settings={pageTracking:{autoTrackFirstPage:true,autoTrackVirtualPages:true,trackRelativePath:false,autoBasePath:false,basePath:'',excludedRoutes:[]},eventTracking:{},bufferFlushDelay:1000,developerMode:false};var knownHandlers=['pageTrack','eventTrack','setAlias','setUsername','setUserProperties','setUserPropertiesOnce','setSuperProperties','setSuperPropertiesOnce'];var cache={};var handlers={};var bufferedHandler=function(handlerName){return function(){if(angulartics.waitForVendorCount){if(!cache[handlerName]){cache[handlerName]=[];}
cache[handlerName].push(arguments);}};};var updateHandlers=function(handlerName,fn){if(!handlers[handlerName]){handlers[handlerName]=[];}
handlers[handlerName].push(fn);return function(){var handlerArgs=arguments;angular.forEach(handlers[handlerName],function(handler){handler.apply(this,handlerArgs);},this);};};var api={settings:settings};var onTimeout=function(fn,delay){if(delay){setTimeout(fn,delay);}else{fn();}};var provider={$get:function(){return api;},api:api,settings:settings,virtualPageviews:function(value){this.settings.pageTracking.autoTrackVirtualPages=value;},excludeRoutes:function(routes){this.settings.pageTracking.excludedRoutes=routes;},firstPageview:function(value){this.settings.pageTracking.autoTrackFirstPage=value;},withBase:function(value){this.settings.pageTracking.basePath=(value)?angular.element(document).find('base').attr('href'):'';},withAutoBase:function(value){this.settings.pageTracking.autoBasePath=value;},developerMode:function(value){this.settings.developerMode=value;}};var register=function(handlerName,fn){api[handlerName]=updateHandlers(handlerName,fn);var handlerSettings=settings[handlerName];var handlerDelay=(handlerSettings)?handlerSettings.bufferFlushDelay:null;var delay=(handlerDelay!==null)?handlerDelay:settings.bufferFlushDelay;angular.forEach(cache[handlerName],function(args,index){onTimeout(function(){fn.apply(this,args);},index*delay);});};var capitalize=function(input){return input.replace(/^./,function(match){return match.toUpperCase();});};var installHandlerRegisterFunction=function(handlerName){var registerName='register'+capitalize(handlerName);provider[registerName]=function(fn){register(handlerName,fn);};api[handlerName]=updateHandlers(handlerName,bufferedHandler(handlerName));};angular.forEach(knownHandlers,installHandlerRegisterFunction);return provider;}).run(['$rootScope','$window','$analytics','$injector',function($rootScope,$window,$analytics,$injector){function matchesExcludedRoute(url){for(var i=0;i<$analytics.settings.pageTracking.excludedRoutes.length;i++){var excludedRoute=$analytics.settings.pageTracking.excludedRoutes[i];if((excludedRoute instanceof RegExp&&excludedRoute.test(url))||url.indexOf(excludedRoute)>-1){return true;}}
return false;}
function pageTrack(url,$location){if(!matchesExcludedRoute(url)){$analytics.pageTrack(url,$location);}}
if($analytics.settings.pageTracking.autoTrackFirstPage){$injector.invoke(['$location',function($location){var noRoutesOrStates=true;if($injector.has('$route')){var $route=$injector.get('$route');for(var route in $route.routes){noRoutesOrStates=false;break;}}else if($injector.has('$state')){var $state=$injector.get('$state');for(var state in $state.get()){noRoutesOrStates=false;break;}}
if(noRoutesOrStates){if($analytics.settings.pageTracking.autoBasePath){$analytics.settings.pageTracking.basePath=$window.location.pathname;}
if($analytics.settings.pageTracking.trackRelativePath){var url=$analytics.settings.pageTracking.basePath+$location.url();pageTrack(url,$location);}else{pageTrack($location.absUrl(),$location);}}}]);}
if($analytics.settings.pageTracking.autoTrackVirtualPages){$injector.invoke(['$location',function($location){if($analytics.settings.pageTracking.autoBasePath){$analytics.settings.pageTracking.basePath=$window.location.pathname+"#";}
var noRoutesOrStates=true;if($injector.has('$route')){var $route=$injector.get('$route');for(var route in $route.routes){noRoutesOrStates=false;break;}
$rootScope.$on('$routeChangeSuccess',function(event,current){if(current&&(current.$$route||current).redirectTo)return;var url=$analytics.settings.pageTracking.basePath+$location.url();pageTrack(url,$location);});}
if($injector.has('$state')){noRoutesOrStates=false;$rootScope.$on('$stateChangeSuccess',function(event,current){var url=$analytics.settings.pageTracking.basePath+$location.url();pageTrack(url,$location);});}
if(noRoutesOrStates){$rootScope.$on('$locationChangeSuccess',function(event,current){if(current&&(current.$$route||current).redirectTo)return;if($analytics.settings.pageTracking.trackRelativePath){var url=$analytics.settings.pageTracking.basePath+$location.url();pageTrack(url,$location);}else{pageTrack($location.absUrl(),$location);}});}}]);}
if($analytics.settings.developerMode){angular.forEach($analytics,function(attr,name){if(typeof attr==='function'){$analytics[name]=function(){};}});}}]).directive('analyticsOn',['$analytics',function($analytics){function isCommand(element){return['a:','button:','button:button','button:submit','input:button','input:submit'].indexOf(element.tagName.toLowerCase()+':'+(element.type||''))>=0;}
function inferEventType(element){if(isCommand(element))return'click';return'click';}
function inferEventName(element){if(isCommand(element))return element.innerText||element.value;return element.id||element.name||element.tagName;}
function isProperty(name){return name.substr(0,9)==='analytics'&&['On','Event','If','Properties','EventType'].indexOf(name.substr(9))===-1;}
function propertyName(name){var s=name.slice(9);if(typeof s!=='undefined'&&s!==null&&s.length>0){return s.substring(0,1).toLowerCase()+s.substring(1);}
else{return s;}}
return{restrict:'A',link:function($scope,$element,$attrs){var eventType=$attrs.analyticsOn||inferEventType($element[0]);var trackingData={};angular.forEach($attrs.$attr,function(attr,name){if(isProperty(name)){trackingData[propertyName(name)]=$attrs[name];$attrs.$observe(name,function(value){trackingData[propertyName(name)]=value;});}});angular.element($element[0]).bind(eventType,function($event){var eventName=$attrs.analyticsEvent||inferEventName($element[0]);trackingData.eventType=$event.type;if($attrs.analyticsIf){if(!$scope.$eval($attrs.analyticsIf)){return;}}
if($attrs.analyticsProperties){angular.extend(trackingData,$scope.$eval($attrs.analyticsProperties));}
$analytics.eventTrack(eventName,trackingData);});}};}]);})(angular);(function(window,angular,undefined){'use strict';angular.module('angulartics.google.analytics',['angulartics']).config(['$analyticsProvider',function($analyticsProvider){$analyticsProvider.settings.pageTracking.trackRelativePath=true;$analyticsProvider.settings.ga={additionalAccountNames:undefined,userId:null};function setDimensionsAndMetrics(properties){if(window.ga){for(var idx=1;idx<=200;idx++){if(properties['dimension'+idx.toString()]){ga('set','dimension'+idx.toString(),properties['dimension'+idx.toString()]);}
if(properties['metric'+idx.toString()]){ga('set','metric'+idx.toString(),properties['metric'+idx.toString()]);}}}}
$analyticsProvider.registerPageTrack(function(path){if(window._gaq){_gaq.push(['_trackPageview',path]);angular.forEach($analyticsProvider.settings.ga.additionalAccountNames,function(accountName){_gaq.push([accountName+'._trackPageview',path]);});}
if(window.ga){if($analyticsProvider.settings.ga.userId){ga('set','&uid',$analyticsProvider.settings.ga.userId);}
ga('send','pageview',path);angular.forEach($analyticsProvider.settings.ga.additionalAccountNames,function(accountName){ga(accountName+'.send','pageview',path);});}});$analyticsProvider.registerEventTrack(function(action,properties){if(!properties||!properties.category){properties=properties||{};properties.category='Event';}
if(properties.value){var parsed=parseInt(properties.value,10);properties.value=isNaN(parsed)?0:parsed;}
if(window.ga){var eventOptions={eventCategory:properties.category,eventAction:action,eventLabel:properties.label,eventValue:properties.value,nonInteraction:properties.noninteraction,page:properties.page||window.location.hash.substring(1)||window.location.pathname,userId:$analyticsProvider.settings.ga.userId};setDimensionsAndMetrics(properties);if($analyticsProvider.settings.ga.transport){ga('send','event',eventOptions,{transport:$analyticsProvider.settings.ga.transport});}
else{ga('send','event',eventOptions);}
angular.forEach($analyticsProvider.settings.ga.additionalAccountNames,function(accountName){ga(accountName+'.send','event',eventOptions);});}
else if(window._gaq){_gaq.push(['_trackEvent',properties.category,action,properties.label,properties.value,properties.noninteraction]);}});$analyticsProvider.registerSetUsername(function(userId){$analyticsProvider.settings.ga.userId=userId;});$analyticsProvider.registerSetUserProperties(function(properties){setDimensionsAndMetrics(properties);});}]);})(window,window.angular);(function(window,angular,undefined){'use strict';angular.module('gs.preloaded',[]).directive('script',['$preloaded',function($preloaded){return{restrict:'E',link:function(scope,el,attrs){var data;if(attrs.type!=='text/preloaded'){return;}
data=JSON.parse(el.text());if(attrs.hasOwnProperty('name')){$preloaded[attrs.name]=data;}else{angular.extend($preloaded,data);}}};}]).constant('$preloaded',{});})(window,window.angular);(function(window,angular,undefined){'use strict';angular.module('ngCookies',['ng']).provider('$cookies',[function $CookiesProvider(){var defaults=this.defaults={};function calcOptions(options){return options?angular.extend({},defaults,options):defaults;}
this.$get=['$$cookieReader','$$cookieWriter',function($$cookieReader,$$cookieWriter){return{get:function(key){return $$cookieReader()[key];},getObject:function(key){var value=this.get(key);return value?angular.fromJson(value):value;},getAll:function(){return $$cookieReader();},put:function(key,value,options){$$cookieWriter(key,value,calcOptions(options));},putObject:function(key,value,options){this.put(key,angular.toJson(value),options);},remove:function(key,options){$$cookieWriter(key,undefined,calcOptions(options));}};}];}]);angular.module('ngCookies').factory('$cookieStore',['$cookies',function($cookies){return{get:function(key){return $cookies.getObject(key);},put:function(key,value){$cookies.putObject(key,value);},remove:function(key){$cookies.remove(key);}};}]);function $$CookieWriter($document,$log,$browser){var cookiePath=$browser.baseHref();var rawDocument=$document[0];function buildCookieString(name,value,options){var path,expires;options=options||{};expires=options.expires;path=angular.isDefined(options.path)?options.path:cookiePath;if(angular.isUndefined(value)){expires='Thu, 01 Jan 1970 00:00:00 GMT';value='';}
if(angular.isString(expires)){expires=new Date(expires);}
var str=encodeURIComponent(name)+'='+encodeURIComponent(value);str+=path?';path='+path:'';str+=options.domain?';domain='+options.domain:'';str+=expires?';expires='+expires.toUTCString():'';str+=options.secure?';secure':'';var cookieLength=str.length+1;if(cookieLength>4096){$log.warn("Cookie '"+name+"' possibly not set or overflowed because it was too large ("+
cookieLength+" > 4096 bytes)!");}
return str;}
return function(name,value,options){rawDocument.cookie=buildCookieString(name,value,options);};}
$$CookieWriter.$inject=['$document','$log','$browser'];angular.module('ngCookies').provider('$$cookieWriter',function $$CookieWriterProvider(){this.$get=$$CookieWriter;});})(window,window.angular);(function(ng){'use strict';ng.module('vcRecaptcha',[]);}(angular));(function(ng){'use strict';function throwNoKeyException(){throw new Error('You need to set the "key" attribute to your public reCaptcha key. If you don\'t have a key, please get one from https://www.google.com/recaptcha/admin/create');}
var app=ng.module('vcRecaptcha');app.provider('vcRecaptchaService',function(){var provider=this;var config={};provider.onLoadFunctionName='vcRecaptchaApiLoaded';provider.setDefaults=function(defaults){ng.copy(defaults,config);};provider.setSiteKey=function(siteKey){config.key=siteKey;};provider.setTheme=function(theme){config.theme=theme;};provider.setStoken=function(stoken){config.stoken=stoken;};provider.setSize=function(size){config.size=size;};provider.setType=function(type){config.type=type;};provider.setLang=function(lang){config.lang=lang;};provider.setBadge=function(badge){config.badge=badge;};provider.setOnLoadFunctionName=function(onLoadFunctionName){provider.onLoadFunctionName=onLoadFunctionName;};provider.$get=['$rootScope','$window','$q','$document','$interval',function($rootScope,$window,$q,$document,$interval){var deferred=$q.defer(),promise=deferred.promise,instances={},recaptcha;$window.vcRecaptchaApiLoadedCallback=$window.vcRecaptchaApiLoadedCallback||[];var callback=function(){recaptcha=$window.grecaptcha;deferred.resolve(recaptcha);};$window.vcRecaptchaApiLoadedCallback.push(callback);$window[provider.onLoadFunctionName]=function(){$window.vcRecaptchaApiLoadedCallback.forEach(function(callback){callback();});};function getRecaptcha(){if(!!recaptcha){return $q.when(recaptcha);}
return promise;}
function validateRecaptchaInstance(){if(!recaptcha){throw new Error('reCaptcha has not been loaded yet.');}}
function isRenderFunctionAvailable(){return ng.isFunction(($window.grecaptcha||{}).render);}
if(isRenderFunctionAvailable()){callback();}else if($window.document.querySelector('script[src^="https://www.google.com/recaptcha/api.js"]')){var intervalWait=$interval(function(){if(isRenderFunctionAvailable()){$interval.cancel(intervalWait);callback();}},25);}else{var script=$window.document.createElement('script');script.async=true;script.defer=true;script.src='https://www.google.com/recaptcha/api.js?onload='+provider.onLoadFunctionName+'&render=explicit';$document.find('body')[0].appendChild(script);}
return{create:function(elm,conf){conf.sitekey=conf.key||config.key;conf.theme=conf.theme||config.theme;conf.stoken=conf.stoken||config.stoken;conf.size=conf.size||config.size;conf.type=conf.type||config.type;conf.hl=conf.lang||config.lang;conf.badge=conf.badge||config.badge;if(!conf.sitekey){throwNoKeyException();}
return getRecaptcha().then(function(recaptcha){var widgetId=recaptcha.render(elm,conf);instances[widgetId]=elm;return widgetId;});},reload:function(widgetId){validateRecaptchaInstance();recaptcha.reset(widgetId);$rootScope.$broadcast('reCaptchaReset',widgetId);},execute:function(widgetId){validateRecaptchaInstance();recaptcha.execute(widgetId);},useLang:function(widgetId,lang){var instance=instances[widgetId];if(instance){var iframe=instance.querySelector('iframe');if(lang){if(iframe&&iframe.src){var s=iframe.src;if(/[?&]hl=/.test(s)){s=s.replace(/([?&]hl=)\w+/,'$1'+lang);}else{s+=((s.indexOf('?')===-1)?'?':'&')+'hl='+lang;}
iframe.src=s;}}else{if(iframe&&iframe.src&&/[?&]hl=\w+/.test(iframe.src)){return iframe.src.replace(/.+[?&]hl=(\w+)([^\w].+)?/,'$1');}else{return null;}}}else{throw new Error('reCaptcha Widget ID not exists',widgetId);}},getResponse:function(widgetId){validateRecaptchaInstance();return recaptcha.getResponse(widgetId);},getInstance:function(widgetId){return instances[widgetId];},destroy:function(widgetId){delete instances[widgetId];}};}];});}(angular));(function(ng){'use strict';var app=ng.module('vcRecaptcha');app.directive('vcRecaptcha',['$document','$timeout','vcRecaptchaService',function($document,$timeout,vcRecaptcha){return{restrict:'A',require:"?^^form",scope:{response:'=?ngModel',key:'=?',stoken:'=?',theme:'=?',size:'=?',type:'=?',lang:'=?',badge:'=?',tabindex:'=?',required:'=?',onCreate:'&',onSuccess:'&',onExpire:'&'},link:function(scope,elm,attrs,ctrl){scope.widgetId=null;if(ctrl&&ng.isDefined(attrs.required)){scope.$watch('required',validate);}
var removeCreationListener=scope.$watch('key',function(key){var callback=function(gRecaptchaResponse){$timeout(function(){scope.response=gRecaptchaResponse;validate();scope.onSuccess({response:gRecaptchaResponse,widgetId:scope.widgetId});});};vcRecaptcha.create(elm[0],{callback:callback,key:key,stoken:scope.stoken||attrs.stoken||null,theme:scope.theme||attrs.theme||null,type:scope.type||attrs.type||null,lang:scope.lang||attrs.lang||null,tabindex:scope.tabindex||attrs.tabindex||null,size:scope.size||attrs.size||null,badge:scope.badge||attrs.badge||null,'expired-callback':expired}).then(function(widgetId){validate();scope.widgetId=widgetId;scope.onCreate({widgetId:widgetId});scope.$on('$destroy',destroy);scope.$on('reCaptchaReset',function(event,resetWidgetId){if(ng.isUndefined(resetWidgetId)||widgetId===resetWidgetId){scope.response="";validate();}})});removeCreationListener();});function destroy(){if(ctrl){ctrl.$setValidity('recaptcha',null);}
cleanup();}
function expired(){$timeout(function(){scope.response="";validate();scope.onExpire({widgetId:scope.widgetId});});}
function validate(){if(ctrl){ctrl.$setValidity('recaptcha',scope.required===false?null:Boolean(scope.response));}}
function cleanup(){vcRecaptcha.destroy(scope.widgetId);ng.element($document[0].querySelectorAll('.pls-container')).parent().remove();}}};}]);}(angular));!function(a){"use strict";a.module("vcRecaptcha",[])}(angular),function(a){"use strict";function b(){throw new Error('You need to set the "key" attribute to your public reCaptcha key. If you don\'t have a key, please get one from https://www.google.com/recaptcha/admin/create')}a.module("vcRecaptcha").provider("vcRecaptchaService",function(){var c=this,d={};c.onLoadFunctionName="vcRecaptchaApiLoaded",c.setDefaults=function(b){a.copy(b,d)},c.setSiteKey=function(a){d.key=a},c.setTheme=function(a){d.theme=a},c.setStoken=function(a){d.stoken=a},c.setSize=function(a){d.size=a},c.setType=function(a){d.type=a},c.setLang=function(a){d.lang=a},c.setBadge=function(a){d.badge=a},c.setOnLoadFunctionName=function(a){c.onLoadFunctionName=a},c.$get=["$rootScope","$window","$q","$document","$interval",function(e,f,g,h,i){function j(){return m?g.when(m):o}function k(){if(!m)throw new Error("reCaptcha has not been loaded yet.")}function l(){return a.isFunction((f.grecaptcha||{}).render)}var m,n=g.defer(),o=n.promise,p={};f.vcRecaptchaApiLoadedCallback=f.vcRecaptchaApiLoadedCallback||[];var q=function(){m=f.grecaptcha,n.resolve(m)};if(f.vcRecaptchaApiLoadedCallback.push(q),f[c.onLoadFunctionName]=function(){f.vcRecaptchaApiLoadedCallback.forEach(function(a){a()})},l())q();else if(f.document.querySelector('script[src^="https://www.google.com/recaptcha/api.js"]'))var r=i(function(){l()&&(i.cancel(r),q())},25);else{var s=f.document.createElement("script");s.async=!0,s.defer=!0,s.src="https://www.google.com/recaptcha/api.js?onload="+c.onLoadFunctionName+"&render=explicit",h.find("body")[0].appendChild(s)}return{create:function(a,c){return c.sitekey=c.key||d.key,c.theme=c.theme||d.theme,c.stoken=c.stoken||d.stoken,c.size=c.size||d.size,c.type=c.type||d.type,c.hl=c.lang||d.lang,c.badge=c.badge||d.badge,c.sitekey||b(),j().then(function(b){var d=b.render(a,c);return p[d]=a,d})},reload:function(a){k(),m.reset(a),e.$broadcast("reCaptchaReset",a)},execute:function(a){k(),m.execute(a)},useLang:function(a,b){var c=p[a];if(!c)throw new Error("reCaptcha Widget ID not exists",a);var d=c.querySelector("iframe");if(!b)return d&&d.src&&/[?&]hl=\w+/.test(d.src)?d.src.replace(/.+[?&]hl=(\w+)([^\w].+)?/,"$1"):null;if(d&&d.src){var e=d.src;/[?&]hl=/.test(e)?e=e.replace(/([?&]hl=)\w+/,"$1"+b):e+=(-1===e.indexOf("?")?"?":"&")+"hl="+b,d.src=e}},getResponse:function(a){return k(),m.getResponse(a)},getInstance:function(a){return p[a]},destroy:function(a){delete p[a]}}}]})}(angular),function(a){"use strict";a.module("vcRecaptcha").directive("vcRecaptcha",["$document","$timeout","vcRecaptchaService",function(b,c,d){return{restrict:"A",require:"?^^form",scope:{response:"=?ngModel",key:"=?",stoken:"=?",theme:"=?",size:"=?",type:"=?",lang:"=?",badge:"=?",tabindex:"=?",required:"=?",onCreate:"&",onSuccess:"&",onExpire:"&"},link:function(e,f,g,h){function i(){h&&h.$setValidity("recaptcha",null),l()}function j(){c(function(){e.response="",k(),e.onExpire({widgetId:e.widgetId})})}function k(){h&&h.$setValidity("recaptcha",!1===e.required?null:Boolean(e.response))}function l(){d.destroy(e.widgetId),a.element(b[0].querySelectorAll(".pls-container")).parent().remove()}e.widgetId=null,h&&a.isDefined(g.required)&&e.$watch("required",k);var m=e.$watch("key",function(b){var h=function(a){c(function(){e.response=a,k(),e.onSuccess({response:a,widgetId:e.widgetId})})};d.create(f[0],{callback:h,key:b,stoken:e.stoken||g.stoken||null,theme:e.theme||g.theme||null,type:e.type||g.type||null,lang:e.lang||g.lang||null,tabindex:e.tabindex||g.tabindex||null,size:e.size||g.size||null,badge:e.badge||g.badge||null,"expired-callback":j}).then(function(b){k(),e.widgetId=b,e.onCreate({widgetId:b}),e.$on("$destroy",i),e.$on("reCaptchaReset",function(c,d){(a.isUndefined(d)||b===d)&&(e.response="",k())})}),m()})}}}])}(angular);(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';function processRelativeTime(number,withoutSuffix,key,isFuture){var format={'m':['eine Minute','einer Minute'],'h':['eine Stunde','einer Stunde'],'d':['ein Tag','einem Tag'],'dd':[number+' Tage',number+' Tagen'],'M':['ein Monat','einem Monat'],'MM':[number+' Monate',number+' Monaten'],'y':['ein Jahr','einem Jahr'],'yy':[number+' Jahre',number+' Jahren']};return withoutSuffix?format[key][0]:format[key][1];}
var de=moment.defineLocale('de_DE',{months:'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),monthsShort:'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),weekdays:'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),weekdaysShort:'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),weekdaysMin:'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY HH:mm',LLLL:'dddd, D. MMMM YYYY HH:mm'},calendar:{sameDay:'[Heute um] LT [Uhr]',sameElse:'L',nextDay:'[Morgen um] LT [Uhr]',nextWeek:'dddd [um] LT [Uhr]',lastDay:'[Gestern um] LT [Uhr]',lastWeek:'[letzten] dddd [um] LT [Uhr]'},relativeTime:{future:'in %s',past:'%s',s:'Just now',ss:'Just now',m:'1 Minute',mm:'%d Minuten',h:'1 Stunde',hh:'%d Stunden',d:'1 Tag',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+" Tagen";}else{if(weeks==1){return"1 Woche";}else{return weeks+" Wochen";}}},M:'4 Wochen',MM:function(number){return(4*number)+" Wochen";},y:'1 Jahr',yy:'%d Jahre'},ordinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}});return de;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';function processRelativeTime(number,withoutSuffix,key,isFuture){var format={'m':['eine Minute','einer Minute'],'h':['eine Stunde','einer Stunde'],'d':['ein Tag','einem Tag'],'dd':[number+' Tage',number+' Tagen'],'M':['ein Monat','einem Monat'],'MM':[number+' Monate',number+' Monaten'],'y':['ein Jahr','einem Jahr'],'yy':[number+' Jahre',number+' Jahren']};return withoutSuffix?format[key][0]:format[key][1];}
var de=moment.defineLocale('de_DE-m',{months:'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),monthsShort:'Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),weekdays:'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),weekdaysShort:'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),weekdaysMin:'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD.MM.YYYY',LL:'D. MMMM YYYY',LLL:'D. MMMM YYYY HH:mm',LLLL:'dddd, D. MMMM YYYY HH:mm'},calendar:{sameDay:'[Heute um] LT [Uhr]',sameElse:'L',nextDay:'[Morgen um] LT [Uhr]',nextWeek:'dddd [um] LT [Uhr]',lastDay:'[Gestern um] LT [Uhr]',lastWeek:'[letzten] dddd [um] LT [Uhr]'},relativeTime:{future:'in %s',past:'%s',s:'Just now',ss:'Just now',m:'1m',mm:'%dm',h:'1h',hh:'%dh',d:'1d',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+"d";}else{return weeks+"w";}},M:'4w',MM:function(number){return(4*number)+"w";},y:'1y',yy:'%dy'},ordinalParse:/\d{1,2}\./,ordinal:'%d.',week:{dow:1,doy:4}});return de;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var en=moment.defineLocale('en_US',{months:'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),monthsShort:'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),weekdays:'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),weekdaysShort:'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),weekdaysMin:'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),longDateFormat:{LT:'h:mm A',LTS:'h:mm:ss A',L:'YYYY-MM-DD',LL:'D MMMM, YYYY',LLL:'D MMMM, YYYY h:mm A',LLLL:'dddd, D MMMM, YYYY h:mm A'},calendar:{sameDay:'[Today at] LT',nextDay:'[Tomorrow at] LT',nextWeek:'dddd [at] LT',lastDay:'[Yesterday at] LT',lastWeek:'[Last] dddd [at] LT',sameElse:'L'},relativeTime:{future:'in %s',past:'%s',s:'Just now',ss:'Just now',m:'1 min',mm:'%d mins',h:'1 hour',hh:'%d hours',d:'1 day',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+' days';}else{if(weeks==1){return"1 week";}else{return weeks+" weeks";}}},M:'4 weeks',MM:function(number){return(4*number)+" weeks";},y:'1 year',yy:'%d years'},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(number){var b=number%10,output=(~~(number%100/10)===1)?'th':(b===1)?'st':(b===2)?'nd':(b===3)?'rd':'th';return number+output;}});return en;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var en_m=moment.defineLocale('en_US-m',{months:'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),monthsShort:'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),weekdays:'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),weekdaysShort:'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),weekdaysMin:'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),longDateFormat:{LT:'h:mm A',LTS:'h:mm:ss A',L:'YYYY-MM-DD',LL:'D MMMM, YYYY',LLL:'D MMMM, YYYY h:mm A',LLLL:'dddd, D MMMM, YYYY h:mm A'},calendar:{sameDay:'[Today at] LT',nextDay:'[Tomorrow at] LT',nextWeek:'dddd [at] LT',lastDay:'[Yesterday at] LT',lastWeek:'[Last] dddd [at] LT',sameElse:'L'},relativeTime:{future:'in %s',past:'%s',s:'Just now',ss:'Just now',m:'1m',mm:'%dm',h:'1h',hh:'%dh',d:'1d',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+'d';}else{return weeks+'w';}},M:'4w',MM:function(number){return(4*number)+'w';},y:'1y',yy:'%dy'},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(number){var b=number%10,output=(~~(number%100/10)===1)?'th':(b===1)?'st':(b===2)?'nd':(b===3)?'rd':'th';return number+output;}});return en_m;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var fr=moment.defineLocale('fr_FR',{months:'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),monthsShort:'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),weekdays:'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),weekdaysShort:'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),weekdaysMin:'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd D MMMM YYYY HH:mm'},calendar:{sameDay:'[Aujourd\'hui à] LT',nextDay:'[Demain à] LT',nextWeek:'dddd [à] LT',lastDay:'[Hier à] LT',lastWeek:'dddd [dernier à] LT',sameElse:'L'},relativeTime:{future:'dans %s',past:'%s',s:'Just now',ss:'Just now',m:'une minute',mm:'%d minutes',h:'une heure',hh:'%d heures',d:'un jour',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+" jours";}else{if(weeks==1){return"une semaine";}else{return weeks+" semaines";}}},M:'4 semaines',MM:function(number){return(4*number)+" semaines";},y:'un an',yy:'%d ans'},ordinalParse:/\d{1,2}(er|)/,ordinal:function(number){return number+(number===1?'er':'');},week:{dow:1,doy:4}});return fr;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var fr=moment.defineLocale('fr_FR-m',{months:'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),monthsShort:'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),weekdays:'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),weekdaysShort:'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),weekdaysMin:'Di_Lu_Ma_Me_Je_Ve_Sa'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd D MMMM YYYY HH:mm'},calendar:{sameDay:'[Aujourd\'hui à] LT',nextDay:'[Demain à] LT',nextWeek:'dddd [à] LT',lastDay:'[Hier à] LT',lastWeek:'dddd [dernier à] LT',sameElse:'L'},relativeTime:{future:'in %s',past:'%s',s:'Just now',ss:'Just now',m:'1m',mm:'%dm',h:'1h',hh:'%dh',d:'1d',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+"d";}else{return weeks+"w";}},M:'4w',MM:function(number){return(4*number)+"w";},y:'1y',yy:'%dy'},ordinalParse:/\d{1,2}(er|)/,ordinal:function(number){return number+(number===1?'er':'');},week:{dow:1,doy:4}});return fr;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var it=moment.defineLocale('it_IT',{months:'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),monthsShort:'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),weekdays:'Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato'.split('_'),weekdaysShort:'Dom_Lun_Mar_Mer_Gio_Ven_Sab'.split('_'),weekdaysMin:'D_L_Ma_Me_G_V_S'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd, D MMMM YYYY HH:mm'},calendar:{sameDay:'[Oggi alle] LT',nextDay:'[Domani alle] LT',nextWeek:'dddd [alle] LT',lastDay:'[Ieri alle] LT',lastWeek:function(){switch(this.day()){case 0:return'[la scorsa] dddd [alle] LT';default:return'[lo scorso] dddd [alle] LT';}},sameElse:'L'},relativeTime:{future:function(s){return((/^[0-9].+$/).test(s)?'tra':'in')+' '+s;},past:'%s',s:'Just now',ss:'Just now',m:'un minuto',mm:'%d minuti',h:'un\'ora',hh:'%d ore',d:'un giorno',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+" giorni";}else{if(weeks==1){return"un settimana";}else{return weeks+" settimane";}}},M:'4 settimane',MM:function(number){return(4*number)+" settimane";},y:'un anno',yy:'%d anni'},ordinalParse:/\d{1,2}º/,ordinal:'%dº',week:{dow:1,doy:4}});return it;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var it=moment.defineLocale('it_IT-m',{months:'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),monthsShort:'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),weekdays:'Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato'.split('_'),weekdaysShort:'Dom_Lun_Mar_Mer_Gio_Ven_Sab'.split('_'),weekdaysMin:'D_L_Ma_Me_G_V_S'.split('_'),longDateFormat:{LT:'HH:mm',LTS:'HH:mm:ss',L:'DD/MM/YYYY',LL:'D MMMM YYYY',LLL:'D MMMM YYYY HH:mm',LLLL:'dddd, D MMMM YYYY HH:mm'},calendar:{sameDay:'[Oggi alle] LT',nextDay:'[Domani alle] LT',nextWeek:'dddd [alle] LT',lastDay:'[Ieri alle] LT',lastWeek:function(){switch(this.day()){case 0:return'[la scorsa] dddd [alle] LT';default:return'[lo scorso] dddd [alle] LT';}},sameElse:'L'},relativeTime:{future:'in %s',past:'%s',s:'Just now',ss:'Just now',m:'1m',mm:'%dm',h:'1h',hh:'%dh',d:'1d',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+"d";}else{return weeks+"w";}},M:'4w',MM:function(number){return(4*number)+"w";},y:'1y',yy:'%dy'},ordinalParse:/\d{1,2}º/,ordinal:'%dº',week:{dow:1,doy:4}});return it;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var ja=moment.defineLocale('ja_JP',{months:'1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),monthsShort:'1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),weekdays:'日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),weekdaysShort:'日_月_火_水_木_金_土'.split('_'),weekdaysMin:'日_月_火_水_木_金_土'.split('_'),longDateFormat:{LT:'Ah時m分',LTS:'Ah時m分s秒',L:'YYYY/MM/DD',LL:'YYYY年M月D日',LLL:'YYYY年M月D日Ah時m分',LLLL:'YYYY年M月D日Ah時m分 dddd'},meridiemParse:/午前|午後/i,isPM:function(input){return input==='午後';},meridiem:function(hour,minute,isLower){if(hour<12){return'午前';}else{return'午後';}},calendar:{sameDay:'[今日] LT',nextDay:'[明日] LT',nextWeek:'[来週]dddd LT',lastDay:'[昨日] LT',lastWeek:'[前週]dddd LT',sameElse:'L'},relativeTime:{future:'%s後',past:'%s',s:'Just now',ss:'Just now',m:'1分',mm:'%d分',h:'1時間',hh:'%d時間',d:'1日',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+'日';}else{if(weeks==1){return'1週間';}else{return weeks+'週間';}}},M:'4週間',MM:function(number){return(4*number)+'週間';},y:'1年',yy:'%d年'}});return ja;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var ja=moment.defineLocale('ja_JP-m',{months:'1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),monthsShort:'1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),weekdays:'日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),weekdaysShort:'日_月_火_水_木_金_土'.split('_'),weekdaysMin:'日_月_火_水_木_金_土'.split('_'),longDateFormat:{LT:'Ah時m分',LTS:'Ah時m分s秒',L:'YYYY/MM/DD',LL:'YYYY年M月D日',LLL:'YYYY年M月D日Ah時m分',LLLL:'YYYY年M月D日Ah時m分 dddd'},meridiemParse:/午前|午後/i,isPM:function(input){return input==='午後';},meridiem:function(hour,minute,isLower){if(hour<12){return'午前';}else{return'午後';}},calendar:{sameDay:'[今日] LT',nextDay:'[明日] LT',nextWeek:'[来週]dddd LT',lastDay:'[昨日] LT',lastWeek:'[前週]dddd LT',sameElse:'L'},relativeTime:{future:'in %s',past:'%s',s:'Just now',ss:'Just now',m:'1m',mm:'%dm',h:'1h',hh:'%dh',d:'1d',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+"d";}else{return weeks+"w";}},M:'4w',MM:function(number){return(4*number)+"w";},y:'1y',yy:'%dy'}});return ja;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var ko=moment.defineLocale('ko_KR',{months:'1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),monthsShort:'1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),weekdays:'일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),weekdaysShort:'일_월_화_수_목_금_토'.split('_'),weekdaysMin:'일_월_화_수_목_금_토'.split('_'),longDateFormat:{LT:'A h시 m분',LTS:'A h시 m분 s초',L:'YYYY.MM.DD',LL:'YYYY년 MMMM D일',LLL:'YYYY년 MMMM D일 A h시 m분',LLLL:'YYYY년 MMMM D일 dddd A h시 m분'},calendar:{sameDay:'오늘 LT',nextDay:'내일 LT',nextWeek:'dddd LT',lastDay:'어제 LT',lastWeek:'지난주 dddd LT',sameElse:'L'},relativeTime:{future:'%s 후',past:'%s',s:'Just now',ss:'Just now',m:'일분',mm:'%d분',h:'한시간',hh:'%d시간',d:'하루',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+"일";}else{if(weeks==1){return"일주일";}else{return weeks+"주";}}},M:'4주',MM:function(number){return(4*number)+"주";},y:'일년',yy:'%d년'},ordinalParse:/\d{1,2}일/,ordinal:'%d일',meridiemParse:/오전|오후/,isPM:function(token){return token==='오후';},meridiem:function(hour,minute,isUpper){return hour<12?'오전':'오후';}});return ko;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var ko=moment.defineLocale('ko_KR-m',{months:'1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),monthsShort:'1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),weekdays:'일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),weekdaysShort:'일_월_화_수_목_금_토'.split('_'),weekdaysMin:'일_월_화_수_목_금_토'.split('_'),longDateFormat:{LT:'A h시 m분',LTS:'A h시 m분 s초',L:'YYYY.MM.DD',LL:'YYYY년 MMMM D일',LLL:'YYYY년 MMMM D일 A h시 m분',LLLL:'YYYY년 MMMM D일 dddd A h시 m분'},calendar:{sameDay:'오늘 LT',nextDay:'내일 LT',nextWeek:'dddd LT',lastDay:'어제 LT',lastWeek:'지난주 dddd LT',sameElse:'L'},relativeTime:{future:'in %s',past:'%s',s:'Just now',ss:'Just now',m:'1m',mm:'%dm',h:'1h',hh:'%dh',d:'1d',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+"d";}else{return weeks+"w";}},M:'4w',MM:function(number){return(4*number)+"w";},y:'1y',yy:'%dy'},ordinalParse:/\d{1,2}일/,ordinal:'%d일',meridiemParse:/오전|오후/,isPM:function(token){return token==='오후';},meridiem:function(hour,minute,isUpper){return hour<12?'오전':'오후';}});return ko;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var en=moment.defineLocale('pt_BR',{months:'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),monthsShort:'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),weekdays:'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),weekdaysShort:'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),weekdaysMin:'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),longDateFormat:{LT:'h:mm A',LTS:'h:mm:ss A',L:'YYYY-MM-DD',LL:'D MMMM, YYYY',LLL:'D MMMM, YYYY h:mm A',LLLL:'dddd, D MMMM, YYYY h:mm A'},calendar:{sameDay:'[Today at] LT',nextDay:'[Tomorrow at] LT',nextWeek:'dddd [at] LT',lastDay:'[Yesterday at] LT',lastWeek:'[Last] dddd [at] LT',sameElse:'L'},relativeTime:{future:'in %s',past:'%s',s:'Just now',ss:'Just now',m:'1 min',mm:'%d mins',h:'1 hour',hh:'%d hours',d:'1 day',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+' days';}else{if(weeks==1){return"1 week";}else{return weeks+" weeks";}}},M:'4 weeks',MM:function(number){return(4*number)+" weeks";},y:'1 year',yy:'%d years'},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(number){var b=number%10,output=(~~(number%100/10)===1)?'th':(b===1)?'st':(b===2)?'nd':(b===3)?'rd':'th';return number+output;}});return en;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var en_m=moment.defineLocale('pt_BR-m',{months:'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),monthsShort:'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),weekdays:'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),weekdaysShort:'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),weekdaysMin:'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),longDateFormat:{LT:'h:mm A',LTS:'h:mm:ss A',L:'YYYY-MM-DD',LL:'D MMMM, YYYY',LLL:'D MMMM, YYYY h:mm A',LLLL:'dddd, D MMMM, YYYY h:mm A'},calendar:{sameDay:'[Today at] LT',nextDay:'[Tomorrow at] LT',nextWeek:'dddd [at] LT',lastDay:'[Yesterday at] LT',lastWeek:'[Last] dddd [at] LT',sameElse:'L'},relativeTime:{future:'in %s',past:'%s',s:'Just now',ss:'Just now',m:'1m',mm:'%dm',h:'1h',hh:'%dh',d:'1d',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+'d';}else{return weeks+'w';}},M:'4w',MM:function(number){return(4*number)+'w';},y:'1y',yy:'%dy'},ordinalParse:/\d{1,2}(st|nd|rd|th)/,ordinal:function(number){var b=number%10,output=(~~(number%100/10)===1)?'th':(b===1)?'st':(b===2)?'nd':(b===3)?'rd':'th';return number+output;}});return en_m;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var zh_cn=moment.defineLocale('zh_CN',{months:'一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),monthsShort:'1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),weekdays:'星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),weekdaysShort:'周日_周一_周二_周三_周四_周五_周六'.split('_'),weekdaysMin:'日_一_二_三_四_五_六'.split('_'),longDateFormat:{LT:'Ah点mm分',LTS:'Ah点m分s秒',L:'YYYY-MM-DD',LL:'YYYY年MMMD日',LLL:'YYYY年MMMD日Ah点mm分',LLLL:'YYYY年MMMD日ddddAh点mm分',l:'YYYY-MM-DD',ll:'YYYY年MMMD日',lll:'YYYY年MMMD日Ah点mm分',llll:'YYYY年MMMD日ddddAh点mm分'},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(hour,meridiem){if(hour===12){hour=0;}
if(meridiem==='凌晨'||meridiem==='早上'||meridiem==='上午'){return hour;}else if(meridiem==='下午'||meridiem==='晚上'){return hour+12;}else{return hour>=11?hour:hour+12;}},meridiem:function(hour,minute,isLower){var hm=hour*100+minute;if(hm<600){return'凌晨';}else if(hm<900){return'早上';}else if(hm<1130){return'上午';}else if(hm<1230){return'中午';}else if(hm<1800){return'下午';}else{return'晚上';}},calendar:{sameDay:function(){return this.minutes()===0?'[今天]Ah[点整]':'[今天]LT';},nextDay:function(){return this.minutes()===0?'[明天]Ah[点整]':'[明天]LT';},lastDay:function(){return this.minutes()===0?'[昨天]Ah[点整]':'[昨天]LT';},nextWeek:function(){var startOfWeek,prefix;startOfWeek=moment().startOf('week');prefix=this.unix()-startOfWeek.unix()>=7*24*3600?'[下]':'[本]';return this.minutes()===0?prefix+'dddAh点整':prefix+'dddAh点mm';},lastWeek:function(){var startOfWeek,prefix;startOfWeek=moment().startOf('week');prefix=this.unix()<startOfWeek.unix()?'[上]':'[本]';return this.minutes()===0?prefix+'dddAh点整':prefix+'dddAh点mm';},sameElse:'LL'},ordinalParse:/\d{1,2}(日|月|周)/,ordinal:function(number,period){switch(period){case'd':case'D':case'DDD':return number+'日';case'M':return number+'月';case'w':case'W':return number+'周';default:return number;}},relativeTime:{future:'%s内',past:'%s',s:'现在',ss:'现在',m:'1 分钟',mm:'%d 分钟',h:'1 小时',hh:'%d 小时',d:'1 天',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+" 天";}else{if(weeks==1){return"1 周";}else{return weeks+" 周";}}},M:'4 周',MM:function(number){return(4*number)+" 周";},y:'1 年',yy:'%d 年'},week:{dow:1,doy:4}});return zh_cn;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var zh_cn=moment.defineLocale('zh_CN-m',{months:'一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),monthsShort:'1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),weekdays:'星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),weekdaysShort:'周日_周一_周二_周三_周四_周五_周六'.split('_'),weekdaysMin:'日_一_二_三_四_五_六'.split('_'),longDateFormat:{LT:'Ah点mm分',LTS:'Ah点m分s秒',L:'YYYY-MM-DD',LL:'YYYY年MMMD日',LLL:'YYYY年MMMD日Ah点mm分',LLLL:'YYYY年MMMD日ddddAh点mm分',l:'YYYY-MM-DD',ll:'YYYY年MMMD日',lll:'YYYY年MMMD日Ah点mm分',llll:'YYYY年MMMD日ddddAh点mm分'},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(hour,meridiem){if(hour===12){hour=0;}
if(meridiem==='凌晨'||meridiem==='早上'||meridiem==='上午'){return hour;}else if(meridiem==='下午'||meridiem==='晚上'){return hour+12;}else{return hour>=11?hour:hour+12;}},meridiem:function(hour,minute,isLower){var hm=hour*100+minute;if(hm<600){return'凌晨';}else if(hm<900){return'早上';}else if(hm<1130){return'上午';}else if(hm<1230){return'中午';}else if(hm<1800){return'下午';}else{return'晚上';}},calendar:{sameDay:function(){return this.minutes()===0?'[今天]Ah[点整]':'[今天]LT';},nextDay:function(){return this.minutes()===0?'[明天]Ah[点整]':'[明天]LT';},lastDay:function(){return this.minutes()===0?'[昨天]Ah[点整]':'[昨天]LT';},nextWeek:function(){var startOfWeek,prefix;startOfWeek=moment().startOf('week');prefix=this.unix()-startOfWeek.unix()>=7*24*3600?'[下]':'[本]';return this.minutes()===0?prefix+'dddAh点整':prefix+'dddAh点mm';},lastWeek:function(){var startOfWeek,prefix;startOfWeek=moment().startOf('week');prefix=this.unix()<startOfWeek.unix()?'[上]':'[本]';return this.minutes()===0?prefix+'dddAh点整':prefix+'dddAh点mm';},sameElse:'LL'},ordinalParse:/\d{1,2}(日|月|周)/,ordinal:function(number,period){switch(period){case'd':case'D':case'DDD':return number+'日';case'M':return number+'月';case'w':case'W':return number+'周';default:return number;}},relativeTime:{future:'in %s',past:'%s',s:'现在',ss:'现在',m:'1m',mm:'%dm',h:'1h',hh:'%dh',d:'1d',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+"d";}else{return weeks+"w";}},M:'4w',MM:function(number){return(4*number)+"w";},y:'1y',yy:'%dy'},week:{dow:1,doy:4}});return zh_cn;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var zh_tw=moment.defineLocale('zh_TW',{months:'一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),monthsShort:'1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),weekdays:'星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),weekdaysShort:'週日_週一_週二_週三_週四_週五_週六'.split('_'),weekdaysMin:'日_一_二_三_四_五_六'.split('_'),longDateFormat:{LT:'Ah點mm分',LTS:'Ah點m分s秒',L:'YYYY年MMMD日',LL:'YYYY年MMMD日',LLL:'YYYY年MMMD日Ah點mm分',LLLL:'YYYY年MMMD日ddddAh點mm分',l:'YYYY年MMMD日',ll:'YYYY年MMMD日',lll:'YYYY年MMMD日Ah點mm分',llll:'YYYY年MMMD日ddddAh點mm分'},meridiemParse:/早上|上午|中午|下午|晚上/,meridiemHour:function(hour,meridiem){if(hour===12){hour=0;}
if(meridiem==='早上'||meridiem==='上午'){return hour;}else if(meridiem==='中午'){return hour>=11?hour:hour+12;}else if(meridiem==='下午'||meridiem==='晚上'){return hour+12;}},meridiem:function(hour,minute,isLower){var hm=hour*100+minute;if(hm<900){return'早上';}else if(hm<1130){return'上午';}else if(hm<1230){return'中午';}else if(hm<1800){return'下午';}else{return'晚上';}},calendar:{sameDay:'[今天]LT',nextDay:'[明天]LT',nextWeek:'[下]ddddLT',lastDay:'[昨天]LT',lastWeek:'[上]ddddLT',sameElse:'L'},ordinalParse:/\d{1,2}(日|月|週)/,ordinal:function(number,period){switch(period){case'd':case'D':case'DDD':return number+'日';case'M':return number+'月';case'w':case'W':return number+'週';default:return number;}},relativeTime:{future:'%s內',past:'%s',s:'現在',ss:'現在',m:'1 分鐘',mm:'%d 分鐘',h:'1 小時',hh:'%d 小時',d:'1 天',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+"天";}else{if(weeks==1){return"1 星期";}else{return weeks+"星期";}}},M:'4 星期',MM:function(number){return(4*number)+"星期";},y:'1 年',yy:'%d年'}});return zh_tw;}));(function(global,factory){typeof exports==='object'&&typeof module!=='undefined'?factory(require('../moment')):typeof define==='function'&&define.amd?define(['moment'],factory):factory(global.moment)}(this,function(moment){'use strict';var zh_tw=moment.defineLocale('zh_TW-m',{months:'一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),monthsShort:'1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),weekdays:'星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),weekdaysShort:'週日_週一_週二_週三_週四_週五_週六'.split('_'),weekdaysMin:'日_一_二_三_四_五_六'.split('_'),longDateFormat:{LT:'Ah點mm分',LTS:'Ah點m分s秒',L:'YYYY年MMMD日',LL:'YYYY年MMMD日',LLL:'YYYY年MMMD日Ah點mm分',LLLL:'YYYY年MMMD日ddddAh點mm分',l:'YYYY年MMMD日',ll:'YYYY年MMMD日',lll:'YYYY年MMMD日Ah點mm分',llll:'YYYY年MMMD日ddddAh點mm分'},meridiemParse:/早上|上午|中午|下午|晚上/,meridiemHour:function(hour,meridiem){if(hour===12){hour=0;}
if(meridiem==='早上'||meridiem==='上午'){return hour;}else if(meridiem==='中午'){return hour>=11?hour:hour+12;}else if(meridiem==='下午'||meridiem==='晚上'){return hour+12;}},meridiem:function(hour,minute,isLower){var hm=hour*100+minute;if(hm<900){return'早上';}else if(hm<1130){return'上午';}else if(hm<1230){return'中午';}else if(hm<1800){return'下午';}else{return'晚上';}},calendar:{sameDay:'[今天]LT',nextDay:'[明天]LT',nextWeek:'[下]ddddLT',lastDay:'[昨天]LT',lastWeek:'[上]ddddLT',sameElse:'L'},ordinalParse:/\d{1,2}(日|月|週)/,ordinal:function(number,period){switch(period){case'd':case'D':case'DDD':return number+'日';case'M':return number+'月';case'w':case'W':return number+'週';default:return number;}},relativeTime:{future:'in %s',past:'%s',s:'現在',ss:'現在',m:'1m',mm:'%dm',h:'1h',hh:'%dh',d:'1d',dd:function(number){var weeks=Math.round(number/7);if(number<7){return number+"d";}else{return weeks+"w";}},M:'4w',MM:function(number){return(4*number)+"w";},y:'1y',yy:'%dy'}});return zh_tw;}));(function(factory){'use strict';if(typeof define==='function'&&define.amd){define(['jquery'],factory);}else if(typeof exports!=='undefined'){module.exports=factory(require('jquery'));}else{factory(jQuery);}}(function($){'use strict';var Slick=window.Slick||{};Slick=(function(){var instanceUid=0;function Slick(element,settings){var _=this,dataSettings,responsiveSettings,breakpoint;_.defaults={accessibility:true,adaptiveHeight:false,appendArrows:$(element),appendDots:$(element),arrows:true,asNavFor:null,prevArrow:'<button type="button" data-role="none" class="slick-prev" aria-label="previous">Previous</button>',nextArrow:'<button type="button" data-role="none" class="slick-next" aria-label="next">Next</button>',autoplay:false,autoplaySpeed:3000,centerMode:false,centerPadding:'50px',cssEase:'ease',customPaging:function(slider,i){return'<button type="button" data-role="none">'+(i+1)+'</button>';},dots:false,dotsClass:'slick-dots',draggable:true,easing:'linear',edgeFriction:0.35,fade:false,focusOnSelect:false,infinite:true,initialSlide:0,lazyLoad:'ondemand',mobileFirst:false,pauseOnHover:true,pauseOnDotsHover:false,respondTo:'window',responsive:null,rtl:false,slide:'',slidesToShow:1,slidesToScroll:1,speed:500,swipe:true,swipeToSlide:false,touchMove:true,touchThreshold:5,useCSS:true,variableWidth:false,vertical:false,waitForAnimate:true};_.initials={animating:false,dragging:false,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,sliding:false,slideOffset:0,swipeLeft:null,$list:null,touchObject:{},transformsEnabled:false};$.extend(_,_.initials);_.activeBreakpoint=null;_.animType=null;_.animProp=null;_.breakpoints=[];_.breakpointSettings=[];_.cssTransitions=false;_.hidden="hidden";_.paused=false;_.positionProp=null;_.respondTo=null;_.shouldClick=true;_.$slider=$(element);_.$slidesCache=null;_.transformType=null;_.transitionType=null;_.visibilityChange="visibilitychange";_.windowWidth=0;_.windowTimer=null;dataSettings=$(element).data('slick')||{};_.options=$.extend({},_.defaults,dataSettings,settings);_.currentSlide=_.options.initialSlide;_.originalSettings=_.options;responsiveSettings=_.options.responsive||null;if(responsiveSettings&&responsiveSettings.length>-1){_.respondTo=_.options.respondTo||"window";for(breakpoint in responsiveSettings){if(responsiveSettings.hasOwnProperty(breakpoint)){_.breakpoints.push(responsiveSettings[breakpoint].breakpoint);_.breakpointSettings[responsiveSettings[breakpoint].breakpoint]=responsiveSettings[breakpoint].settings;}}
_.breakpoints.sort(function(a,b){if(_.options.mobileFirst===true){return a-b;}else{return b-a;}});}
if(typeof document.mozHidden!=="undefined"){_.hidden="mozHidden";_.visibilityChange="mozvisibilitychange";}else if(typeof document.msHidden!=="undefined"){_.hidden="msHidden";_.visibilityChange="msvisibilitychange";}else if(typeof document.webkitHidden!=="undefined"){_.hidden="webkitHidden";_.visibilityChange="webkitvisibilitychange";}
_.autoPlay=$.proxy(_.autoPlay,_);_.autoPlayClear=$.proxy(_.autoPlayClear,_);_.changeSlide=$.proxy(_.changeSlide,_);_.clickHandler=$.proxy(_.clickHandler,_);_.selectHandler=$.proxy(_.selectHandler,_);_.setPosition=$.proxy(_.setPosition,_);_.swipeHandler=$.proxy(_.swipeHandler,_);_.dragHandler=$.proxy(_.dragHandler,_);_.keyHandler=$.proxy(_.keyHandler,_);_.autoPlayIterator=$.proxy(_.autoPlayIterator,_);_.instanceUid=instanceUid++;_.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/;_.init();_.checkResponsive(true);}
return Slick;}());Slick.prototype.addSlide=Slick.prototype.slickAdd=function(markup,index,addBefore){var _=this;if(typeof(index)==='boolean'){addBefore=index;index=null;}else if(index<0||(index>=_.slideCount)){return false;}
_.unload();if(typeof(index)==='number'){if(index===0&&_.$slides.length===0){$(markup).appendTo(_.$slideTrack);}else if(addBefore){$(markup).insertBefore(_.$slides.eq(index));}else{$(markup).insertAfter(_.$slides.eq(index));}}else{if(addBefore===true){$(markup).prependTo(_.$slideTrack);}else{$(markup).appendTo(_.$slideTrack);}}
_.$slides=_.$slideTrack.children(this.options.slide);_.$slideTrack.children(this.options.slide).detach();_.$slideTrack.append(_.$slides);_.$slides.each(function(index,element){$(element).attr("data-slick-index",index);});_.$slidesCache=_.$slides;_.reinit();};Slick.prototype.animateHeight=function(){var _=this;if(_.options.slidesToShow===1&&_.options.adaptiveHeight===true&&_.options.vertical===false){var targetHeight=_.$slides.eq(_.currentSlide).outerHeight(true);_.$list.animate({height:targetHeight},_.options.speed);}};Slick.prototype.animateSlide=function(targetLeft,callback){var animProps={},_=this;_.animateHeight();if(_.options.rtl===true&&_.options.vertical===false){targetLeft=-targetLeft;}
if(_.transformsEnabled===false){if(_.options.vertical===false){_.$slideTrack.animate({left:targetLeft},_.options.speed,_.options.easing,callback);}else{_.$slideTrack.animate({top:targetLeft},_.options.speed,_.options.easing,callback);}}else{if(_.cssTransitions===false){if(_.options.rtl===true){_.currentLeft=-(_.currentLeft);}
$({animStart:_.currentLeft}).animate({animStart:targetLeft},{duration:_.options.speed,easing:_.options.easing,step:function(now){now=Math.ceil(now);if(_.options.vertical===false){animProps[_.animType]='translate('+
now+'px, 0px)';_.$slideTrack.css(animProps);}else{animProps[_.animType]='translate(0px,'+
now+'px)';_.$slideTrack.css(animProps);}},complete:function(){if(callback){callback.call();}}});}else{_.applyTransition();targetLeft=Math.ceil(targetLeft);if(_.options.vertical===false){animProps[_.animType]='translate3d('+targetLeft+'px, 0px, 0px)';}else{animProps[_.animType]='translate3d(0px,'+targetLeft+'px, 0px)';}
_.$slideTrack.css(animProps);if(callback){setTimeout(function(){_.disableTransition();callback.call();},_.options.speed);}}}};Slick.prototype.asNavFor=function(index){var _=this,asNavFor=_.options.asNavFor!==null?$(_.options.asNavFor).slick('getSlick'):null;if(asNavFor!==null)asNavFor.slideHandler(index,true);};Slick.prototype.applyTransition=function(slide){var _=this,transition={};if(_.options.fade===false){transition[_.transitionType]=_.transformType+' '+_.options.speed+'ms '+_.options.cssEase;}else{transition[_.transitionType]='opacity '+_.options.speed+'ms '+_.options.cssEase;}
if(_.options.fade===false){_.$slideTrack.css(transition);}else{_.$slides.eq(slide).css(transition);}};Slick.prototype.autoPlay=function(){var _=this;if(_.autoPlayTimer){clearInterval(_.autoPlayTimer);}
if(_.slideCount>_.options.slidesToShow&&_.paused!==true){_.autoPlayTimer=setInterval(_.autoPlayIterator,_.options.autoplaySpeed);}};Slick.prototype.autoPlayClear=function(){var _=this;if(_.autoPlayTimer){clearInterval(_.autoPlayTimer);}};Slick.prototype.autoPlayIterator=function(){var _=this;if(_.options.infinite===false){if(_.direction===1){if((_.currentSlide+1)===_.slideCount-
1){_.direction=0;}
_.slideHandler(_.currentSlide+_.options.slidesToScroll);}else{if((_.currentSlide-1===0)){_.direction=1;}
_.slideHandler(_.currentSlide-_.options.slidesToScroll);}}else{_.slideHandler(_.currentSlide+_.options.slidesToScroll);}};Slick.prototype.buildArrows=function(){var _=this;if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow=$(_.options.prevArrow);_.$nextArrow=$(_.options.nextArrow);if(_.htmlExpr.test(_.options.prevArrow)){_.$prevArrow.appendTo(_.options.appendArrows);}
if(_.htmlExpr.test(_.options.nextArrow)){_.$nextArrow.appendTo(_.options.appendArrows);}
if(_.options.infinite!==true){_.$prevArrow.addClass('slick-disabled');}}};Slick.prototype.buildDots=function(){var _=this,i,dotString;if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){dotString='<ul class="'+_.options.dotsClass+'">';for(i=0;i<=_.getDotCount();i+=1){dotString+='<li>'+_.options.customPaging.call(this,_,i)+'</li>';}
dotString+='</ul>';_.$dots=$(dotString).appendTo(_.options.appendDots);_.$dots.find('li').first().addClass('slick-active').attr("aria-hidden","false");}};Slick.prototype.buildOut=function(){var _=this;_.$slides=_.$slider.children(_.options.slide+':not(.slick-cloned)').addClass('slick-slide');_.slideCount=_.$slides.length;_.$slides.each(function(index,element){$(element).attr("data-slick-index",index);});_.$slidesCache=_.$slides;_.$slider.addClass('slick-slider');_.$slideTrack=(_.slideCount===0)?$('<div class="slick-track"/>').appendTo(_.$slider):_.$slides.wrapAll('<div class="slick-track"/>').parent();_.$list=_.$slideTrack.wrap('<div aria-live="polite" class="slick-list"/>').parent();_.$slideTrack.css('opacity',0);if(_.options.centerMode===true||_.options.swipeToSlide===true){_.options.slidesToScroll=1;}
$('img[data-lazy]',_.$slider).not('[src]').addClass('slick-loading');_.setupInfinite();_.buildArrows();_.buildDots();_.updateDots();if(_.options.accessibility===true){_.$list.prop('tabIndex',0);}
_.setSlideClasses(typeof this.currentSlide==='number'?this.currentSlide:0);if(_.options.draggable===true){_.$list.addClass('draggable');}};Slick.prototype.checkResponsive=function(initial){var _=this,breakpoint,targetBreakpoint,respondToWidth;var sliderWidth=_.$slider.width();var windowWidth=window.innerWidth||$(window).width();if(_.respondTo==="window"){respondToWidth=windowWidth;}else if(_.respondTo==="slider"){respondToWidth=sliderWidth;}else if(_.respondTo==="min"){respondToWidth=Math.min(windowWidth,sliderWidth);}
if(_.originalSettings.responsive&&_.originalSettings.responsive.length>-1&&_.originalSettings.responsive!==null){targetBreakpoint=null;for(breakpoint in _.breakpoints){if(_.breakpoints.hasOwnProperty(breakpoint)){if(_.originalSettings.mobileFirst===false){if(respondToWidth<_.breakpoints[breakpoint]){targetBreakpoint=_.breakpoints[breakpoint];}}else{if(respondToWidth>_.breakpoints[breakpoint]){targetBreakpoint=_.breakpoints[breakpoint];}}}}
if(targetBreakpoint!==null){if(_.activeBreakpoint!==null){if(targetBreakpoint!==_.activeBreakpoint){_.activeBreakpoint=targetBreakpoint;if(_.breakpointSettings[targetBreakpoint]==="unslick"){_.unslick();}else{_.options=$.extend({},_.originalSettings,_.breakpointSettings[targetBreakpoint]);if(initial===true)
_.currentSlide=_.options.initialSlide;_.refresh();}}}else{_.activeBreakpoint=targetBreakpoint;if(_.breakpointSettings[targetBreakpoint]==="unslick"){_.unslick();}else{_.options=$.extend({},_.originalSettings,_.breakpointSettings[targetBreakpoint]);if(initial===true)
_.currentSlide=_.options.initialSlide;_.refresh();}}}else{if(_.activeBreakpoint!==null){_.activeBreakpoint=null;_.options=_.originalSettings;if(initial===true)
_.currentSlide=_.options.initialSlide;_.refresh();}}}};Slick.prototype.changeSlide=function(event,dontAnimate){var _=this,$target=$(event.target),indexOffset,slideOffset,unevenOffset;$target.is('a')&&event.preventDefault();unevenOffset=(_.slideCount%_.options.slidesToScroll!==0);indexOffset=unevenOffset?0:(_.slideCount-_.currentSlide)%_.options.slidesToScroll;switch(event.data.message){case'previous':slideOffset=indexOffset===0?_.options.slidesToScroll:_.options.slidesToShow-indexOffset;if(_.slideCount>_.options.slidesToShow){_.slideHandler(_.currentSlide-slideOffset,false,dontAnimate);}
break;case'next':slideOffset=indexOffset===0?_.options.slidesToScroll:indexOffset;if(_.slideCount>_.options.slidesToShow){_.slideHandler(_.currentSlide+slideOffset,false,dontAnimate);}
break;case'index':var index=event.data.index===0?0:event.data.index||$(event.target).parent().index()*_.options.slidesToScroll;_.slideHandler(_.checkNavigable(index),false,dontAnimate);break;default:return;}};Slick.prototype.checkNavigable=function(index){var _=this,navigables,prevNavigable;navigables=_.getNavigableIndexes();prevNavigable=0;if(index>navigables[navigables.length-1]){index=navigables[navigables.length-1];}else{for(var n in navigables){if(index<navigables[n]){index=prevNavigable;break;}
prevNavigable=navigables[n];}}
return index;};Slick.prototype.clickHandler=function(event){var _=this;if(_.shouldClick===false){event.stopImmediatePropagation();event.stopPropagation();event.preventDefault();}};Slick.prototype.destroy=function(){var _=this;_.autoPlayClear();_.touchObject={};$('.slick-cloned',_.$slider).remove();if(_.$dots){_.$dots.remove();}
if(_.$prevArrow&&(typeof _.options.prevArrow!=='object')){_.$prevArrow.remove();}
if(_.$nextArrow&&(typeof _.options.nextArrow!=='object')){_.$nextArrow.remove();}
_.$slides.removeClass('slick-slide slick-active slick-center slick-visible').attr("aria-hidden","true").removeAttr('data-slick-index').css({position:'',left:'',top:'',zIndex:'',opacity:'',width:''});_.$slider.removeClass('slick-slider');_.$slider.removeClass('slick-initialized');_.$list.off('.slick');$(window).off('.slick-'+_.instanceUid);$(document).off('.slick-'+_.instanceUid);_.$slider.html(_.$slides);};Slick.prototype.disableTransition=function(slide){var _=this,transition={};transition[_.transitionType]="";if(_.options.fade===false){_.$slideTrack.css(transition);}else{_.$slides.eq(slide).css(transition);}};Slick.prototype.fadeSlide=function(slideIndex,callback){var _=this;if(_.cssTransitions===false){_.$slides.eq(slideIndex).css({zIndex:1000});_.$slides.eq(slideIndex).animate({opacity:1},_.options.speed,_.options.easing,callback);}else{_.applyTransition(slideIndex);_.$slides.eq(slideIndex).css({opacity:1,zIndex:1000});if(callback){setTimeout(function(){_.disableTransition(slideIndex);callback.call();},_.options.speed);}}};Slick.prototype.filterSlides=Slick.prototype.slickFilter=function(filter){var _=this;if(filter!==null){_.unload();_.$slideTrack.children(this.options.slide).detach();_.$slidesCache.filter(filter).appendTo(_.$slideTrack);_.reinit();}};Slick.prototype.getCurrent=Slick.prototype.slickCurrentSlide=function(){var _=this;return _.currentSlide;};Slick.prototype.getDotCount=function(){var _=this;var breakPoint=0;var counter=0;var pagerQty=0;if(_.options.infinite===true){pagerQty=Math.ceil(_.slideCount/_.options.slidesToScroll);}else if(_.options.centerMode===true){pagerQty=_.slideCount;}else{while(breakPoint<_.slideCount){++pagerQty;breakPoint=counter+_.options.slidesToShow;counter+=_.options.slidesToScroll<=_.options.slidesToShow?_.options.slidesToScroll:_.options.slidesToShow;}}
return pagerQty-1;};Slick.prototype.getLeft=function(slideIndex){var _=this,targetLeft,verticalHeight,verticalOffset=0,targetSlide;_.slideOffset=0;verticalHeight=_.$slides.first().outerHeight();if(_.options.infinite===true){if(_.slideCount>_.options.slidesToShow){_.slideOffset=(_.slideWidth*_.options.slidesToShow)*-1;verticalOffset=(verticalHeight*_.options.slidesToShow)*-1;}
if(_.slideCount%_.options.slidesToScroll!==0){if(slideIndex+_.options.slidesToScroll>_.slideCount&&_.slideCount>_.options.slidesToShow){if(slideIndex>_.slideCount){_.slideOffset=((_.options.slidesToShow-(slideIndex-_.slideCount))*_.slideWidth)*-1;verticalOffset=((_.options.slidesToShow-(slideIndex-_.slideCount))*verticalHeight)*-1;}else{_.slideOffset=((_.slideCount%_.options.slidesToScroll)*_.slideWidth)*-1;verticalOffset=((_.slideCount%_.options.slidesToScroll)*verticalHeight)*-1;}}}}else{if(slideIndex+_.options.slidesToShow>_.slideCount){_.slideOffset=((slideIndex+_.options.slidesToShow)-_.slideCount)*_.slideWidth;verticalOffset=((slideIndex+_.options.slidesToShow)-_.slideCount)*verticalHeight;}}
if(_.slideCount<=_.options.slidesToShow){_.slideOffset=0;verticalOffset=0;}
if(_.options.centerMode===true&&_.options.infinite===true){_.slideOffset+=_.slideWidth*Math.floor(_.options.slidesToShow/2)-_.slideWidth;}else if(_.options.centerMode===true){_.slideOffset=0;_.slideOffset+=_.slideWidth*Math.floor(_.options.slidesToShow/2);}
if(_.options.vertical===false){targetLeft=((slideIndex*_.slideWidth)*-1)+_.slideOffset;}else{targetLeft=((slideIndex*verticalHeight)*-1)+verticalOffset;}
if(_.options.variableWidth===true){if(_.slideCount<=_.options.slidesToShow||_.options.infinite===false){targetSlide=_.$slideTrack.children('.slick-slide').eq(slideIndex);}else{targetSlide=_.$slideTrack.children('.slick-slide').eq(slideIndex+_.options.slidesToShow);}
targetLeft=targetSlide[0]?targetSlide[0].offsetLeft*-1:0;if(_.options.centerMode===true){if(_.options.infinite===false){targetSlide=_.$slideTrack.children('.slick-slide').eq(slideIndex);}else{targetSlide=_.$slideTrack.children('.slick-slide').eq(slideIndex+_.options.slidesToShow+1);}
targetLeft=targetSlide[0]?targetSlide[0].offsetLeft*-1:0;targetLeft+=(_.$list.width()-targetSlide.outerWidth())/2;}}
return targetLeft;};Slick.prototype.getOption=Slick.prototype.slickGetOption=function(option){var _=this;return _.options[option];};Slick.prototype.getNavigableIndexes=function(){var _=this,breakPoint=0,counter=0,indexes=[],max;if(_.options.infinite===false){max=_.slideCount-_.options.slidesToShow+1;if(_.options.centerMode===true)max=_.slideCount;}else{breakPoint=_.slideCount*-1;counter=_.slideCount*-1;max=_.slideCount*2;}
while(breakPoint<max){indexes.push(breakPoint);breakPoint=counter+_.options.slidesToScroll;counter+=_.options.slidesToScroll<=_.options.slidesToShow?_.options.slidesToScroll:_.options.slidesToShow;}
return indexes;};Slick.prototype.getSlick=function(){return this;};Slick.prototype.getSlideCount=function(){var _=this,slidesTraversed,swipedSlide,centerOffset;centerOffset=_.options.centerMode===true?_.slideWidth*Math.floor(_.options.slidesToShow/2):0;if(_.options.swipeToSlide===true){_.$slideTrack.find('.slick-slide').each(function(index,slide){if(slide.offsetLeft-centerOffset+($(slide).outerWidth()/2)>(_.swipeLeft*-1)){swipedSlide=slide;return false;}});slidesTraversed=Math.abs($(swipedSlide).attr('data-slick-index')-_.currentSlide)||1;return slidesTraversed;}else{return _.options.slidesToScroll;}};Slick.prototype.goTo=Slick.prototype.slickGoTo=function(slide,dontAnimate){var _=this;_.changeSlide({data:{message:'index',index:parseInt(slide)}},dontAnimate);};Slick.prototype.init=function(){var _=this;if(!$(_.$slider).hasClass('slick-initialized')){$(_.$slider).addClass('slick-initialized');_.buildOut();_.setProps();_.startLoad();_.loadSlider();_.initializeEvents();_.updateArrows();_.updateDots();}
_.$slider.trigger("init",[_]);};Slick.prototype.initArrowEvents=function(){var _=this;if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow.on('click.slick',{message:'previous'},_.changeSlide);_.$nextArrow.on('click.slick',{message:'next'},_.changeSlide);}};Slick.prototype.initDotEvents=function(){var _=this;if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){$('li',_.$dots).on('click.slick',{message:'index'},_.changeSlide);}
if(_.options.dots===true&&_.options.pauseOnDotsHover===true&&_.options.autoplay===true){$('li',_.$dots).on('mouseenter.slick',function(){_.paused=true;_.autoPlayClear();}).on('mouseleave.slick',function(){_.paused=false;_.autoPlay();});}};Slick.prototype.initializeEvents=function(){var _=this;_.initArrowEvents();_.initDotEvents();_.$list.on('touchstart.slick mousedown.slick',{action:'start'},_.swipeHandler);_.$list.on('touchmove.slick mousemove.slick',{action:'move'},_.swipeHandler);_.$list.on('touchend.slick mouseup.slick',{action:'end'},_.swipeHandler);_.$list.on('touchcancel.slick mouseleave.slick',{action:'end'},_.swipeHandler);_.$list.on('click.slick',_.clickHandler);if(_.options.autoplay===true){$(document).on(_.visibilityChange,function(){_.visibility();});if(_.options.pauseOnHover===true){_.$list.on('mouseenter.slick',function(){_.paused=true;_.autoPlayClear();});_.$list.on('mouseleave.slick',function(){_.paused=false;_.autoPlay();});}}
if(_.options.accessibility===true){_.$list.on('keydown.slick',_.keyHandler);}
if(_.options.focusOnSelect===true){$(_.$slideTrack).children().on('click.slick',_.selectHandler);}
$(window).on('orientationchange.slick.slick-'+_.instanceUid,function(){_.checkResponsive();_.setPosition();});$(window).on('resize.slick.slick-'+_.instanceUid,function(){if($(window).width()!==_.windowWidth){clearTimeout(_.windowDelay);_.windowDelay=window.setTimeout(function(){_.windowWidth=$(window).width();_.checkResponsive();_.setPosition();},50);}});$('*[draggable!=true]',_.$slideTrack).on('dragstart',function(e){e.preventDefault();});$(window).on('load.slick.slick-'+_.instanceUid,_.setPosition);$(document).on('ready.slick.slick-'+_.instanceUid,_.setPosition);};Slick.prototype.initUI=function(){var _=this;if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow.show();_.$nextArrow.show();}
if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){_.$dots.show();}
if(_.options.autoplay===true){_.autoPlay();}};Slick.prototype.keyHandler=function(event){var _=this;if(event.keyCode===37&&_.options.accessibility===true){_.changeSlide({data:{message:'previous'}});}else if(event.keyCode===39&&_.options.accessibility===true){_.changeSlide({data:{message:'next'}});}};Slick.prototype.lazyLoad=function(){var _=this,loadRange,cloneRange,rangeStart,rangeEnd;function loadImages(imagesScope){$('img[data-lazy]',imagesScope).each(function(){var image=$(this),imageSource=$(this).attr('data-lazy');image.load(function(){image.animate({opacity:1},200);}).css({opacity:0}).attr('src',imageSource).removeAttr('data-lazy').removeClass('slick-loading');});}
if(_.options.centerMode===true){if(_.options.infinite===true){rangeStart=_.currentSlide+(_.options.slidesToShow/2+1);rangeEnd=rangeStart+_.options.slidesToShow+2;}else{rangeStart=Math.max(0,_.currentSlide-(_.options.slidesToShow/2+1));rangeEnd=2+(_.options.slidesToShow/2+1)+_.currentSlide;}}else{rangeStart=_.options.infinite?_.options.slidesToShow+_.currentSlide:_.currentSlide;rangeEnd=rangeStart+_.options.slidesToShow;if(_.options.fade===true){if(rangeStart>0)rangeStart--;if(rangeEnd<=_.slideCount)rangeEnd++;}}
loadRange=_.$slider.find('.slick-slide').slice(rangeStart,rangeEnd);loadImages(loadRange);if(_.slideCount<=_.options.slidesToShow){cloneRange=_.$slider.find('.slick-slide');loadImages(cloneRange);}else
if(_.currentSlide>=_.slideCount-_.options.slidesToShow){cloneRange=_.$slider.find('.slick-cloned').slice(0,_.options.slidesToShow);loadImages(cloneRange);}else if(_.currentSlide===0){cloneRange=_.$slider.find('.slick-cloned').slice(_.options.slidesToShow*-1);loadImages(cloneRange);}};Slick.prototype.loadSlider=function(){var _=this;_.setPosition();_.$slideTrack.css({opacity:1});_.$slider.removeClass('slick-loading');_.initUI();if(_.options.lazyLoad==='progressive'){_.progressiveLazyLoad();}};Slick.prototype.next=Slick.prototype.slickNext=function(){var _=this;_.changeSlide({data:{message:'next'}});};Slick.prototype.pause=Slick.prototype.slickPause=function(){var _=this;_.autoPlayClear();_.paused=true;};Slick.prototype.play=Slick.prototype.slickPlay=function(){var _=this;_.paused=false;_.autoPlay();};Slick.prototype.postSlide=function(index){var _=this;_.$slider.trigger("afterChange",[_,index]);_.animating=false;_.setPosition();_.swipeLeft=null;if(_.options.autoplay===true&&_.paused===false){_.autoPlay();}};Slick.prototype.prev=Slick.prototype.slickPrev=function(){var _=this;_.changeSlide({data:{message:'previous'}});};Slick.prototype.progressiveLazyLoad=function(){var _=this,imgCount,targetImage;imgCount=$('img[data-lazy]',_.$slider).length;if(imgCount>0){targetImage=$('img[data-lazy]',_.$slider).first();targetImage.attr('src',targetImage.attr('data-lazy')).removeClass('slick-loading').load(function(){targetImage.removeAttr('data-lazy');_.progressiveLazyLoad();if(_.options.adaptiveHeight===true){_.setPosition();}}).error(function(){targetImage.removeAttr('data-lazy');_.progressiveLazyLoad();});}};Slick.prototype.refresh=function(){var _=this,currentSlide=_.currentSlide;_.destroy();$.extend(_,_.initials);_.init();_.changeSlide({data:{message:'index',index:currentSlide}},true);};Slick.prototype.reinit=function(){var _=this;_.$slides=_.$slideTrack.children(_.options.slide).addClass('slick-slide');_.slideCount=_.$slides.length;if(_.currentSlide>=_.slideCount&&_.currentSlide!==0){_.currentSlide=_.currentSlide-_.options.slidesToScroll;}
if(_.slideCount<=_.options.slidesToShow){_.currentSlide=0;}
_.setProps();_.setupInfinite();_.buildArrows();_.updateArrows();_.initArrowEvents();_.buildDots();_.updateDots();_.initDotEvents();if(_.options.focusOnSelect===true){$(_.$slideTrack).children().on('click.slick',_.selectHandler);}
_.setSlideClasses(0);_.setPosition();_.$slider.trigger("reInit",[_]);};Slick.prototype.removeSlide=Slick.prototype.slickRemove=function(index,removeBefore,removeAll){var _=this;if(typeof(index)==='boolean'){removeBefore=index;index=removeBefore===true?0:_.slideCount-1;}else{index=removeBefore===true?--index:index;}
if(_.slideCount<1||index<0||index>_.slideCount-1){return false;}
_.unload();if(removeAll===true){_.$slideTrack.children().remove();}else{_.$slideTrack.children(this.options.slide).eq(index).remove();}
_.$slides=_.$slideTrack.children(this.options.slide);_.$slideTrack.children(this.options.slide).detach();_.$slideTrack.append(_.$slides);_.$slidesCache=_.$slides;_.reinit();};Slick.prototype.setCSS=function(position){var _=this,positionProps={},x,y;if(_.options.rtl===true){position=-position;}
x=_.positionProp=='left'?Math.ceil(position)+'px':'0px';y=_.positionProp=='top'?Math.ceil(position)+'px':'0px';positionProps[_.positionProp]=position;if(_.transformsEnabled===false){_.$slideTrack.css(positionProps);}else{positionProps={};if(_.cssTransitions===false){positionProps[_.animType]='translate('+x+', '+y+')';_.$slideTrack.css(positionProps);}else{positionProps[_.animType]='translate3d('+x+', '+y+', 0px)';_.$slideTrack.css(positionProps);}}};Slick.prototype.setDimensions=function(){var _=this;if(_.options.vertical===false){if(_.options.centerMode===true){_.$list.css({padding:('0px '+_.options.centerPadding)});}}else{_.$list.height(_.$slides.first().outerHeight(true)*_.options.slidesToShow);if(_.options.centerMode===true){_.$list.css({padding:(_.options.centerPadding+' 0px')});}}
_.listWidth=_.$list.width();_.listHeight=_.$list.height();if(_.options.vertical===false&&_.options.variableWidth===false){_.slideWidth=Math.ceil(_.listWidth/_.options.slidesToShow);_.$slideTrack.width(Math.ceil((_.slideWidth*_.$slideTrack.children('.slick-slide').length)));}else if(_.options.variableWidth===true){var trackWidth=0;_.slideWidth=Math.ceil(_.listWidth/_.options.slidesToShow);_.$slideTrack.children('.slick-slide').each(function(){trackWidth+=_.listWidth;});_.$slideTrack.width(Math.ceil(trackWidth)+1);}else{_.slideWidth=Math.ceil(_.listWidth);_.$slideTrack.height(Math.ceil((_.$slides.first().outerHeight(true)*_.$slideTrack.children('.slick-slide').length)));}
var offset=_.$slides.first().outerWidth(true)-_.$slides.first().width();if(_.options.variableWidth===false)_.$slideTrack.children('.slick-slide').width(_.slideWidth-offset);};Slick.prototype.setFade=function(){var _=this,targetLeft;_.$slides.each(function(index,element){targetLeft=(_.slideWidth*index)*-1;if(_.options.rtl===true){$(element).css({position:'relative',right:targetLeft,top:0,zIndex:800,opacity:0});}else{$(element).css({position:'relative',left:targetLeft,top:0,zIndex:800,opacity:0});}});_.$slides.eq(_.currentSlide).css({zIndex:900,opacity:1});};Slick.prototype.setHeight=function(){var _=this;if(_.options.slidesToShow===1&&_.options.adaptiveHeight===true&&_.options.vertical===false){var targetHeight=_.$slides.eq(_.currentSlide).outerHeight(true);_.$list.css('height',targetHeight);}};Slick.prototype.setOption=Slick.prototype.slickSetOption=function(option,value,refresh){var _=this;_.options[option]=value;if(refresh===true){_.unload();_.reinit();}};Slick.prototype.setPosition=function(){var _=this;_.setDimensions();_.setHeight();if(_.options.fade===false){_.setCSS(_.getLeft(_.currentSlide));}else{_.setFade();}
_.$slider.trigger("setPosition",[_]);};Slick.prototype.setProps=function(){var _=this,bodyStyle=document.body.style;_.positionProp=_.options.vertical===true?'top':'left';if(_.positionProp==='top'){_.$slider.addClass('slick-vertical');}else{_.$slider.removeClass('slick-vertical');}
if(bodyStyle.WebkitTransition!==undefined||bodyStyle.MozTransition!==undefined||bodyStyle.msTransition!==undefined){if(_.options.useCSS===true){_.cssTransitions=true;}}
if(bodyStyle.OTransform!==undefined){_.animType='OTransform';_.transformType="-o-transform";_.transitionType='OTransition';if(bodyStyle.perspectiveProperty===undefined&&bodyStyle.webkitPerspective===undefined)_.animType=false;}
if(bodyStyle.MozTransform!==undefined){_.animType='MozTransform';_.transformType="-moz-transform";_.transitionType='MozTransition';if(bodyStyle.perspectiveProperty===undefined&&bodyStyle.MozPerspective===undefined)_.animType=false;}
if(bodyStyle.webkitTransform!==undefined){_.animType='webkitTransform';_.transformType="-webkit-transform";_.transitionType='webkitTransition';if(bodyStyle.perspectiveProperty===undefined&&bodyStyle.webkitPerspective===undefined)_.animType=false;}
if(bodyStyle.msTransform!==undefined){_.animType='msTransform';_.transformType="-ms-transform";_.transitionType='msTransition';if(bodyStyle.msTransform===undefined)_.animType=false;}
if(bodyStyle.transform!==undefined&&_.animType!==false){_.animType='transform';_.transformType="transform";_.transitionType='transition';}
_.transformsEnabled=(_.animType!==null&&_.animType!==false);};Slick.prototype.setSlideClasses=function(index){var _=this,centerOffset,allSlides,indexOffset,remainder;_.$slider.find('.slick-slide').removeClass('slick-active').attr("aria-hidden","true").removeClass('slick-center');allSlides=_.$slider.find('.slick-slide');if(_.options.centerMode===true){centerOffset=Math.floor(_.options.slidesToShow/2);if(_.options.infinite===true){if(index>=centerOffset&&index<=(_.slideCount-1)-centerOffset){_.$slides.slice(index-centerOffset,index+centerOffset+1).addClass('slick-active').attr("aria-hidden","false");}else{indexOffset=_.options.slidesToShow+index;allSlides.slice(indexOffset-centerOffset+1,indexOffset+centerOffset+2).addClass('slick-active').attr("aria-hidden","false");}
if(index===0){allSlides.eq(allSlides.length-1-_.options.slidesToShow).addClass('slick-center');}else if(index===_.slideCount-1){allSlides.eq(_.options.slidesToShow).addClass('slick-center');}}
_.$slides.eq(index).addClass('slick-center');}else{if(index>=0&&index<=(_.slideCount-_.options.slidesToShow)){_.$slides.slice(index,index+_.options.slidesToShow).addClass('slick-active').attr("aria-hidden","false");}else if(allSlides.length<=_.options.slidesToShow){allSlides.addClass('slick-active').attr("aria-hidden","false");}else{remainder=_.slideCount%_.options.slidesToShow;indexOffset=_.options.infinite===true?_.options.slidesToShow+index:index;if(_.options.slidesToShow==_.options.slidesToScroll&&(_.slideCount-index)<_.options.slidesToShow){allSlides.slice(indexOffset-(_.options.slidesToShow-remainder),indexOffset+remainder).addClass('slick-active').attr("aria-hidden","false");}else{allSlides.slice(indexOffset,indexOffset+_.options.slidesToShow).addClass('slick-active').attr("aria-hidden","false");}}}
if(_.options.lazyLoad==='ondemand'){_.lazyLoad();}};Slick.prototype.setupInfinite=function(){var _=this,i,slideIndex,infiniteCount;if(_.options.fade===true){_.options.centerMode=false;}
if(_.options.infinite===true&&_.options.fade===false){slideIndex=null;if(_.slideCount>_.options.slidesToShow){if(_.options.centerMode===true){infiniteCount=_.options.slidesToShow+1;}else{infiniteCount=_.options.slidesToShow;}
for(i=_.slideCount;i>(_.slideCount-
infiniteCount);i-=1){slideIndex=i-1;$(_.$slides[slideIndex]).clone(true).attr('id','').attr('data-slick-index',slideIndex-_.slideCount).prependTo(_.$slideTrack).addClass('slick-cloned');}
for(i=0;i<infiniteCount;i+=1){slideIndex=i;$(_.$slides[slideIndex]).clone(true).attr('id','').attr('data-slick-index',slideIndex+_.slideCount).appendTo(_.$slideTrack).addClass('slick-cloned');}
_.$slideTrack.find('.slick-cloned').find('[id]').each(function(){$(this).attr('id','');});}}};Slick.prototype.selectHandler=function(event){var _=this;var index=parseInt($(event.target).parents('.slick-slide').attr("data-slick-index"));if(!index)index=0;if(_.slideCount<=_.options.slidesToShow){_.$slider.find('.slick-slide').removeClass('slick-active').attr("aria-hidden","true");_.$slides.eq(index).addClass('slick-active').attr("aria-hidden","false");if(_.options.centerMode===true){_.$slider.find('.slick-slide').removeClass('slick-center');_.$slides.eq(index).addClass('slick-center');}
_.asNavFor(index);return;}
_.slideHandler(index);};Slick.prototype.slideHandler=function(index,sync,dontAnimate){var targetSlide,animSlide,oldSlide,slideLeft,targetLeft=null,_=this;sync=sync||false;if(_.animating===true&&_.options.waitForAnimate===true){return;}
if(_.options.fade===true&&_.currentSlide===index){return;}
if(_.slideCount<=_.options.slidesToShow){return;}
if(sync===false){_.asNavFor(index);}
targetSlide=index;targetLeft=_.getLeft(targetSlide);slideLeft=_.getLeft(_.currentSlide);_.currentLeft=_.swipeLeft===null?slideLeft:_.swipeLeft;if(_.options.infinite===false&&_.options.centerMode===false&&(index<0||index>_.getDotCount()*_.options.slidesToScroll)){if(_.options.fade===false){targetSlide=_.currentSlide;if(dontAnimate!==true){_.animateSlide(slideLeft,function(){_.postSlide(targetSlide);});}else{_.postSlide(targetSlide);}}
return;}else if(_.options.infinite===false&&_.options.centerMode===true&&(index<0||index>(_.slideCount-_.options.slidesToScroll))){if(_.options.fade===false){targetSlide=_.currentSlide;if(dontAnimate!==true){_.animateSlide(slideLeft,function(){_.postSlide(targetSlide);});}else{_.postSlide(targetSlide);}}
return;}
if(_.options.autoplay===true){clearInterval(_.autoPlayTimer);}
if(targetSlide<0){if(_.slideCount%_.options.slidesToScroll!==0){animSlide=_.slideCount-(_.slideCount%_.options.slidesToScroll);}else{animSlide=_.slideCount+targetSlide;}}else if(targetSlide>=_.slideCount){if(_.slideCount%_.options.slidesToScroll!==0){animSlide=0;}else{animSlide=targetSlide-_.slideCount;}}else{animSlide=targetSlide;}
_.animating=true;_.$slider.trigger("beforeChange",[_,_.currentSlide,animSlide]);oldSlide=_.currentSlide;_.currentSlide=animSlide;_.setSlideClasses(_.currentSlide);_.updateDots();_.updateArrows();if(_.options.fade===true){if(dontAnimate!==true){_.fadeSlide(animSlide,function(){_.postSlide(animSlide);});}else{_.postSlide(animSlide);}
_.animateHeight();return;}
if(dontAnimate!==true){_.animateSlide(targetLeft,function(){_.postSlide(animSlide);});}else{_.postSlide(animSlide);}};Slick.prototype.startLoad=function(){var _=this;if(_.options.arrows===true&&_.slideCount>_.options.slidesToShow){_.$prevArrow.hide();_.$nextArrow.hide();}
if(_.options.dots===true&&_.slideCount>_.options.slidesToShow){_.$dots.hide();}
_.$slider.addClass('slick-loading');};Slick.prototype.swipeDirection=function(){var xDist,yDist,r,swipeAngle,_=this;xDist=_.touchObject.startX-_.touchObject.curX;yDist=_.touchObject.startY-_.touchObject.curY;r=Math.atan2(yDist,xDist);swipeAngle=Math.round(r*180/Math.PI);if(swipeAngle<0){swipeAngle=360-Math.abs(swipeAngle);}
if((swipeAngle<=45)&&(swipeAngle>=0)){return(_.options.rtl===false?'left':'right');}
if((swipeAngle<=360)&&(swipeAngle>=315)){return(_.options.rtl===false?'left':'right');}
if((swipeAngle>=135)&&(swipeAngle<=225)){return(_.options.rtl===false?'right':'left');}
return'vertical';};Slick.prototype.swipeEnd=function(event){var _=this,slideCount;_.dragging=false;_.shouldClick=(_.touchObject.swipeLength>10)?false:true;if(_.touchObject.curX===undefined){return false;}
if(_.touchObject.edgeHit===true){_.$slider.trigger("edge",[_,_.swipeDirection()]);}
if(_.touchObject.swipeLength>=_.touchObject.minSwipe){switch(_.swipeDirection()){case'left':slideCount=_.options.swipeToSlide?_.checkNavigable(_.currentSlide+_.getSlideCount()):_.currentSlide+_.getSlideCount();_.slideHandler(slideCount);_.currentDirection=0;_.touchObject={};_.$slider.trigger("swipe",[_,"left"]);break;case'right':slideCount=_.options.swipeToSlide?_.checkNavigable(_.currentSlide-_.getSlideCount()):_.currentSlide-_.getSlideCount();_.slideHandler(slideCount);_.currentDirection=1;_.touchObject={};_.$slider.trigger("swipe",[_,"right"]);break;}}else{if(_.touchObject.startX!==_.touchObject.curX){_.slideHandler(_.currentSlide);_.touchObject={};}}};Slick.prototype.swipeHandler=function(event){var _=this;if((_.options.swipe===false)||('ontouchend'in document&&_.options.swipe===false)){return;}else if(_.options.draggable===false&&event.type.indexOf('mouse')!==-1){return;}
_.touchObject.fingerCount=event.originalEvent&&event.originalEvent.touches!==undefined?event.originalEvent.touches.length:1;_.touchObject.minSwipe=_.listWidth/_.options.touchThreshold;switch(event.data.action){case'start':_.swipeStart(event);break;case'move':_.swipeMove(event);break;case'end':_.swipeEnd(event);break;}};Slick.prototype.swipeMove=function(event){var _=this,edgeWasHit=false,curLeft,swipeDirection,swipeLength,positionOffset,touches;touches=event.originalEvent!==undefined?event.originalEvent.touches:null;if(!_.dragging||touches&&touches.length!==1){return false;}
curLeft=_.getLeft(_.currentSlide);_.touchObject.curX=touches!==undefined?touches[0].pageX:event.clientX;_.touchObject.curY=touches!==undefined?touches[0].pageY:event.clientY;_.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(_.touchObject.curX-_.touchObject.startX,2)));swipeDirection=_.swipeDirection();if(swipeDirection==='vertical'){return;}
if(event.originalEvent!==undefined&&_.touchObject.swipeLength>4){event.preventDefault();}
positionOffset=(_.options.rtl===false?1:-1)*(_.touchObject.curX>_.touchObject.startX?1:-1);swipeLength=_.touchObject.swipeLength;_.touchObject.edgeHit=false;if(_.options.infinite===false){if((_.currentSlide===0&&swipeDirection==="right")||(_.currentSlide>=_.getDotCount()&&swipeDirection==="left")){swipeLength=_.touchObject.swipeLength*_.options.edgeFriction;_.touchObject.edgeHit=true;}}
if(_.options.vertical===false){_.swipeLeft=curLeft+swipeLength*positionOffset;}else{_.swipeLeft=curLeft+(swipeLength*(_.$list.height()/_.listWidth))*positionOffset;}
if(_.options.fade===true||_.options.touchMove===false){return false;}
if(_.animating===true){_.swipeLeft=null;return false;}
_.setCSS(_.swipeLeft);};Slick.prototype.swipeStart=function(event){var _=this,touches;if(_.touchObject.fingerCount!==1||_.slideCount<=_.options.slidesToShow){_.touchObject={};return false;}
if(event.originalEvent!==undefined&&event.originalEvent.touches!==undefined){touches=event.originalEvent.touches[0];}
_.touchObject.startX=_.touchObject.curX=touches!==undefined?touches.pageX:event.clientX;_.touchObject.startY=_.touchObject.curY=touches!==undefined?touches.pageY:event.clientY;_.dragging=true;};Slick.prototype.unfilterSlides=Slick.prototype.slickUnfilter=function(){var _=this;if(_.$slidesCache!==null){_.unload();_.$slideTrack.children(this.options.slide).detach();_.$slidesCache.appendTo(_.$slideTrack);_.reinit();}};Slick.prototype.unload=function(){var _=this;$('.slick-cloned',_.$slider).remove();if(_.$dots){_.$dots.remove();}
if(_.$prevArrow&&(typeof _.options.prevArrow!=='object')){_.$prevArrow.remove();}
if(_.$nextArrow&&(typeof _.options.nextArrow!=='object')){_.$nextArrow.remove();}
_.$slides.removeClass('slick-slide slick-active slick-visible').attr("aria-hidden","true").css('width','');};Slick.prototype.unslick=function(){var _=this;_.destroy();};Slick.prototype.updateArrows=function(){var _=this,centerOffset;centerOffset=Math.floor(_.options.slidesToShow/2);if(_.options.arrows===true&&_.options.infinite!==true&&_.slideCount>_.options.slidesToShow){_.$prevArrow.removeClass('slick-disabled');_.$nextArrow.removeClass('slick-disabled');if(_.currentSlide===0){_.$prevArrow.addClass('slick-disabled');_.$nextArrow.removeClass('slick-disabled');}else if(_.currentSlide>=_.slideCount-_.options.slidesToShow&&_.options.centerMode===false){_.$nextArrow.addClass('slick-disabled');_.$prevArrow.removeClass('slick-disabled');}else if(_.currentSlide>=_.slideCount-1&&_.options.centerMode===true){_.$nextArrow.addClass('slick-disabled');_.$prevArrow.removeClass('slick-disabled');}}};Slick.prototype.updateDots=function(){var _=this;if(_.$dots!==null){_.$dots.find('li').removeClass('slick-active').attr("aria-hidden","true");_.$dots.find('li').eq(Math.floor(_.currentSlide/_.options.slidesToScroll)).addClass('slick-active').attr("aria-hidden","false");}};Slick.prototype.visibility=function(){var _=this;if(document[_.hidden]){_.paused=true;_.autoPlayClear();}else{_.paused=false;_.autoPlay();}};$.fn.slick=function(){var _=this,opt=arguments[0],args=Array.prototype.slice.call(arguments,1),l=_.length,i=0,ret;for(i;i<l;i++){if(typeof opt=='object'||typeof opt=='undefined')
_[i].slick=new Slick(_[i],opt);else
ret=_[i].slick[opt].apply(_[i].slick,args);if(typeof ret!='undefined')return ret;}
return _;};$(function(){$('[data-slick]').slick();});}));'use strict';angular.module('slick',[]).directive('slick',['$timeout',function($timeout){return{restrict:'AEC',scope:{initOnload:'@',data:'=',currentIndex:'=',accessibility:'@',adaptiveHeight:'@',arrows:'@',asNavFor:'@',appendArrows:'@',appendDots:'@',autoplay:'@',autoplaySpeed:'@',centerMode:'@',centerPadding:'@',cssEase:'@',customPaging:'&',dots:'@',draggable:'@',easing:'@',fade:'@',focusOnSelect:'@',infinite:'@',initialSlide:'@',lazyLoad:'@',onBeforeChange:'&',onAfterChange:'&',onInit:'&',onReInit:'&',onSetPosition:'&',pauseOnHover:'@',pauseOnDotsHover:'@',responsive:'=',rtl:'@',slide:'@',slidesToShow:'@',slidesToScroll:'@',speed:'@',swipe:'@',swipeToSlide:'@',touchMove:'@',touchThreshold:'@',useCSS:'@',variableWidth:'@',vertical:'@',prevArrow:'@',nextArrow:'@'},link:function(scope,element,attrs){var destroySlick,initializeSlick,isInitialized;destroySlick=function(){return $timeout(function(){var slider;slider=$(element);slider.unslick();slider.find('.slick-list').remove();return slider;});};initializeSlick=function(){return $timeout(function(){var currentIndex,customPaging,slider;slider=$(element);if(scope.currentIndex!=null){currentIndex=scope.currentIndex;}
customPaging=function(slick,index){return scope.customPaging({slick:slick,index:index});};slider.slick({accessibility:scope.accessibility!=='false',adaptiveHeight:scope.adaptiveHeight==='true',arrows:scope.arrows!=='false',asNavFor:scope.asNavFor?scope.asNavFor:void 0,appendArrows:scope.appendArrows?$(scope.appendArrows):$(element),appendDots:scope.appendDots?$(scope.appendDots):$(element),autoplay:scope.autoplay==='true',autoplaySpeed:scope.autoplaySpeed!=null?parseInt(scope.autoplaySpeed,10):3000,centerMode:scope.centerMode==='true',centerPadding:scope.centerPadding||'50px',cssEase:scope.cssEase||'ease',customPaging:attrs.customPaging?customPaging:void 0,dots:scope.dots==='true',draggable:scope.draggable!=='false',easing:scope.easing||'linear',fade:scope.fade==='true',focusOnSelect:scope.focusOnSelect==='true',infinite:scope.infinite!=='false',initialSlide:scope.initialSlide||0,lazyLoad:scope.lazyLoad||'ondemand',beforeChange:attrs.onBeforeChange?scope.onBeforeChange:void 0,onReInit:attrs.onReInit?scope.onReInit:void 0,onSetPosition:attrs.onSetPosition?scope.onSetPosition:void 0,pauseOnHover:scope.pauseOnHover!=='false',responsive:scope.responsive||void 0,rtl:scope.rtl==='true',slide:scope.slide||'div',slidesToShow:scope.slidesToShow!=null?parseInt(scope.slidesToShow,10):1,slidesToScroll:scope.slidesToScroll!=null?parseInt(scope.slidesToScroll,10):1,speed:scope.speed!=null?parseInt(scope.speed,10):300,swipe:scope.swipe!=='false',swipeToSlide:scope.swipeToSlide==='true',touchMove:scope.touchMove!=='false',touchThreshold:scope.touchThreshold?parseInt(scope.touchThreshold,10):5,useCSS:scope.useCSS!=='false',variableWidth:scope.variableWidth==='true',vertical:scope.vertical==='true',prevArrow:scope.prevArrow?$(scope.prevArrow):void 0,nextArrow:scope.nextArrow?$(scope.nextArrow):void 0});slider.on('init',function(sl){if(attrs.onInit){scope.onInit();}
if(currentIndex!=null){return sl.slideHandler(currentIndex);}});slider.on('afterChange',function(event,slick,currentSlide,nextSlide){if(scope.onAfterChange){scope.onAfterChange();}
if(currentIndex!=null){return scope.$apply(function(){currentIndex=currentSlide;return scope.currentIndex=currentSlide;});}});return scope.$watch('currentIndex',function(newVal,oldVal){if(currentIndex!=null&&newVal!=null&&newVal!==currentIndex){return slider.slick('slickGoTo',newVal);}});});};if(scope.initOnload){isInitialized=false;return scope.$watch('data',function(newVal,oldVal){if(newVal!=null){if(isInitialized){destroySlick();}
initializeSlick();return isInitialized=true;}});}else{return initializeSlick();}}};}]);angular.module('dibari.angular-ellipsis',[]).directive('ellipsis',['$timeout','$window','$sce',function($timeout,$window,$sce){var AsyncDigest=function(delay){var timeout=null;var queue=[];this.remove=function(fn){if(queue.indexOf(fn)!==-1){queue.splice(queue.indexOf(fn),1);if(queue.length===0){$timeout.cancel(timeout);timeout=null;}}};this.add=function(fn){if(queue.indexOf(fn)===-1){queue.push(fn);}
if(!timeout){timeout=$timeout(function(){var copy=queue.slice();timeout=null;queue.length=0;copy.forEach(function(fn){fn();});},delay);}};};var asyncDigestImmediate=new AsyncDigest(0);var asyncDigestDebounced=new AsyncDigest(75);return{restrict:'A',scope:{ngBind:'=',ngBindHtml:'=',ellipsisAppend:'@',ellipsisAppendClick:'&',ellipsisSymbol:'@',ellipsisSeparator:'@',useParent:"@",ellipsisSeparatorReg:'='},compile:function(elem,attr,linker){return function(scope,element,attributes){attributes.lastWindowResizeTime=0;attributes.lastWindowResizeWidth=0;attributes.lastWindowResizeHeight=0;attributes.lastWindowTimeoutEvent=null;attributes.isTruncated=false;function getParentHeight(element){var heightOfChildren=0;angular.forEach(element.parent().children(),function(child){if(child!=element[0]){heightOfChildren+=child.clientHeight;}});return element.parent()[0].clientHeight-heightOfChildren;}
function buildEllipsis(){var binding=scope.ngBind||scope.ngBindHtml;var isTrustedHTML=false;if($sce.isEnabled()&&angular.isObject(binding)&&$sce.getTrustedHtml(binding)){isTrustedHTML=true;binding=$sce.getTrustedHtml(binding);}
if(binding){var isHtml=(!(!!scope.ngBind)&&!!(scope.ngBindHtml));var i=0,ellipsisSymbol=(typeof(attributes.ellipsisSymbol)!=='undefined')?attributes.ellipsisSymbol:'&hellip;',ellipsisSeparator=(typeof(scope.ellipsisSeparator)!=='undefined')?attributes.ellipsisSeparator:' ',ellipsisSeparatorReg=(typeof(scope.ellipsisSeparatorReg)!=='undefined')?scope.ellipsisSeparatorReg:false,appendString=(typeof(scope.ellipsisAppend)!=='undefined'&&scope.ellipsisAppend!=='')?ellipsisSymbol+'<span>'+scope.ellipsisAppend+'</span>':ellipsisSymbol,bindArray=ellipsisSeparatorReg?binding.match(ellipsisSeparatorReg):binding.split(ellipsisSeparator);attributes.isTruncated=false;if(isHtml){element.html(binding);}else{element.text(binding);}
if(isOverflowed(element,scope.useParent)){var bindArrayStartingLength=bindArray.length,initialMaxHeight=scope.useParent?getParentHeight(element):element[0].clientHeight;if(isHtml){element.html(binding+appendString);}else{element.text(binding).html(element.html()+appendString);}
element.attr('data-overflowed','true');for(;i<bindArrayStartingLength;i++){bindArray.pop();if(isHtml){element.html(bindArray.join(ellipsisSeparator)+appendString);}else{element.text(bindArray.join(ellipsisSeparator)).html(element.html()+appendString);}
if((scope.useParent?element.parent()[0]:element[0]).scrollHeight<initialMaxHeight||isOverflowed(element,scope.useParent)===false){attributes.isTruncated=true;break;}}
if(ellipsisSymbol!=appendString&&typeof(scope.ellipsisAppendClick)!=='undefined'&&scope.ellipsisAppendClick!==''){element.find('span').bind("click",function(e){scope.$apply(function(){scope.ellipsisAppendClick.call(scope,{event:e});});});}
if(!isTrustedHTML&&$sce.isEnabled())
{$sce.trustAsHtml(binding);}}}}
function isOverflowed(thisElement,useParent){thisElement=useParent?thisElement.parent():thisElement;return thisElement[0].scrollHeight>thisElement[0].clientHeight;}
scope.$watch('ngBind',function(){asyncDigestImmediate.add(buildEllipsis);});scope.$watch('ngBindHtml',function(){asyncDigestImmediate.add(buildEllipsis);});scope.$watch('ellipsisAppend',function(){buildEllipsis();});function checkWindowForRebuild(){if(attributes.lastWindowResizeWidth!=window.innerWidth||attributes.lastWindowResizeHeight!=window.innerHeight){buildEllipsis();}
attributes.lastWindowResizeWidth=window.innerWidth;attributes.lastWindowResizeHeight=window.innerHeight;}
function onResize(){asyncDigestDebounced.add(checkWindowForRebuild);}
var $win=angular.element($window);$win.bind('resize',onResize);scope.$on('$destroy',function(){$win.unbind('resize',onResize);asyncDigestImmediate.remove(buildEllipsis);asyncDigestDebounced.remove(checkWindowForRebuild);});};}};}]);(function(){if(typeof twttr==="undefined"||twttr===null){var twttr={};}
twttr.txt={};twttr.txt.regexen={};var HTML_ENTITIES={'&':'&amp;','>':'&gt;','<':'&lt;','"':'&quot;',"'":'&#39;'};twttr.txt.htmlEscape=function(text){return text&&text.replace(/[&"'><]/g,function(character){return HTML_ENTITIES[character];});};function regexSupplant(regex,flags){flags=flags||"";if(typeof regex!=="string"){if(regex.global&&flags.indexOf("g")<0){flags+="g";}
if(regex.ignoreCase&&flags.indexOf("i")<0){flags+="i";}
if(regex.multiline&&flags.indexOf("m")<0){flags+="m";}
regex=regex.source;}
return new RegExp(regex.replace(/#\{(\w+)\}/g,function(match,name){var newRegex=twttr.txt.regexen[name]||"";if(typeof newRegex!=="string"){newRegex=newRegex.source;}
return newRegex;}),flags);}
twttr.txt.regexSupplant=regexSupplant;function stringSupplant(str,values){return str.replace(/#\{(\w+)\}/g,function(match,name){return values[name]||"";});}
twttr.txt.stringSupplant=stringSupplant;function addCharsToCharClass(charClass,start,end){var s=String.fromCharCode(start);if(end!==start){s+="-"+String.fromCharCode(end);}
charClass.push(s);return charClass;}
twttr.txt.addCharsToCharClass=addCharsToCharClass;var fromCode=String.fromCharCode;var UNICODE_SPACES=[fromCode(0x0020),fromCode(0x0085),fromCode(0x00A0),fromCode(0x1680),fromCode(0x180E),fromCode(0x2028),fromCode(0x2029),fromCode(0x202F),fromCode(0x205F),fromCode(0x3000)];addCharsToCharClass(UNICODE_SPACES,0x009,0x00D);addCharsToCharClass(UNICODE_SPACES,0x2000,0x200A);var INVALID_CHARS=[fromCode(0xFFFE),fromCode(0xFEFF),fromCode(0xFFFF)];addCharsToCharClass(INVALID_CHARS,0x202A,0x202E);twttr.txt.regexen.spaces_group=regexSupplant(UNICODE_SPACES.join(""));twttr.txt.regexen.spaces=regexSupplant("["+UNICODE_SPACES.join("")+"]");twttr.txt.regexen.invalid_chars_group=regexSupplant(INVALID_CHARS.join(""));twttr.txt.regexen.punct=/\!'#%&'\(\)*\+,\\\-\.\/:;<=>\?@\[\]\^_{|}~\$/;twttr.txt.regexen.rtl_chars=/[\u0600-\u06FF]|[\u0750-\u077F]|[\u0590-\u05FF]|[\uFE70-\uFEFF]/mg;twttr.txt.regexen.non_bmp_code_pairs=/[\uD800-\uDBFF][\uDC00-\uDFFF]/mg;var latinAccentChars=[];addCharsToCharClass(latinAccentChars,0x00c0,0x00d6);addCharsToCharClass(latinAccentChars,0x00d8,0x00f6);addCharsToCharClass(latinAccentChars,0x00f8,0x00ff);addCharsToCharClass(latinAccentChars,0x0100,0x024f);addCharsToCharClass(latinAccentChars,0x0253,0x0254);addCharsToCharClass(latinAccentChars,0x0256,0x0257);addCharsToCharClass(latinAccentChars,0x0259,0x0259);addCharsToCharClass(latinAccentChars,0x025b,0x025b);addCharsToCharClass(latinAccentChars,0x0263,0x0263);addCharsToCharClass(latinAccentChars,0x0268,0x0268);addCharsToCharClass(latinAccentChars,0x026f,0x026f);addCharsToCharClass(latinAccentChars,0x0272,0x0272);addCharsToCharClass(latinAccentChars,0x0289,0x0289);addCharsToCharClass(latinAccentChars,0x028b,0x028b);addCharsToCharClass(latinAccentChars,0x02bb,0x02bb);addCharsToCharClass(latinAccentChars,0x0300,0x036f);addCharsToCharClass(latinAccentChars,0x1e00,0x1eff);twttr.txt.regexen.latinAccentChars=regexSupplant(latinAccentChars.join(""));var unicodeLettersAndMarks="A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D";var unicodeNumbers="0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19";var hashtagSpecialChars="_\u200c\u200d\ua67e\u05be\u05f3\u05f4\uff5e\u301c\u309b\u309c\u30a0\u30fb\u3003\u0f0b\u0f0c\u00b7";twttr.txt.regexen.hashSigns=/[#＃]/;twttr.txt.regexen.hashtagAlpha=new RegExp("["+unicodeLettersAndMarks+"]");twttr.txt.regexen.hashtagAlphaNumeric=new RegExp("["+unicodeLettersAndMarks+unicodeNumbers+hashtagSpecialChars+"]");twttr.txt.regexen.endHashtagMatch=regexSupplant(/^(?:#{hashSigns}|:\/\/)/);twttr.txt.regexen.hashtagBoundary=new RegExp("(?:^|$|[^&"+unicodeLettersAndMarks+unicodeNumbers+hashtagSpecialChars+"])");twttr.txt.regexen.validHashtag=regexSupplant(/(#{hashtagBoundary})(#{hashSigns})(?!\ufe0f|\u20e3)(#{hashtagAlphaNumeric}*#{hashtagAlpha}#{hashtagAlphaNumeric}*)/gi);twttr.txt.regexen.validMentionPrecedingChars=/(?:^|[^a-zA-Z0-9_!#$%&*@＠]|(?:^|[^a-zA-Z0-9_+~.-])(?:rt|RT|rT|Rt):?)/;twttr.txt.regexen.atSigns=/[@＠]/;twttr.txt.regexen.validMentionOrList=regexSupplant('(#{validMentionPrecedingChars})'+'(#{atSigns})'+'([a-zA-Z0-9_]{1,20})'+'(\/[a-zA-Z][a-zA-Z0-9_\-]{0,24})?','g');twttr.txt.regexen.validReply=regexSupplant(/^(?:#{spaces})*#{atSigns}([a-zA-Z0-9_]{1,20})/);twttr.txt.regexen.endMentionMatch=regexSupplant(/^(?:#{atSigns}|[#{latinAccentChars}]|:\/\/)/);twttr.txt.regexen.validUrlPrecedingChars=regexSupplant(/(?:[^A-Za-z0-9@＠$#＃#{invalid_chars_group}]|^)/);twttr.txt.regexen.invalidUrlWithoutProtocolPrecedingChars=/[-_.\/]$/;twttr.txt.regexen.invalidDomainChars=stringSupplant("#{punct}#{spaces_group}#{invalid_chars_group}",twttr.txt.regexen);twttr.txt.regexen.validDomainChars=regexSupplant(/[^#{invalidDomainChars}]/);twttr.txt.regexen.validSubdomain=regexSupplant(/(?:(?:#{validDomainChars}(?:[_-]|#{validDomainChars})*)?#{validDomainChars}\.)/);twttr.txt.regexen.validDomainName=regexSupplant(/(?:(?:#{validDomainChars}(?:-|#{validDomainChars})*)?#{validDomainChars}\.)/);twttr.txt.regexen.validGTLD=regexSupplant(RegExp('(?:(?:'+'abb|abbott|abogado|academy|accenture|accountant|accountants|aco|active|actor|ads|adult|aeg|aero|'+'afl|agency|aig|airforce|airtel|allfinanz|alsace|amsterdam|android|apartments|app|aquarelle|'+'archi|army|arpa|asia|associates|attorney|auction|audio|auto|autos|axa|azure|band|bank|bar|'+'barcelona|barclaycard|barclays|bargains|bauhaus|bayern|bbc|bbva|bcn|beer|bentley|berlin|best|'+'bet|bharti|bible|bid|bike|bing|bingo|bio|biz|black|blackfriday|bloomberg|blue|bmw|bnl|'+'bnpparibas|boats|bond|boo|boots|boutique|bradesco|bridgestone|broker|brother|brussels|budapest|'+'build|builders|business|buzz|bzh|cab|cafe|cal|camera|camp|cancerresearch|canon|capetown|capital|'+'caravan|cards|care|career|careers|cars|cartier|casa|cash|casino|cat|catering|cba|cbn|ceb|center|'+'ceo|cern|cfa|cfd|chanel|channel|chat|cheap|chloe|christmas|chrome|church|cisco|citic|city|'+'claims|cleaning|click|clinic|clothing|cloud|club|coach|codes|coffee|college|cologne|com|'+'commbank|community|company|computer|condos|construction|consulting|contractors|cooking|cool|'+'coop|corsica|country|coupons|courses|credit|creditcard|cricket|crown|crs|cruises|cuisinella|'+'cymru|cyou|dabur|dad|dance|date|dating|datsun|day|dclk|deals|degree|delivery|delta|democrat|'+'dental|dentist|desi|design|dev|diamonds|diet|digital|direct|directory|discount|dnp|docs|dog|'+'doha|domains|doosan|download|drive|durban|dvag|earth|eat|edu|education|email|emerck|energy|'+'engineer|engineering|enterprises|epson|equipment|erni|esq|estate|eurovision|eus|events|everbank|'+'exchange|expert|exposed|express|fage|fail|faith|family|fan|fans|farm|fashion|feedback|film|'+'finance|financial|firmdale|fish|fishing|fit|fitness|flights|florist|flowers|flsmidth|fly|foo|'+'football|forex|forsale|forum|foundation|frl|frogans|fund|furniture|futbol|fyi|gal|gallery|game|'+'garden|gbiz|gdn|gent|genting|ggee|gift|gifts|gives|giving|glass|gle|global|globo|gmail|gmo|gmx|'+'gold|goldpoint|golf|goo|goog|google|gop|gov|graphics|gratis|green|gripe|group|guge|guide|'+'guitars|guru|hamburg|hangout|haus|healthcare|help|here|hermes|hiphop|hitachi|hiv|hockey|'+'holdings|holiday|homedepot|homes|honda|horse|host|hosting|hoteles|hotmail|house|how|hsbc|ibm|'+'icbc|ice|icu|ifm|iinet|immo|immobilien|industries|infiniti|info|ing|ink|institute|insure|int|'+'international|investments|ipiranga|irish|ist|istanbul|itau|iwc|java|jcb|jetzt|jewelry|jlc|jll|'+'jobs|joburg|jprs|juegos|kaufen|kddi|kim|kitchen|kiwi|koeln|komatsu|krd|kred|kyoto|lacaixa|'+'lancaster|land|lasalle|lat|latrobe|law|lawyer|lds|lease|leclerc|legal|lexus|lgbt|liaison|lidl|'+'life|lighting|limited|limo|link|live|lixil|loan|loans|lol|london|lotte|lotto|love|ltda|lupin|'+'luxe|luxury|madrid|maif|maison|man|management|mango|market|marketing|markets|marriott|mba|media|'+'meet|melbourne|meme|memorial|men|menu|miami|microsoft|mil|mini|mma|mobi|moda|moe|mom|monash|'+'money|montblanc|mormon|mortgage|moscow|motorcycles|mov|movie|movistar|mtn|mtpc|museum|nadex|'+'nagoya|name|navy|nec|net|netbank|network|neustar|new|news|nexus|ngo|nhk|nico|ninja|nissan|nokia|'+'nra|nrw|ntt|nyc|office|okinawa|omega|one|ong|onl|online|ooo|oracle|orange|org|organic|osaka|'+'otsuka|ovh|page|panerai|paris|partners|parts|party|pet|pharmacy|philips|photo|photography|'+'photos|physio|piaget|pics|pictet|pictures|pink|pizza|place|play|plumbing|plus|pohl|poker|porn|'+'post|praxi|press|pro|prod|productions|prof|properties|property|pub|qpon|quebec|racing|realtor|'+'realty|recipes|red|redstone|rehab|reise|reisen|reit|ren|rent|rentals|repair|report|republican|'+'rest|restaurant|review|reviews|rich|ricoh|rio|rip|rocks|rodeo|rsvp|ruhr|run|ryukyu|saarland|'+'sakura|sale|samsung|sandvik|sandvikcoromant|sanofi|sap|sarl|saxo|sca|scb|schmidt|scholarships|'+'school|schule|schwarz|science|scor|scot|seat|seek|sener|services|sew|sex|sexy|shiksha|shoes|'+'show|shriram|singles|site|ski|sky|skype|sncf|soccer|social|software|sohu|solar|solutions|sony|'+'soy|space|spiegel|spreadbetting|srl|starhub|statoil|studio|study|style|sucks|supplies|supply|'+'support|surf|surgery|suzuki|swatch|swiss|sydney|systems|taipei|tatamotors|tatar|tattoo|tax|taxi|'+'team|tech|technology|tel|telefonica|temasek|tennis|thd|theater|tickets|tienda|tips|tires|tirol|'+'today|tokyo|tools|top|toray|toshiba|tours|town|toyota|toys|trade|trading|training|travel|trust|'+'tui|ubs|university|uno|uol|vacations|vegas|ventures|vermögensberater|vermögensberatung|'+'versicherung|vet|viajes|video|villas|vin|vision|vista|vistaprint|vlaanderen|vodka|vote|voting|'+'voto|voyage|wales|walter|wang|watch|webcam|website|wed|wedding|weir|whoswho|wien|wiki|'+'williamhill|win|windows|wine|wme|work|works|world|wtc|wtf|xbox|xerox|xin|xperia|xxx|xyz|yachts|'+'yandex|yodobashi|yoga|yokohama|youtube|zip|zone|zuerich|дети|ком|москва|онлайн|орг|рус|сайт|קום|'+'بازار|شبكة|كوم|موقع|कॉम|नेट|संगठन|คอม|みんな|グーグル|コム|世界|中信|中文网|企业|佛山|信息|健康|八卦|公司|公益|商城|商店|商标|在线|大拿|'+'娱乐|工行|广东|慈善|我爱你|手机|政务|政府|新闻|时尚|机构|淡马锡|游戏|点看|移动|组织机构|网址|网店|网络|谷歌|集团|飞利浦|餐厅|닷넷|닷컴|삼성|onion'+')(?=[^0-9a-zA-Z@]|$))'));twttr.txt.regexen.validCCTLD=regexSupplant(RegExp('(?:(?:'+'ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bl|bm|bn|bo|bq|'+'br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|'+'ec|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|'+'gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|'+'la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mf|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|'+'my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|'+'rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|'+'tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ελ|'+'бел|мкд|мон|рф|срб|укр|қаз|հայ|الاردن|الجزائر|السعودية|المغرب|امارات|ایران|بھارت|تونس|سودان|'+'سورية|عراق|عمان|فلسطين|قطر|مصر|مليسيا|پاکستان|भारत|বাংলা|ভারত|ਭਾਰਤ|ભારત|இந்தியா|இலங்கை|'+'சிங்கப்பூர்|భారత్|ලංකා|ไทย|გე|中国|中國|台湾|台灣|新加坡|澳門|香港|한국'+')(?=[^0-9a-zA-Z@]|$))'));twttr.txt.regexen.validPunycode=regexSupplant(/(?:xn--[0-9a-z]+)/);twttr.txt.regexen.validSpecialCCTLD=regexSupplant(RegExp('(?:(?:co|tv)(?=[^0-9a-zA-Z@]|$))'));twttr.txt.regexen.validDomain=regexSupplant(/(?:#{validSubdomain}*#{validDomainName}(?:#{validGTLD}|#{validCCTLD}|#{validPunycode}))/);twttr.txt.regexen.validAsciiDomain=regexSupplant(/(?:(?:[\-a-z0-9#{latinAccentChars}]+)\.)+(?:#{validGTLD}|#{validCCTLD}|#{validPunycode})/gi);twttr.txt.regexen.invalidShortDomain=regexSupplant(/^#{validDomainName}#{validCCTLD}$/i);twttr.txt.regexen.validSpecialShortDomain=regexSupplant(/^#{validDomainName}#{validSpecialCCTLD}$/i);twttr.txt.regexen.validPortNumber=regexSupplant(/[0-9]+/);twttr.txt.regexen.cyrillicLettersAndMarks=regexSupplant("\u0400-\u04FF");twttr.txt.regexen.validGeneralUrlPathChars=regexSupplant(/[a-z#{cyrillicLettersAndMarks}0-9!\*';:=\+,\.\$\/%#\[\]\-_~@\|&#{latinAccentChars}]/i);twttr.txt.regexen.validUrlBalancedParens=regexSupplant('\\('+'(?:'+'#{validGeneralUrlPathChars}+'+'|'+'(?:'+'#{validGeneralUrlPathChars}*'+'\\('+'#{validGeneralUrlPathChars}+'+'\\)'+'#{validGeneralUrlPathChars}*'+')'+')'+'\\)','i');twttr.txt.regexen.validUrlPathEndingChars=regexSupplant(/[\+\-a-z#{cyrillicLettersAndMarks}0-9=_#\/#{latinAccentChars}]|(?:#{validUrlBalancedParens})/i);twttr.txt.regexen.validUrlPath=regexSupplant('(?:'+'(?:'+'#{validGeneralUrlPathChars}*'+'(?:#{validUrlBalancedParens}#{validGeneralUrlPathChars}*)*'+'#{validUrlPathEndingChars}'+')|(?:@#{validGeneralUrlPathChars}+\/)'+')','i');twttr.txt.regexen.validUrlQueryChars=/[a-z0-9!?\*'@\(\);:&=\+\$\/%#\[\]\-_\.,~|]/i;twttr.txt.regexen.validUrlQueryEndingChars=/[a-z0-9_&=#\/]/i;twttr.txt.regexen.extractUrl=regexSupplant('('+'(#{validUrlPrecedingChars})'+'('+'(https?:\\/\\/)?'+'(#{validDomain})'+'(?::(#{validPortNumber}))?'+'(\\/#{validUrlPath}*)?'+'(\\?#{validUrlQueryChars}*#{validUrlQueryEndingChars})?'+')'+')','gi');twttr.txt.regexen.validTcoUrl=/^https?:\/\/t\.co\/[a-z0-9]+/i;twttr.txt.regexen.urlHasProtocol=/^https?:\/\//i;twttr.txt.regexen.urlHasHttps=/^https:\/\//i;twttr.txt.regexen.cashtag=/[a-z]{1,6}(?:[._][a-z]{1,2})?/i;twttr.txt.regexen.validCashtag=regexSupplant('(^|#{spaces})(\\$)(#{cashtag})(?=$|\\s|[#{punct}])','gi');twttr.txt.regexen.validateUrlUnreserved=/[a-z\u0400-\u04FF0-9\-._~]/i;twttr.txt.regexen.validateUrlPctEncoded=/(?:%[0-9a-f]{2})/i;twttr.txt.regexen.validateUrlSubDelims=/[!$&'()*+,;=]/i;twttr.txt.regexen.validateUrlPchar=regexSupplant('(?:'+'#{validateUrlUnreserved}|'+'#{validateUrlPctEncoded}|'+'#{validateUrlSubDelims}|'+'[:|@]'+')','i');twttr.txt.regexen.validateUrlScheme=/(?:[a-z][a-z0-9+\-.]*)/i;twttr.txt.regexen.validateUrlUserinfo=regexSupplant('(?:'+'#{validateUrlUnreserved}|'+'#{validateUrlPctEncoded}|'+'#{validateUrlSubDelims}|'+':'+')*','i');twttr.txt.regexen.validateUrlDecOctet=/(?:[0-9]|(?:[1-9][0-9])|(?:1[0-9]{2})|(?:2[0-4][0-9])|(?:25[0-5]))/i;twttr.txt.regexen.validateUrlIpv4=regexSupplant(/(?:#{validateUrlDecOctet}(?:\.#{validateUrlDecOctet}){3})/i);twttr.txt.regexen.validateUrlIpv6=/(?:\[[a-f0-9:\.]+\])/i;twttr.txt.regexen.validateUrlIp=regexSupplant('(?:'+'#{validateUrlIpv4}|'+'#{validateUrlIpv6}'+')','i');twttr.txt.regexen.validateUrlSubDomainSegment=/(?:[a-z0-9](?:[a-z0-9_\-]*[a-z0-9])?)/i;twttr.txt.regexen.validateUrlDomainSegment=/(?:[a-z0-9](?:[a-z0-9\-]*[a-z0-9])?)/i;twttr.txt.regexen.validateUrlDomainTld=/(?:[a-z](?:[a-z0-9\-]*[a-z0-9])?)/i;twttr.txt.regexen.validateUrlDomain=regexSupplant(/(?:(?:#{validateUrlSubDomainSegment]}\.)*(?:#{validateUrlDomainSegment]}\.)#{validateUrlDomainTld})/i);twttr.txt.regexen.validateUrlHost=regexSupplant('(?:'+'#{validateUrlIp}|'+'#{validateUrlDomain}'+')','i');twttr.txt.regexen.validateUrlUnicodeSubDomainSegment=/(?:(?:[a-z0-9]|[^\u0000-\u007f])(?:(?:[a-z0-9_\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i;twttr.txt.regexen.validateUrlUnicodeDomainSegment=/(?:(?:[a-z0-9]|[^\u0000-\u007f])(?:(?:[a-z0-9\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i;twttr.txt.regexen.validateUrlUnicodeDomainTld=/(?:(?:[a-z]|[^\u0000-\u007f])(?:(?:[a-z0-9\-]|[^\u0000-\u007f])*(?:[a-z0-9]|[^\u0000-\u007f]))?)/i;twttr.txt.regexen.validateUrlUnicodeDomain=regexSupplant(/(?:(?:#{validateUrlUnicodeSubDomainSegment}\.)*(?:#{validateUrlUnicodeDomainSegment}\.)#{validateUrlUnicodeDomainTld})/i);twttr.txt.regexen.validateUrlUnicodeHost=regexSupplant('(?:'+'#{validateUrlIp}|'+'#{validateUrlUnicodeDomain}'+')','i');twttr.txt.regexen.validateUrlPort=/[0-9]{1,5}/;twttr.txt.regexen.validateUrlUnicodeAuthority=regexSupplant('(?:(#{validateUrlUserinfo})@)?'+'(#{validateUrlUnicodeHost})'+'(?::(#{validateUrlPort}))?',"i");twttr.txt.regexen.validateUrlAuthority=regexSupplant('(?:(#{validateUrlUserinfo})@)?'+'(#{validateUrlHost})'+'(?::(#{validateUrlPort}))?',"i");twttr.txt.regexen.validateUrlPath=regexSupplant(/(\/#{validateUrlPchar}*)*/i);twttr.txt.regexen.validateUrlQuery=regexSupplant(/(#{validateUrlPchar}|\/|\?)*/i);twttr.txt.regexen.validateUrlFragment=regexSupplant(/(#{validateUrlPchar}|\/|\?)*/i);twttr.txt.regexen.validateUrlUnencoded=regexSupplant('^'+'(?:'+'([^:/?#]+):\\/\\/'+')?'+'([^/?#]*)'+'([^?#]*)'+'(?:'+'\\?([^#]*)'+')?'+'(?:'+'#(.*)'+')?$',"i");var DEFAULT_LIST_CLASS="tweet-url list-slug";var DEFAULT_USERNAME_CLASS="tweet-url username";var DEFAULT_HASHTAG_CLASS="tweet-url hashtag";var DEFAULT_CASHTAG_CLASS="tweet-url cashtag";var OPTIONS_NOT_ATTRIBUTES={'urlClass':true,'listClass':true,'usernameClass':true,'hashtagClass':true,'cashtagClass':true,'usernameUrlBase':true,'listUrlBase':true,'hashtagUrlBase':true,'cashtagUrlBase':true,'usernameUrlBlock':true,'listUrlBlock':true,'hashtagUrlBlock':true,'linkUrlBlock':true,'usernameIncludeSymbol':true,'suppressLists':true,'suppressNoFollow':true,'targetBlank':true,'suppressDataScreenName':true,'urlEntities':true,'symbolTag':true,'textWithSymbolTag':true,'urlTarget':true,'invisibleTagAttrs':true,'linkAttributeBlock':true,'linkTextBlock':true,'htmlEscapeNonEntities':true};var BOOLEAN_ATTRIBUTES={'disabled':true,'readonly':true,'multiple':true,'checked':true};function clone(o){var r={};for(var k in o){if(o.hasOwnProperty(k)){r[k]=o[k];}}
return r;}
twttr.txt.tagAttrs=function(attributes){var htmlAttrs="";for(var k in attributes){var v=attributes[k];if(BOOLEAN_ATTRIBUTES[k]){v=v?k:null;}
if(v==null)continue;htmlAttrs+=" "+twttr.txt.htmlEscape(k)+"=\""+twttr.txt.htmlEscape(v.toString())+"\"";}
return htmlAttrs;};twttr.txt.linkToText=function(entity,text,attributes,options){if(!options.suppressNoFollow){attributes.rel="nofollow";}
if(options.linkAttributeBlock){options.linkAttributeBlock(entity,attributes);}
if(options.linkTextBlock){text=options.linkTextBlock(entity,text);}
var d={text:text,attr:twttr.txt.tagAttrs(attributes)};return stringSupplant("<a#{attr}>#{text}</a>",d);};twttr.txt.linkToTextWithSymbol=function(entity,symbol,text,attributes,options){var taggedSymbol=options.symbolTag?"<"+options.symbolTag+">"+symbol+"</"+options.symbolTag+">":symbol;text=twttr.txt.htmlEscape(text);var taggedText=options.textWithSymbolTag?"<"+options.textWithSymbolTag+">"+text+"</"+options.textWithSymbolTag+">":text;if(options.usernameIncludeSymbol||!symbol.match(twttr.txt.regexen.atSigns)){return twttr.txt.linkToText(entity,taggedSymbol+taggedText,attributes,options);}else{return taggedSymbol+twttr.txt.linkToText(entity,taggedText,attributes,options);}};twttr.txt.linkToHashtag=function(entity,text,options){var hash=text.substring(entity.indices[0],entity.indices[0]+1);var hashtag=twttr.txt.htmlEscape(entity.hashtag);var attrs=clone(options.htmlAttrs||{});attrs.href=options.hashtagUrlBase+hashtag;attrs.title="#"+hashtag;attrs["class"]=options.hashtagClass;if(hashtag.charAt(0).match(twttr.txt.regexen.rtl_chars)){attrs["class"]+=" rtl";}
if(options.targetBlank){attrs.target='_blank';}
return twttr.txt.linkToTextWithSymbol(entity,hash,hashtag,attrs,options);};twttr.txt.linkToCashtag=function(entity,text,options){var cashtag=twttr.txt.htmlEscape(entity.cashtag);var attrs=clone(options.htmlAttrs||{});attrs.href=options.cashtagUrlBase+cashtag;attrs.title="$"+cashtag;attrs["class"]=options.cashtagClass;if(options.targetBlank){attrs.target='_blank';}
return twttr.txt.linkToTextWithSymbol(entity,"$",cashtag,attrs,options);};twttr.txt.linkToMentionAndList=function(entity,text,options){var at=text.substring(entity.indices[0],entity.indices[0]+1);var user=twttr.txt.htmlEscape(entity.screenName);var slashListname=twttr.txt.htmlEscape(entity.listSlug);var isList=entity.listSlug&&!options.suppressLists;var attrs=clone(options.htmlAttrs||{});attrs["class"]=(isList?options.listClass:options.usernameClass);attrs.href=isList?options.listUrlBase+user+slashListname:options.usernameUrlBase+user;if(!isList&&!options.suppressDataScreenName){attrs['data-screen-name']=user;}
if(options.targetBlank){attrs.target='_blank';}
return twttr.txt.linkToTextWithSymbol(entity,at,isList?user+slashListname:user,attrs,options);};twttr.txt.linkToUrl=function(entity,text,options){var url=entity.url;var displayUrl=url;var linkText=twttr.txt.htmlEscape(displayUrl);var urlEntity=(options.urlEntities&&options.urlEntities[url])||entity;if(urlEntity.display_url){linkText=twttr.txt.linkTextWithEntity(urlEntity,options);}
var attrs=clone(options.htmlAttrs||{});if(!url.match(twttr.txt.regexen.urlHasProtocol)){url="http://"+url;}
attrs.href=url;if(options.targetBlank){attrs.target='_blank';}
if(options.urlClass){attrs["class"]=options.urlClass;}
if(options.urlTarget){attrs.target=options.urlTarget;}
if(!options.title&&urlEntity.display_url){attrs.title=urlEntity.expanded_url;}
return twttr.txt.linkToText(entity,linkText,attrs,options);};twttr.txt.linkTextWithEntity=function(entity,options){var displayUrl=entity.display_url;var expandedUrl=entity.expanded_url;var displayUrlSansEllipses=displayUrl.replace(/…/g,"");if(expandedUrl.indexOf(displayUrlSansEllipses)!=-1){var displayUrlIndex=expandedUrl.indexOf(displayUrlSansEllipses);var v={displayUrlSansEllipses:displayUrlSansEllipses,beforeDisplayUrl:expandedUrl.substr(0,displayUrlIndex),afterDisplayUrl:expandedUrl.substr(displayUrlIndex+displayUrlSansEllipses.length),precedingEllipsis:displayUrl.match(/^…/)?"…":"",followingEllipsis:displayUrl.match(/…$/)?"…":""};for(var k in v){if(v.hasOwnProperty(k)){v[k]=twttr.txt.htmlEscape(v[k]);}}
v['invisible']=options.invisibleTagAttrs;return stringSupplant("<span class='tco-ellipsis'>#{precedingEllipsis}<span #{invisible}>&nbsp;</span></span><span #{invisible}>#{beforeDisplayUrl}</span><span class='js-display-url'>#{displayUrlSansEllipses}</span><span #{invisible}>#{afterDisplayUrl}</span><span class='tco-ellipsis'><span #{invisible}>&nbsp;</span>#{followingEllipsis}</span>",v);}
return displayUrl;};twttr.txt.autoLinkEntities=function(text,entities,options){options=clone(options||{});options.hashtagClass=options.hashtagClass||DEFAULT_HASHTAG_CLASS;options.hashtagUrlBase=options.hashtagUrlBase||"https://twitter.com/#!/search?q=%23";options.cashtagClass=options.cashtagClass||DEFAULT_CASHTAG_CLASS;options.cashtagUrlBase=options.cashtagUrlBase||"https://twitter.com/#!/search?q=%24";options.listClass=options.listClass||DEFAULT_LIST_CLASS;options.usernameClass=options.usernameClass||DEFAULT_USERNAME_CLASS;options.usernameUrlBase=options.usernameUrlBase||"https://twitter.com/";options.listUrlBase=options.listUrlBase||"https://twitter.com/";options.htmlAttrs=twttr.txt.extractHtmlAttrsFromOptions(options);options.invisibleTagAttrs=options.invisibleTagAttrs||"style='position:absolute;left:-9999px;'";var urlEntities,i,len;if(options.urlEntities){urlEntities={};for(i=0,len=options.urlEntities.length;i<len;i++){urlEntities[options.urlEntities[i].url]=options.urlEntities[i];}
options.urlEntities=urlEntities;}
var result="";var beginIndex=0;entities.sort(function(a,b){return a.indices[0]-b.indices[0];});var nonEntity=options.htmlEscapeNonEntities?twttr.txt.htmlEscape:function(text){return text;};for(var i=0;i<entities.length;i++){var entity=entities[i];result+=nonEntity(text.substring(beginIndex,entity.indices[0]));if(entity.url){result+=twttr.txt.linkToUrl(entity,text,options);}else if(entity.hashtag){result+=twttr.txt.linkToHashtag(entity,text,options);}else if(entity.screenName){result+=twttr.txt.linkToMentionAndList(entity,text,options);}else if(entity.cashtag){result+=twttr.txt.linkToCashtag(entity,text,options);}
beginIndex=entity.indices[1];}
result+=nonEntity(text.substring(beginIndex,text.length));return result;};twttr.txt.autoLinkWithJSON=function(text,json,options){if(json.user_mentions){for(var i=0;i<json.user_mentions.length;i++){json.user_mentions[i].screenName=json.user_mentions[i].screen_name;}}
if(json.hashtags){for(var i=0;i<json.hashtags.length;i++){json.hashtags[i].hashtag=json.hashtags[i].text;}}
if(json.symbols){for(var i=0;i<json.symbols.length;i++){json.symbols[i].cashtag=json.symbols[i].text;}}
var entities=[];for(var key in json){entities=entities.concat(json[key]);}
twttr.txt.modifyIndicesFromUnicodeToUTF16(text,entities);return twttr.txt.autoLinkEntities(text,entities,options);};twttr.txt.extractHtmlAttrsFromOptions=function(options){var htmlAttrs={};for(var k in options){var v=options[k];if(OPTIONS_NOT_ATTRIBUTES[k])continue;if(BOOLEAN_ATTRIBUTES[k]){v=v?k:null;}
if(v==null)continue;htmlAttrs[k]=v;}
return htmlAttrs;};twttr.txt.autoLink=function(text,options){var entities=twttr.txt.extractEntitiesWithIndices(text,{extractUrlsWithoutProtocol:false});return twttr.txt.autoLinkEntities(text,entities,options);};twttr.txt.autoLinkUsernamesOrLists=function(text,options){var entities=twttr.txt.extractMentionsOrListsWithIndices(text);return twttr.txt.autoLinkEntities(text,entities,options);};twttr.txt.autoLinkHashtags=function(text,options){var entities=twttr.txt.extractHashtagsWithIndices(text);return twttr.txt.autoLinkEntities(text,entities,options);};twttr.txt.autoLinkCashtags=function(text,options){var entities=twttr.txt.extractCashtagsWithIndices(text);return twttr.txt.autoLinkEntities(text,entities,options);};twttr.txt.autoLinkUrlsCustom=function(text,options){var entities=twttr.txt.extractUrlsWithIndices(text,{extractUrlsWithoutProtocol:false});return twttr.txt.autoLinkEntities(text,entities,options);};twttr.txt.removeOverlappingEntities=function(entities){entities.sort(function(a,b){return a.indices[0]-b.indices[0];});var prev=entities[0];for(var i=1;i<entities.length;i++){if(prev.indices[1]>entities[i].indices[0]){entities.splice(i,1);i--;}else{prev=entities[i];}}};twttr.txt.extractEntitiesWithIndices=function(text,options){var entities=twttr.txt.extractUrlsWithIndices(text,options).concat(twttr.txt.extractMentionsOrListsWithIndices(text)).concat(twttr.txt.extractHashtagsWithIndices(text,{checkUrlOverlap:false})).concat(twttr.txt.extractCashtagsWithIndices(text));if(entities.length==0){return[];}
twttr.txt.removeOverlappingEntities(entities);return entities;};twttr.txt.extractMentions=function(text){var screenNamesOnly=[],screenNamesWithIndices=twttr.txt.extractMentionsWithIndices(text);for(var i=0;i<screenNamesWithIndices.length;i++){var screenName=screenNamesWithIndices[i].screenName;screenNamesOnly.push(screenName);}
return screenNamesOnly;};twttr.txt.extractMentionsWithIndices=function(text){var mentions=[],mentionOrList,mentionsOrLists=twttr.txt.extractMentionsOrListsWithIndices(text);for(var i=0;i<mentionsOrLists.length;i++){mentionOrList=mentionsOrLists[i];if(mentionOrList.listSlug==''){mentions.push({screenName:mentionOrList.screenName,indices:mentionOrList.indices});}}
return mentions;};twttr.txt.extractMentionsOrListsWithIndices=function(text){if(!text||!text.match(twttr.txt.regexen.atSigns)){return[];}
var possibleNames=[],slashListname;text.replace(twttr.txt.regexen.validMentionOrList,function(match,before,atSign,screenName,slashListname,offset,chunk){var after=chunk.slice(offset+match.length);if(!after.match(twttr.txt.regexen.endMentionMatch)){slashListname=slashListname||'';var startPosition=offset+before.length;var endPosition=startPosition+screenName.length+slashListname.length+1;possibleNames.push({screenName:screenName,listSlug:slashListname,indices:[startPosition,endPosition]});}});return possibleNames;};twttr.txt.extractReplies=function(text){if(!text){return null;}
var possibleScreenName=text.match(twttr.txt.regexen.validReply);if(!possibleScreenName||RegExp.rightContext.match(twttr.txt.regexen.endMentionMatch)){return null;}
return possibleScreenName[1];};twttr.txt.extractUrls=function(text,options){var urlsOnly=[],urlsWithIndices=twttr.txt.extractUrlsWithIndices(text,options);for(var i=0;i<urlsWithIndices.length;i++){urlsOnly.push(urlsWithIndices[i].url);}
return urlsOnly;};twttr.txt.extractUrlsWithIndices=function(text,options){if(!options){options={extractUrlsWithoutProtocol:true};}
if(!text||(options.extractUrlsWithoutProtocol?!text.match(/\./):!text.match(/:/))){return[];}
var urls=[];while(twttr.txt.regexen.extractUrl.exec(text)){var before=RegExp.$2,url=RegExp.$3,protocol=RegExp.$4,domain=RegExp.$5,path=RegExp.$7;var endPosition=twttr.txt.regexen.extractUrl.lastIndex,startPosition=endPosition-url.length;if(!protocol){if(!options.extractUrlsWithoutProtocol||before.match(twttr.txt.regexen.invalidUrlWithoutProtocolPrecedingChars)){continue;}
var lastUrl=null,asciiEndPosition=0;domain.replace(twttr.txt.regexen.validAsciiDomain,function(asciiDomain){var asciiStartPosition=domain.indexOf(asciiDomain,asciiEndPosition);asciiEndPosition=asciiStartPosition+asciiDomain.length;lastUrl={url:asciiDomain,indices:[startPosition+asciiStartPosition,startPosition+asciiEndPosition]};if(path||asciiDomain.match(twttr.txt.regexen.validSpecialShortDomain)||!asciiDomain.match(twttr.txt.regexen.invalidShortDomain)){urls.push(lastUrl);}});if(lastUrl==null){continue;}
if(path){lastUrl.url=url.replace(domain,lastUrl.url);lastUrl.indices[1]=endPosition;}}else{if(url.match(twttr.txt.regexen.validTcoUrl)){url=RegExp.lastMatch;endPosition=startPosition+url.length;}
urls.push({url:url,indices:[startPosition,endPosition]});}}
return urls;};twttr.txt.extractHashtags=function(text){var hashtagsOnly=[],hashtagsWithIndices=twttr.txt.extractHashtagsWithIndices(text);for(var i=0;i<hashtagsWithIndices.length;i++){hashtagsOnly.push(hashtagsWithIndices[i].hashtag);}
return hashtagsOnly;};twttr.txt.extractHashtagsWithIndices=function(text,options){if(!options){options={checkUrlOverlap:true};}
if(!text||!text.match(twttr.txt.regexen.hashSigns)){return[];}
var tags=[];text.replace(twttr.txt.regexen.validHashtag,function(match,before,hash,hashText,offset,chunk){var after=chunk.slice(offset+match.length);if(after.match(twttr.txt.regexen.endHashtagMatch))
return;var startPosition=offset+before.length;var endPosition=startPosition+hashText.length+1;tags.push({hashtag:hashText,indices:[startPosition,endPosition]});});if(options.checkUrlOverlap){var urls=twttr.txt.extractUrlsWithIndices(text);if(urls.length>0){var entities=tags.concat(urls);twttr.txt.removeOverlappingEntities(entities);tags=[];for(var i=0;i<entities.length;i++){if(entities[i].hashtag){tags.push(entities[i]);}}}}
return tags;};twttr.txt.extractCashtags=function(text){var cashtagsOnly=[],cashtagsWithIndices=twttr.txt.extractCashtagsWithIndices(text);for(var i=0;i<cashtagsWithIndices.length;i++){cashtagsOnly.push(cashtagsWithIndices[i].cashtag);}
return cashtagsOnly;};twttr.txt.extractCashtagsWithIndices=function(text){if(!text||text.indexOf("$")==-1){return[];}
var tags=[];text.replace(twttr.txt.regexen.validCashtag,function(match,before,dollar,cashtag,offset,chunk){var startPosition=offset+before.length;var endPosition=startPosition+cashtag.length+1;tags.push({cashtag:cashtag,indices:[startPosition,endPosition]});});return tags;};twttr.txt.modifyIndicesFromUnicodeToUTF16=function(text,entities){twttr.txt.convertUnicodeIndices(text,entities,false);};twttr.txt.modifyIndicesFromUTF16ToUnicode=function(text,entities){twttr.txt.convertUnicodeIndices(text,entities,true);};twttr.txt.getUnicodeTextLength=function(text){return text.replace(twttr.txt.regexen.non_bmp_code_pairs,' ').length;};twttr.txt.convertUnicodeIndices=function(text,entities,indicesInUTF16){if(entities.length==0){return;}
var charIndex=0;var codePointIndex=0;entities.sort(function(a,b){return a.indices[0]-b.indices[0];});var entityIndex=0;var entity=entities[0];while(charIndex<text.length){if(entity.indices[0]==(indicesInUTF16?charIndex:codePointIndex)){var len=entity.indices[1]-entity.indices[0];entity.indices[0]=indicesInUTF16?codePointIndex:charIndex;entity.indices[1]=entity.indices[0]+len;entityIndex++;if(entityIndex==entities.length){break;}
entity=entities[entityIndex];}
var c=text.charCodeAt(charIndex);if(0xD800<=c&&c<=0xDBFF&&charIndex<text.length-1){c=text.charCodeAt(charIndex+1);if(0xDC00<=c&&c<=0xDFFF){charIndex++;}}
codePointIndex++;charIndex++;}};twttr.txt.splitTags=function(text){var firstSplits=text.split("<"),secondSplits,allSplits=[],split;for(var i=0;i<firstSplits.length;i+=1){split=firstSplits[i];if(!split){allSplits.push("");}else{secondSplits=split.split(">");for(var j=0;j<secondSplits.length;j+=1){allSplits.push(secondSplits[j]);}}}
return allSplits;};twttr.txt.hitHighlight=function(text,hits,options){var defaultHighlightTag="em";hits=hits||[];options=options||{};if(hits.length===0){return text;}
var tagName=options.tag||defaultHighlightTag,tags=["<"+tagName+">","</"+tagName+">"],chunks=twttr.txt.splitTags(text),i,j,result="",chunkIndex=0,chunk=chunks[0],prevChunksLen=0,chunkCursor=0,startInChunk=false,chunkChars=chunk,flatHits=[],index,hit,tag,placed,hitSpot;for(i=0;i<hits.length;i+=1){for(j=0;j<hits[i].length;j+=1){flatHits.push(hits[i][j]);}}
for(index=0;index<flatHits.length;index+=1){hit=flatHits[index];tag=tags[index%2];placed=false;while(chunk!=null&&hit>=prevChunksLen+chunk.length){result+=chunkChars.slice(chunkCursor);if(startInChunk&&hit===prevChunksLen+chunkChars.length){result+=tag;placed=true;}
if(chunks[chunkIndex+1]){result+="<"+chunks[chunkIndex+1]+">";}
prevChunksLen+=chunkChars.length;chunkCursor=0;chunkIndex+=2;chunk=chunks[chunkIndex];chunkChars=chunk;startInChunk=false;}
if(!placed&&chunk!=null){hitSpot=hit-prevChunksLen;result+=chunkChars.slice(chunkCursor,hitSpot)+tag;chunkCursor=hitSpot;if(index%2===0){startInChunk=true;}else{startInChunk=false;}}else if(!placed){placed=true;result+=tag;}}
if(chunk!=null){if(chunkCursor<chunkChars.length){result+=chunkChars.slice(chunkCursor);}
for(index=chunkIndex+1;index<chunks.length;index+=1){result+=(index%2===0?chunks[index]:"<"+chunks[index]+">");}}
return result;};var MAX_LENGTH=140;var INVALID_CHARACTERS=[fromCode(0xFFFE),fromCode(0xFEFF),fromCode(0xFFFF),fromCode(0x202A),fromCode(0x202B),fromCode(0x202C),fromCode(0x202D),fromCode(0x202E)];twttr.txt.getTweetLength=function(text,options){if(!options){options={short_url_length:23,short_url_length_https:23};}
var textLength=twttr.txt.getUnicodeTextLength(text),urlsWithIndices=twttr.txt.extractUrlsWithIndices(text);twttr.txt.modifyIndicesFromUTF16ToUnicode(text,urlsWithIndices);for(var i=0;i<urlsWithIndices.length;i++){textLength+=urlsWithIndices[i].indices[0]-urlsWithIndices[i].indices[1];if(urlsWithIndices[i].url.toLowerCase().match(twttr.txt.regexen.urlHasHttps)){textLength+=options.short_url_length_https;}else{textLength+=options.short_url_length;}}
return textLength;};twttr.txt.isInvalidTweet=function(text){if(!text){return"empty";}
if(twttr.txt.getTweetLength(text)>MAX_LENGTH){return"too_long";}
if(twttr.txt.hasInvalidCharacters(text)){return"invalid_characters";}
return false;};twttr.txt.hasInvalidCharacters=function(text){for(var i=0;i<INVALID_CHARACTERS.length;i++){if(text.indexOf(INVALID_CHARACTERS[i])>=0){return true;}}
return false;};twttr.txt.isValidTweetText=function(text){return!twttr.txt.isInvalidTweet(text);};twttr.txt.isValidUsername=function(username){if(!username){return false;}
var extracted=twttr.txt.extractMentions(username);return extracted.length===1&&extracted[0]===username.slice(1);};var VALID_LIST_RE=regexSupplant(/^#{validMentionOrList}$/);twttr.txt.isValidList=function(usernameList){var match=usernameList.match(VALID_LIST_RE);return!!(match&&match[1]==""&&match[4]);};twttr.txt.isValidHashtag=function(hashtag){if(!hashtag){return false;}
var extracted=twttr.txt.extractHashtags(hashtag);return extracted.length===1&&extracted[0]===hashtag.slice(1);};twttr.txt.isValidUrl=function(url,unicodeDomains,requireProtocol){if(unicodeDomains==null){unicodeDomains=true;}
if(requireProtocol==null){requireProtocol=true;}
if(!url){return false;}
var urlParts=url.match(twttr.txt.regexen.validateUrlUnencoded);if(!urlParts||urlParts[0]!==url){return false;}
var scheme=urlParts[1],authority=urlParts[2],path=urlParts[3],query=urlParts[4],fragment=urlParts[5];if(!((!requireProtocol||(isValidMatch(scheme,twttr.txt.regexen.validateUrlScheme)&&scheme.match(/^https?$/i)))&&isValidMatch(path,twttr.txt.regexen.validateUrlPath)&&isValidMatch(query,twttr.txt.regexen.validateUrlQuery,true)&&isValidMatch(fragment,twttr.txt.regexen.validateUrlFragment,true))){return false;}
return(unicodeDomains&&isValidMatch(authority,twttr.txt.regexen.validateUrlUnicodeAuthority))||(!unicodeDomains&&isValidMatch(authority,twttr.txt.regexen.validateUrlAuthority));};function isValidMatch(string,regex,optional){if(!optional){return((typeof string==="string")&&string.match(regex)&&RegExp["$&"]===string);}
return(!string||(string.match(regex)&&RegExp["$&"]===string));}
if(typeof module!='undefined'&&module.exports){module.exports=twttr.txt;}
if(typeof define=='function'&&define.amd){define([],twttr.txt);}
if(typeof window!='undefined'){if(window.twttr){for(var prop in twttr){window.twttr[prop]=twttr[prop];}}else{window.twttr=twttr;}}})();"use strict";angular.module("oitozero.ngSweetAlert",[]).factory("SweetAlert",["$rootScope",function($rootScope){var swal=window.swal,self={swal:function(arg1,arg2,arg3){$rootScope.$evalAsync(function(){"function"==typeof arg2?swal(arg1,function(isConfirm){$rootScope.$evalAsync(function(){arg2(isConfirm)})},arg3):swal(arg1,arg2,arg3)})},success:function(title,message){$rootScope.$evalAsync(function(){swal(title,message,"success")})},error:function(title,message){$rootScope.$evalAsync(function(){swal(title,message,"error")})},warning:function(title,message){$rootScope.$evalAsync(function(){swal(title,message,"warning")})},info:function(title,message){$rootScope.$evalAsync(function(){swal(title,message,"info")})},showInputError:function(message){$rootScope.$evalAsync(function(){swal.showInputError(message)})},close:function(){$rootScope.$evalAsync(function(){swal.close()})}};return self}]);!function(e,t,n){"use strict";!function o(e,t,n){function a(s,l){if(!t[s]){if(!e[s]){var i="function"==typeof require&&require;if(!l&&i)return i(s,!0);if(r)return r(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=t[s]={exports:{}};e[s][0].call(c.exports,function(t){var n=e[s][1][t];return a(n?n:t)},c,c.exports,o,e,t,n)}return t[s].exports}for(var r="function"==typeof require&&require,s=0;s<n.length;s++)a(n[s]);return a}({1:[function(o,a,r){var s=function(e){return e&&e.__esModule?e:{"default":e}};Object.defineProperty(r,"__esModule",{value:!0});var l,i,u,c,d=o("./modules/handle-dom"),f=o("./modules/utils"),p=o("./modules/handle-swal-dom"),m=o("./modules/handle-click"),v=o("./modules/handle-key"),y=s(v),h=o("./modules/default-params"),b=s(h),g=o("./modules/set-params"),w=s(g);r["default"]=u=c=function(){function o(e){var t=a;return t[e]===n?b["default"][e]:t[e]}var a=arguments[0];if(d.addClass(t.body,"stop-scrolling"),p.resetInput(),a===n)return f.logStr("SweetAlert expects at least 1 attribute!"),!1;var r=f.extend({},b["default"]);switch(typeof a){case"string":r.title=a,r.text=arguments[1]||"",r.type=arguments[2]||"";break;case"object":if(a.title===n)return f.logStr('Missing "title" argument!'),!1;r.title=a.title;for(var s in b["default"])r[s]=o(s);r.confirmButtonText=r.showCancelButton?"Confirm":b["default"].confirmButtonText,r.confirmButtonText=o("confirmButtonText"),r.doneFunction=arguments[1]||null;break;default:return f.logStr('Unexpected type of argument! Expected "string" or "object", got '+typeof a),!1}w["default"](r),p.fixVerticalPosition(),p.openModal(arguments[1]);for(var u=p.getModal(),v=u.querySelectorAll("button"),h=["onclick","onmouseover","onmouseout","onmousedown","onmouseup","onfocus"],g=function(e){return m.handleButton(e,r,u)},C=0;C<v.length;C++)for(var S=0;S<h.length;S++){var x=h[S];v[C][x]=g}p.getOverlay().onclick=g,l=e.onkeydown;var k=function(e){return y["default"](e,r,u)};e.onkeydown=k,e.onfocus=function(){setTimeout(function(){i!==n&&(i.focus(),i=n)},0)},c.enableButtons()},u.setDefaults=c.setDefaults=function(e){if(!e)throw new Error("userParams is required");if("object"!=typeof e)throw new Error("userParams has to be a object");f.extend(b["default"],e)},u.close=c.close=function(){var o=p.getModal();d.fadeOut(p.getOverlay(),5),d.fadeOut(o,5),d.removeClass(o,"showSweetAlert"),d.addClass(o,"hideSweetAlert"),d.removeClass(o,"visible");var a=o.querySelector(".sa-icon.sa-success");d.removeClass(a,"animate"),d.removeClass(a.querySelector(".sa-tip"),"animateSuccessTip"),d.removeClass(a.querySelector(".sa-long"),"animateSuccessLong");var r=o.querySelector(".sa-icon.sa-error");d.removeClass(r,"animateErrorIcon"),d.removeClass(r.querySelector(".sa-x-mark"),"animateXMark");var s=o.querySelector(".sa-icon.sa-warning");return d.removeClass(s,"pulseWarning"),d.removeClass(s.querySelector(".sa-body"),"pulseWarningIns"),d.removeClass(s.querySelector(".sa-dot"),"pulseWarningIns"),setTimeout(function(){var e=o.getAttribute("data-custom-class");d.removeClass(o,e)},300),d.removeClass(t.body,"stop-scrolling"),e.onkeydown=l,e.previousActiveElement&&e.previousActiveElement.focus(),i=n,clearTimeout(o.timeout),!0},u.showInputError=c.showInputError=function(e){var t=p.getModal(),n=t.querySelector(".sa-input-error");d.addClass(n,"show");var o=t.querySelector(".sa-error-container");d.addClass(o,"show"),o.querySelector("p").innerHTML=e,setTimeout(function(){u.enableButtons()},1),t.querySelector("input").focus()},u.resetInputError=c.resetInputError=function(e){if(e&&13===e.keyCode)return!1;var t=p.getModal(),n=t.querySelector(".sa-input-error");d.removeClass(n,"show");var o=t.querySelector(".sa-error-container");d.removeClass(o,"show")},u.disableButtons=c.disableButtons=function(){var e=p.getModal(),t=e.querySelector("button.confirm"),n=e.querySelector("button.cancel");t.disabled=!0,n.disabled=!0},u.enableButtons=c.enableButtons=function(){var e=p.getModal(),t=e.querySelector("button.confirm"),n=e.querySelector("button.cancel");t.disabled=!1,n.disabled=!1},"undefined"!=typeof e?e.sweetAlert=e.swal=u:f.logStr("SweetAlert is a frontend module!"),a.exports=r["default"]},{"./modules/default-params":2,"./modules/handle-click":3,"./modules/handle-dom":4,"./modules/handle-key":5,"./modules/handle-swal-dom":6,"./modules/set-params":8,"./modules/utils":9}],2:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0});var o={title:"",text:"",type:null,allowOutsideClick:!1,showConfirmButton:!0,showCancelButton:!1,closeOnConfirm:!0,closeOnCancel:!0,confirmButtonText:"OK",confirmButtonColor:"#8CD4F5",cancelButtonText:"Cancel",imageUrl:null,imageSize:null,timer:null,customClass:"",html:!1,animation:!0,allowEscapeKey:!0,inputType:"text",inputPlaceholder:"",inputValue:"",showLoaderOnConfirm:!1};n["default"]=o,t.exports=n["default"]},{}],3:[function(t,n,o){Object.defineProperty(o,"__esModule",{value:!0});var a=t("./utils"),r=(t("./handle-swal-dom"),t("./handle-dom")),s=function(t,n,o){function s(e){m&&n.confirmButtonColor&&(p.style.backgroundColor=e)}var u,c,d,f=t||e.event,p=f.target||f.srcElement,m=-1!==p.className.indexOf("confirm"),v=-1!==p.className.indexOf("sweet-overlay"),y=r.hasClass(o,"visible"),h=n.doneFunction&&"true"===o.getAttribute("data-has-done-function");switch(m&&n.confirmButtonColor&&(u=n.confirmButtonColor,c=a.colorLuminance(u,-.04),d=a.colorLuminance(u,-.14)),f.type){case"mouseover":s(c);break;case"mouseout":s(u);break;case"mousedown":s(d);break;case"mouseup":s(c);break;case"focus":var b=o.querySelector("button.confirm"),g=o.querySelector("button.cancel");m?g.style.boxShadow="none":b.style.boxShadow="none";break;case"click":var w=o===p,C=r.isDescendant(o,p);if(!w&&!C&&y&&!n.allowOutsideClick)break;m&&h&&y?l(o,n):h&&y||v?i(o,n):r.isDescendant(o,p)&&"BUTTON"===p.tagName&&sweetAlert.close()}},l=function(e,t){var n=!0;r.hasClass(e,"show-input")&&(n=e.querySelector("input").value,n||(n="")),t.doneFunction(n),t.closeOnConfirm&&sweetAlert.close(),t.showLoaderOnConfirm&&sweetAlert.disableButtons()},i=function(e,t){var n=String(t.doneFunction).replace(/\s/g,""),o="function("===n.substring(0,9)&&")"!==n.substring(9,10);o&&t.doneFunction(!1),t.closeOnCancel&&sweetAlert.close()};o["default"]={handleButton:s,handleConfirm:l,handleCancel:i},n.exports=o["default"]},{"./handle-dom":4,"./handle-swal-dom":6,"./utils":9}],4:[function(n,o,a){Object.defineProperty(a,"__esModule",{value:!0});var r=function(e,t){return new RegExp(" "+t+" ").test(" "+e.className+" ")},s=function(e,t){r(e,t)||(e.className+=" "+t)},l=function(e,t){var n=" "+e.className.replace(/[\t\r\n]/g," ")+" ";if(r(e,t)){for(;n.indexOf(" "+t+" ")>=0;)n=n.replace(" "+t+" "," ");e.className=n.replace(/^\s+|\s+$/g,"")}},i=function(e){var n=t.createElement("div");return n.appendChild(t.createTextNode(e)),n.innerHTML},u=function(e){e.style.opacity="",e.style.display="block"},c=function(e){if(e&&!e.length)return u(e);for(var t=0;t<e.length;++t)u(e[t])},d=function(e){e.style.opacity="",e.style.display="none"},f=function(e){if(e&&!e.length)return d(e);for(var t=0;t<e.length;++t)d(e[t])},p=function(e,t){for(var n=t.parentNode;null!==n;){if(n===e)return!0;n=n.parentNode}return!1},m=function(e){e.style.left="-9999px",e.style.display="block";var t,n=e.clientHeight;return t="undefined"!=typeof getComputedStyle?parseInt(getComputedStyle(e).getPropertyValue("padding-top"),10):parseInt(e.currentStyle.padding),e.style.left="",e.style.display="none","-"+parseInt((n+t)/2)+"px"},v=function(e,t){if(+e.style.opacity<1){t=t||16,e.style.opacity=0,e.style.display="block";var n=+new Date,o=function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(){e.style.opacity=+e.style.opacity+(new Date-n)/100,n=+new Date,+e.style.opacity<1&&setTimeout(o,t)});o()}e.style.display="block"},y=function(e,t){t=t||16,e.style.opacity=1;var n=+new Date,o=function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(){e.style.opacity=+e.style.opacity-(new Date-n)/100,n=+new Date,+e.style.opacity>0?setTimeout(o,t):e.style.display="none"});o()},h=function(n){if("function"==typeof MouseEvent){var o=new MouseEvent("click",{view:e,bubbles:!1,cancelable:!0});n.dispatchEvent(o)}else if(t.createEvent){var a=t.createEvent("MouseEvents");a.initEvent("click",!1,!1),n.dispatchEvent(a)}else t.createEventObject?n.fireEvent("onclick"):"function"==typeof n.onclick&&n.onclick()},b=function(t){"function"==typeof t.stopPropagation?(t.stopPropagation(),t.preventDefault()):e.event&&e.event.hasOwnProperty("cancelBubble")&&(e.event.cancelBubble=!0)};a.hasClass=r,a.addClass=s,a.removeClass=l,a.escapeHtml=i,a._show=u,a.show=c,a._hide=d,a.hide=f,a.isDescendant=p,a.getTopMargin=m,a.fadeIn=v,a.fadeOut=y,a.fireClick=h,a.stopEventPropagation=b},{}],5:[function(t,o,a){Object.defineProperty(a,"__esModule",{value:!0});var r=t("./handle-dom"),s=t("./handle-swal-dom"),l=function(t,o,a){var l=t||e.event,i=l.keyCode||l.which,u=a.querySelector("button.confirm"),c=a.querySelector("button.cancel"),d=a.querySelectorAll("button[tabindex]");if(-1!==[9,13,32,27].indexOf(i)){for(var f=l.target||l.srcElement,p=-1,m=0;m<d.length;m++)if(f===d[m]){p=m;break}9===i?(f=-1===p?u:p===d.length-1?d[0]:d[p+1],r.stopEventPropagation(l),f.focus(),o.confirmButtonColor&&s.setFocusStyle(f,o.confirmButtonColor)):13===i?("INPUT"===f.tagName&&(f=u,u.focus()),f=-1===p?u:n):27===i&&o.allowEscapeKey===!0?(f=c,r.fireClick(f,l)):f=n}};a["default"]=l,o.exports=a["default"]},{"./handle-dom":4,"./handle-swal-dom":6}],6:[function(n,o,a){var r=function(e){return e&&e.__esModule?e:{"default":e}};Object.defineProperty(a,"__esModule",{value:!0});var s=n("./utils"),l=n("./handle-dom"),i=n("./default-params"),u=r(i),c=n("./injected-html"),d=r(c),f=".sweet-alert",p=".sweet-overlay",m=function(){var e=t.createElement("div");for(e.innerHTML=d["default"];e.firstChild;)t.body.appendChild(e.firstChild)},v=function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(function(){var e=t.querySelector(f);return e||(m(),e=v()),e}),y=function(){var e=v();return e?e.querySelector("input"):void 0},h=function(){return t.querySelector(p)},b=function(e,t){var n=s.hexToRgb(t);e.style.boxShadow="0 0 2px rgba("+n+", 0.8), inset 0 0 0 1px rgba(0, 0, 0, 0.05)"},g=function(n){var o=v();l.fadeIn(h(),10),l.show(o),l.addClass(o,"showSweetAlert"),l.removeClass(o,"hideSweetAlert"),e.previousActiveElement=t.activeElement;var a=o.querySelector("button.confirm");a.focus(),setTimeout(function(){l.addClass(o,"visible")},500);var r=o.getAttribute("data-timer");if("null"!==r&&""!==r){var s=n;o.timeout=setTimeout(function(){var e=(s||null)&&"true"===o.getAttribute("data-has-done-function");e?s(null):sweetAlert.close()},r)}},w=function(){var e=v(),t=y();l.removeClass(e,"show-input"),t.value=u["default"].inputValue,t.setAttribute("type",u["default"].inputType),t.setAttribute("placeholder",u["default"].inputPlaceholder),C()},C=function(e){if(e&&13===e.keyCode)return!1;var t=v(),n=t.querySelector(".sa-input-error");l.removeClass(n,"show");var o=t.querySelector(".sa-error-container");l.removeClass(o,"show")},S=function(){var e=v();e.style.marginTop=l.getTopMargin(v())};a.sweetAlertInitialize=m,a.getModal=v,a.getOverlay=h,a.getInput=y,a.setFocusStyle=b,a.openModal=g,a.resetInput=w,a.resetInputError=C,a.fixVerticalPosition=S},{"./default-params":2,"./handle-dom":4,"./injected-html":7,"./utils":9}],7:[function(e,t,n){Object.defineProperty(n,"__esModule",{value:!0});var o='<div class="sweet-overlay" tabIndex="-1"></div><div class="sweet-alert"><div class="sa-icon sa-error">\n      <span class="sa-x-mark">\n        <span class="sa-line sa-left"></span>\n        <span class="sa-line sa-right"></span>\n      </span>\n    </div><div class="sa-icon sa-warning">\n      <span class="sa-body"></span>\n      <span class="sa-dot"></span>\n    </div><div class="sa-icon sa-info"></div><div class="sa-icon sa-success">\n      <span class="sa-line sa-tip"></span>\n      <span class="sa-line sa-long"></span>\n\n      <div class="sa-placeholder"></div>\n      <div class="sa-fix"></div>\n    </div><div class="sa-icon sa-custom"></div><h2>Title</h2>\n    <p>Text</p>\n    <fieldset>\n      <input type="text" tabIndex="3" />\n      <div class="sa-input-error"></div>\n    </fieldset><div class="sa-error-container">\n      <div class="icon">!</div>\n      <p>Not valid!</p>\n    </div><div class="sa-button-container">\n      <button class="cancel" tabIndex="2">Cancel</button>\n      <div class="sa-confirm-button-container">\n        <button class="confirm" tabIndex="1">OK</button><div class="la-ball-fall">\n          <div></div>\n          <div></div>\n          <div></div>\n        </div>\n      </div>\n    </div></div>';n["default"]=o,t.exports=n["default"]},{}],8:[function(e,t,o){Object.defineProperty(o,"__esModule",{value:!0});var a=e("./utils"),r=e("./handle-swal-dom"),s=e("./handle-dom"),l=["error","warning","info","success","input","prompt"],i=function(e){var t=r.getModal(),o=t.querySelector("h2"),i=t.querySelector("p"),u=t.querySelector("button.cancel"),c=t.querySelector("button.confirm");if(o.innerHTML=e.html?e.title:s.escapeHtml(e.title).split("\n").join("<br>"),i.innerHTML=e.html?e.text:s.escapeHtml(e.text||"").split("\n").join("<br>"),e.text&&s.show(i),e.customClass)s.addClass(t,e.customClass),t.setAttribute("data-custom-class",e.customClass);else{var d=t.getAttribute("data-custom-class");s.removeClass(t,d),t.setAttribute("data-custom-class","")}if(s.hide(t.querySelectorAll(".sa-icon")),e.type&&!a.isIE8()){var f=function(){for(var o=!1,a=0;a<l.length;a++)if(e.type===l[a]){o=!0;break}if(!o)return logStr("Unknown alert type: "+e.type),{v:!1};var i=["success","error","warning","info"],u=n;-1!==i.indexOf(e.type)&&(u=t.querySelector(".sa-icon.sa-"+e.type),s.show(u));var c=r.getInput();switch(e.type){case"success":s.addClass(u,"animate"),s.addClass(u.querySelector(".sa-tip"),"animateSuccessTip"),s.addClass(u.querySelector(".sa-long"),"animateSuccessLong");break;case"error":s.addClass(u,"animateErrorIcon"),s.addClass(u.querySelector(".sa-x-mark"),"animateXMark");break;case"warning":s.addClass(u,"pulseWarning"),s.addClass(u.querySelector(".sa-body"),"pulseWarningIns"),s.addClass(u.querySelector(".sa-dot"),"pulseWarningIns");break;case"input":case"prompt":c.setAttribute("type",e.inputType),c.value=e.inputValue,c.setAttribute("placeholder",e.inputPlaceholder),s.addClass(t,"show-input"),setTimeout(function(){c.focus(),c.addEventListener("keyup",swal.resetInputError)},400)}}();if("object"==typeof f)return f.v}if(e.imageUrl){var p=t.querySelector(".sa-icon.sa-custom");p.style.backgroundImage="url("+e.imageUrl+")",s.show(p);var m=80,v=80;if(e.imageSize){var y=e.imageSize.toString().split("x"),h=y[0],b=y[1];h&&b?(m=h,v=b):logStr("Parameter imageSize expects value with format WIDTHxHEIGHT, got "+e.imageSize)}p.setAttribute("style",p.getAttribute("style")+"width:"+m+"px; height:"+v+"px")}t.setAttribute("data-has-cancel-button",e.showCancelButton),e.showCancelButton?u.style.display="inline-block":s.hide(u),t.setAttribute("data-has-confirm-button",e.showConfirmButton),e.showConfirmButton?c.style.display="inline-block":s.hide(c),e.cancelButtonText&&(u.innerHTML=s.escapeHtml(e.cancelButtonText)),e.confirmButtonText&&(c.innerHTML=s.escapeHtml(e.confirmButtonText)),e.confirmButtonColor&&(c.style.backgroundColor=e.confirmButtonColor,c.style.borderLeftColor=e.confirmLoadingButtonColor,c.style.borderRightColor=e.confirmLoadingButtonColor,r.setFocusStyle(c,e.confirmButtonColor)),t.setAttribute("data-allow-outside-click",e.allowOutsideClick);var g=e.doneFunction?!0:!1;t.setAttribute("data-has-done-function",g),e.animation?"string"==typeof e.animation?t.setAttribute("data-animation",e.animation):t.setAttribute("data-animation","pop"):t.setAttribute("data-animation","none"),t.setAttribute("data-timer",e.timer)};o["default"]=i,t.exports=o["default"]},{"./handle-dom":4,"./handle-swal-dom":6,"./utils":9}],9:[function(t,n,o){Object.defineProperty(o,"__esModule",{value:!0});var a=function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},r=function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?parseInt(t[1],16)+", "+parseInt(t[2],16)+", "+parseInt(t[3],16):null},s=function(){return e.attachEvent&&!e.addEventListener},l=function(t){e.console&&e.console.log("SweetAlert: "+t)},i=function(e,t){e=String(e).replace(/[^0-9a-f]/gi,""),e.length<6&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),t=t||0;var n,o,a="#";for(o=0;3>o;o++)n=parseInt(e.substr(2*o,2),16),n=Math.round(Math.min(Math.max(0,n+n*t),255)).toString(16),a+=("00"+n).substr(n.length);return a};o.extend=a,o.hexToRgb=r,o.isIE8=s,o.logStr=l,o.colorLuminance=i},{}]},{},[1]),"function"==typeof define&&define.amd?define(function(){return sweetAlert}):"undefined"!=typeof module&&module.exports&&(module.exports=sweetAlert)}(window,document);!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(a){this.player_.play();var b=this.player_.getChild("controlBar"),c=b&&b.getChild("playToggle");if(!c)return void this.player_.focus();this.setTimeout(function(){c.focus()},1)},b}(i["default"]);l.prototype.controlText_="Play Video",k["default"].registerComponent("BigPlayButton",l),c["default"]=l},{2:2,5:5}],2:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(3),i=d(h),j=a(5),k=d(j),l=a(86),m=d(l),n=a(88),o=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.createEl=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"button",b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};b=(0,n.assign)({className:this.buildCSSClass()},b),"button"!==a&&(m["default"].warn("Creating a Button with an HTML element of "+a+" is deprecated; use ClickableComponent instead."),b=(0,n.assign)({tabIndex:0},b),c=(0,n.assign)({role:"button"},c)),c=(0,n.assign)({type:"button","aria-live":"polite"},c);var d=k["default"].prototype.createEl.call(this,a,b,c);return this.createControlTextEl(d),d},b.prototype.addChild=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=this.constructor.name;return m["default"].warn("Adding an actionable (user controllable) child to a Button ("+c+") is not supported; use a ClickableComponent instead."),k["default"].prototype.addChild.call(this,a,b)},b.prototype.enable=function(){a.prototype.enable.call(this),this.el_.removeAttribute("disabled")},b.prototype.disable=function(){a.prototype.disable.call(this),this.el_.setAttribute("disabled","disabled")},b.prototype.handleKeyPress=function(b){32!==b.which&&13!==b.which&&a.prototype.handleKeyPress.call(this,b)},b}(i["default"]);k["default"].registerComponent("Button",o),c["default"]=o},{3:3,5:5,86:86,88:88}],3:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(82),n=d(m),o=a(83),p=d(o),q=a(86),r=e(q),s=a(94),t=e(s),u=a(88),v=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.emitTapEvents(),e.enable(),e}return h(b,a),b.prototype.createEl=function(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div",c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};c=(0,u.assign)({className:this.buildCSSClass(),tabIndex:0},c),"button"===b&&r["default"].error("Creating a ClickableComponent with an HTML element of "+b+" is not supported; use a Button instead."),d=(0,u.assign)({role:"button","aria-live":"polite"},d),this.tabIndex_=c.tabIndex;var e=a.prototype.createEl.call(this,b,c,d);return this.createControlTextEl(e),e},b.prototype.createControlTextEl=function(a){return this.controlTextEl_=l.createEl("span",{className:"vjs-control-text"}),a&&a.appendChild(this.controlTextEl_),this.controlText(this.controlText_,a),this.controlTextEl_},b.prototype.controlText=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.el();if(!a)return this.controlText_||"Need Text";var c=this.localize(a);return this.controlText_=a,this.controlTextEl_.innerHTML=c,this.nonIconControl||b.setAttribute("title",c),this},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.enable=function(){return this.removeClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","false"),"undefined"!=typeof this.tabIndex_&&this.el_.setAttribute("tabIndex",this.tabIndex_),this.on("tap",this.handleClick),this.on("click",this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur),this},b.prototype.disable=function(){return this.addClass("vjs-disabled"),this.el_.setAttribute("aria-disabled","true"),"undefined"!=typeof this.tabIndex_&&this.el_.removeAttribute("tabIndex"),this.off("tap",this.handleClick),this.off("click",this.handleClick),this.off("focus",this.handleFocus),this.off("blur",this.handleBlur),this},b.prototype.handleClick=function(a){},b.prototype.handleFocus=function(a){n.on(t["default"],"keydown",p.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(b){32===b.which||13===b.which?(b.preventDefault(),this.handleClick(b)):a.prototype.handleKeyPress&&a.prototype.handleKeyPress.call(this,b)},b.prototype.handleBlur=function(a){n.off(t["default"],"keydown",p.bind(this,this.handleKeyPress))},b}(j["default"]);j["default"].registerComponent("ClickableComponent",v),c["default"]=v},{5:5,81:81,82:82,83:83,86:86,88:88,94:94}],4:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.controlText(d&&d.controlText||g.localize("Close")),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-close-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.trigger({type:"close",bubbles:!1})},b}(i["default"]);k["default"].registerComponent("CloseButton",l),c["default"]=l},{2:2,5:5}],5:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a(95),h=e(g),i=a(81),j=d(i),k=a(83),l=d(k),m=a(85),n=d(m),o=a(82),p=d(o),q=a(86),r=e(q),s=a(91),t=e(s),u=a(87),v=e(u),w=function(){function a(b,c,d){if(f(this,a),!b&&this.play?this.player_=b=this:this.player_=b,this.options_=(0,v["default"])({},this.options_),c=this.options_=(0,v["default"])(this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var e=b&&b.id&&b.id()||"no_player";this.id_=e+"_component_"+n.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),j.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return r["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=(0,v["default"])(this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b,c){return j.createEl(a,b,c)},a.prototype.localize=function(a){var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){if(a)return a=(0,t["default"])(a),this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.children_.length,e=void 0,f=void 0;if("string"==typeof b){f=(0,t["default"])(b),c||(c={}),c===!0&&(r["default"].warn("Initializing a child component with `true` is deprecated.Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var g=c.componentClass||f;c.name=f;var h=a.getComponent(g);if(!h)throw new Error("Component "+g+" does not exist");if("function"!=typeof h)return null;e=new h(this.player_||this,c)}else e=b;if(this.children_.splice(d,0,e),"function"==typeof e.id&&(this.childIndex_[e.id()]=e),f=f||e.name&&(0,t["default"])(e.name()),f&&(this.childNameIndex_[f]=e),"function"==typeof e.el&&e.el()){var i=this.contentEl().children,j=i[d]||null;this.contentEl().insertBefore(e.el(),j)}return e},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var b=this,c=this.options_.children;if(c){var d=this.options_,e=function(a){var c=a.name,e=a.opts;if(void 0!==d[c]&&(e=d[c]),e!==!1){e===!0&&(e={}),e.playerOptions=b.options_.playerOptions;var f=b.addChild(c,e);f&&(b[c]=f)}},f=void 0,g=a.getComponent("Tech");f=Array.isArray(c)?c:Object.keys(c),f.concat(Object.keys(this.options_).filter(function(a){return!f.some(function(b){return"string"==typeof b?a===b:a===b.name})})).map(function(a){var d=void 0,e=void 0;return"string"==typeof a?(d=a,e=c[d]||b.options_[d]||{}):(d=a.name,e=a),{name:d,opts:e}}).filter(function(b){var c=a.getComponent(b.opts.componentClass||(0,t["default"])(b.name));return c&&!g.isTech(c)}).forEach(e)}},a.prototype.buildCSSClass=function(){return""},a.prototype.on=function(a,b,c){var d=this;if("string"==typeof a||Array.isArray(a))p.on(this.el_,a,l.bind(this,b));else{var e=a,f=b,g=l.bind(this,c),h=function(){return d.off(e,f,g)};h.guid=g.guid,this.on("dispose",h);var i=function(){return d.off("dispose",h)};i.guid=g.guid,a.nodeName?(p.on(e,f,g),p.on(e,"dispose",i)):"function"==typeof a.on&&(e.on(f,g),e.on("dispose",i))}return this},a.prototype.off=function(a,b,c){if(!a||"string"==typeof a||Array.isArray(a))p.off(this.el_,a,b);else{var d=a,e=b,f=l.bind(this,c);this.off("dispose",f),a.nodeName?(p.off(d,e,f),p.off(d,"dispose",f)):(d.off(e,f),d.off("dispose",f))}return this},a.prototype.one=function(a,b,c){var d=this,e=arguments;if("string"==typeof a||Array.isArray(a))p.one(this.el_,a,l.bind(this,b));else{var f=a,g=b,h=l.bind(this,c),i=function j(){d.off(f,g,j),h.apply(null,e)};i.guid=h.guid,this.on(f,g,i)}return this},a.prototype.trigger=function(a,b){return p.trigger(this.el_,a,b),this},a.prototype.ready=function(a){var b=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return a&&(this.isReady_?b?a.call(this):this.setTimeout(a,1):(this.readyQueue_=this.readyQueue_||[],this.readyQueue_.push(a))),this},a.prototype.triggerReady=function(){this.isReady_=!0,this.setTimeout(function(){var a=this.readyQueue_;this.readyQueue_=[],a&&a.length>0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},a.prototype.$=function(a,b){return j.$(a,b||this.contentEl())},a.prototype.$$=function(a,b){return j.$$(a,b||this.contentEl())},a.prototype.hasClass=function(a){return j.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return j.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return j.removeElClass(this.el_,a),this},a.prototype.toggleClass=function(a,b){return j.toggleElClass(this.el_,a,b),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"),this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.getAttribute=function(a){return j.getAttribute(this.el_,a)},a.prototype.setAttribute=function(a,b){return j.setAttribute(this.el_,a,b),this},a.prototype.removeAttribute=function(a){return j.removeAttribute(this.el_,a),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(void 0!==b)return null!==b&&b===b||(b=0),(""+b).indexOf("%")!==-1||(""+b).indexOf("px")!==-1?this.el_.style[a]=b:this.el_.style[a]="auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return e!==-1?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+(0,t["default"])(a)],10)},a.prototype.currentDimension=function(a){var b=0;if("width"!==a&&"height"!==a)throw new Error("currentDimension only accepts width or height value");if("function"==typeof h["default"].getComputedStyle){var c=h["default"].getComputedStyle(this.el_);b=c.getPropertyValue(a)||c[a]}if(b=parseFloat(b),0===b){var d="offset"+(0,t["default"])(a);b=this.el_[d]}return b},a.prototype.currentDimensions=function(){return{width:this.currentDimension("width"),height:this.currentDimension("height")}},a.prototype.currentWidth=function(){return this.currentDimension("width")},a.prototype.currentHeight=function(){return this.currentDimension("height")},a.prototype.focus=function(){this.el_.focus()},a.prototype.blur=function(){this.el_.blur()},a.prototype.emitTapEvents=function(){var a=0,b=null,c=void 0;this.on("touchstart",function(d){1===d.touches.length&&(b={pageX:d.touches[0].pageX,pageY:d.touches[0].pageY},a=(new Date).getTime(),c=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)c=!1;else if(b){var d=a.touches[0].pageX-b.pageX,e=a.touches[0].pageY-b.pageY,f=Math.sqrt(d*d+e*e);f>10&&(c=!1)}});var d=function(){c=!1};this.on("touchleave",d),this.on("touchcancel",d),this.on("touchend",function(d){if(b=null,c===!0){(new Date).getTime()-a<200&&(d.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=l.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(c){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=l.bind(this,a);var c=h["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){h["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=l.bind(this,a);var c=h["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){h["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){if(b){if(b=(0,t["default"])(b),a.components_||(a.components_={}),"Player"===b&&a.components_[b]){var d=a.components_[b];if(d.players&&Object.keys(d.players).length>0&&Object.keys(d.players).map(function(a){return d.players[a]}).every(Boolean))throw new Error("Can not register Player component after player has been created")}return a.components_[b]=c,c}},a.getComponent=function(b){if(b)return b=(0,t["default"])(b),a.components_&&a.components_[b]?a.components_[b]:h["default"]&&h["default"].videojs&&h["default"].videojs[b]?(r["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),h["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},r["default"].warn("Component.extend({}) has been deprecated,  use videojs.extend(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();w.registerComponent("Component",w),c["default"]=w},{81:81,82:82,83:83,85:85,86:86,87:87,91:91,95:95}],6:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(36),i=d(h),j=a(5),k=d(j),l=a(7),m=d(l),n=function(a){function b(c){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e(this,b),d.tracks=c.audioTracks&&c.audioTracks();var g=f(this,a.call(this,c,d));return g.el_.setAttribute("aria-label","Audio Menu"),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-audio-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.hideThreshold_=1;var b=this.player_.audioTracks&&this.player_.audioTracks();if(!b)return a;for(var c=0;c<b.length;c++){var d=b[c];a.push(new m["default"](this.player_,{track:d,selectable:!0}))}return a},b}(i["default"]);n.prototype.controlText_="Audio Track",k["default"].registerComponent("AudioTrackButton",n),c["default"]=n},{36:36,5:5,7:7}],7:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(48),j=e(i),k=a(5),l=e(k),m=a(83),n=d(m),o=function(a){function b(c,d){f(this,b);var e=d.track,h=c.audioTracks();d.label=e.label||e.language||"Unknown",d.selected=e.enabled;var i=g(this,a.call(this,c,d));if(i.track=e,h){var j=n.bind(i,i.handleTracksChange);h.addEventListener("change",j),i.on("dispose",function(){h.removeEventListener("change",j)})}return i}return h(b,a),b.prototype.handleClick=function(b){var c=this.player_.audioTracks();if(a.prototype.handleClick.call(this,b),c)for(var d=0;d<c.length;d++){var e=c[d];e.enabled=e===this.track}},b.prototype.handleTracksChange=function(a){this.selected(this.track.enabled)},b}(j["default"]);l["default"].registerComponent("AudioTrackMenuItem",o),c["default"]=o},{48:48,5:5,83:83}],8:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h);a(12),a(32),a(33),a(35),a(34),a(10),a(18),a(9),a(38),a(40),a(11),a(25),a(27),a(29),a(24),a(6),a(13),a(21);var j=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar",dir:"ltr"},{role:"group"})},b}(i["default"]);j.prototype.options_={children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","descriptionsButton","subtitlesButton","captionsButton","audioTrackButton","fullscreenToggle"]},i["default"].registerComponent("ControlBar",j),c["default"]=j},{10:10,11:11,12:12,13:13,18:18,21:21,24:24,25:25,27:27,29:29,32:32,33:33,34:34,35:35,38:38,40:40,5:5,6:6,9:9}],9:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"fullscreenchange",g.handleFullscreenChange),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleFullscreenChange=function(a){this.player_.isFullscreen()?this.controlText("Non-Fullscreen"):this.controlText("Fullscreen")},b.prototype.handleClick=function(a){this.player_.isFullscreen()?this.player_.exitFullscreen():this.player_.requestFullscreen()},b}(i["default"]);l.prototype.controlText_="Fullscreen",k["default"].registerComponent("FullscreenToggle",l),c["default"]=l},{2:2,5:5}],10:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.updateShowing(),e.on(e.player(),"durationchange",e.updateShowing),e}return h(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=l.createEl("div",{className:"vjs-live-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Stream Type")+"</span>"+this.localize("LIVE")},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateShowing=function(a){this.player().duration()===1/0?this.show():this.hide()},b}(j["default"]);j["default"].registerComponent("LiveDisplay",m),c["default"]=m},{5:5,81:81}],11:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(2),j=e(i),k=a(5),l=e(k),m=a(81),n=d(m),o=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.on(c,"volumechange",e.update),c.tech_&&c.tech_.featuresVolumeControl===!1&&e.addClass("vjs-hidden"),e.on(c,"loadstart",function(){this.update(),c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}),e}return h(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.player_.muted(!this.player_.muted())},b.prototype.update=function(a){var b=this.player_.volume(),c=3;0===b||this.player_.muted()?c=0:b<.33?c=1:b<.67&&(c=2);var d=this.player_.muted()?"Unmute":"Mute";this.controlText()!==d&&this.controlText(d);for(var e=0;e<4;e++)n.removeElClass(this.el_,"vjs-vol-"+e);n.addElClass(this.el_,"vjs-vol-"+c)},b}(j["default"]);o.prototype.controlText_="Mute",l["default"].registerComponent("MuteToggle",o),c["default"]=o},{2:2,5:5,81:81}],12:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(2),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"play",g.handlePlay),g.on(c,"pause",g.handlePause),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(a){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(a){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(i["default"]);l.prototype.controlText_="Play",k["default"].registerComponent("PlayToggle",l),c["default"]=l},{2:2,5:5}],13:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(47),j=e(i),k=a(49),l=e(k),m=a(14),n=e(m),o=a(5),p=e(o),q=a(81),r=d(q),s=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.updateVisibility(),e.updateLabel(),e.on(c,"loadstart",e.updateVisibility),e.on(c,"ratechange",e.updateLabel),e}return h(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=r.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new l["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new n["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(a){for(var b=this.player().playbackRate(),c=this.playbackRates(),d=c[0],e=0;e<c.length;e++)if(c[e]>b){d=c[e];break}this.player().playbackRate(d)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech_&&this.player().tech_.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(a){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(a){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(j["default"]);s.prototype.controlText_="Playback Rate",p["default"].registerComponent("PlaybackRateMenuButton",s),c["default"]=s},{14:14,47:47,49:49,5:5,81:81}],14:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(48),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b);var g=d.rate,h=parseFloat(g,10);d.label=g,d.selected=1===h,d.selectable=!0;var i=f(this,a.call(this,c,d));return i.label=g,i.rate=h,i.on(c,"ratechange",i.update),i}return g(b,a),b.prototype.handleClick=function(b){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(a){this.selected(this.player().playbackRate()===this.rate)},b}(i["default"]);l.prototype.contentElType="button",k["default"].registerComponent("PlaybackRateMenuItem",l),c["default"]=l},{48:48,5:5}],15:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.partEls_=[],e.on(c,"progress",e.update),e}return h(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text"><span>'+this.localize("Loaded")+"</span>: 0%</span>"})},b.prototype.update=function(a){var b=this.player_.buffered(),c=this.player_.duration(),d=this.player_.bufferedEnd(),e=this.partEls_,f=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=f(d,c);for(var g=0;g<b.length;g++){var h=b.start(g),i=b.end(g),j=e[g];j||(j=this.el_.appendChild(l.createEl()),e[g]=j),j.style.left=f(h,d),j.style.width=f(i-h,d)}for(var k=e.length;k>b.length;k--)this.el_.removeChild(e[k-1]);e.length=b.length},b}(j["default"]);j["default"].registerComponent("LoadProgressBar",m),c["default"]=m},{5:5,81:81}],16:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(83),n=d(m),o=a(84),p=e(o),q=a(80),r=e(q),s=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return d.playerOptions&&d.playerOptions.controlBar&&d.playerOptions.controlBar.progressControl&&d.playerOptions.controlBar.progressControl.keepTooltipsInside&&(e.keepTooltipsInside=d.playerOptions.controlBar.progressControl.keepTooltipsInside),e.keepTooltipsInside&&(e.tooltip=l.createEl("div",{className:"vjs-time-tooltip"}),e.el().appendChild(e.tooltip),e.addClass("vjs-keep-tooltips-inside")),e.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",n.throttle(n.bind(e,e.handleMouseMove),25))}),e}return h(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-l.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=(0,p["default"])(a,this.player_.duration());if(this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c),this.keepTooltipsInside){var d=this.clampPosition_(b),e=b-d+1,f=parseFloat((0,r["default"])(this.tooltip,"width")),g=f/2;this.tooltip.innerHTML=c,this.tooltip.style.right="-"+(g-e)+"px"}},b.prototype.calculateDistance=function(a){return l.getPointerPosition(this.el().parentNode,a).x},b.prototype.clampPosition_=function(a){if(!this.keepTooltipsInside)return a;var b=parseFloat((0,r["default"])(this.player().el(),"width")),c=parseFloat((0,r["default"])(this.tooltip,"width")),d=c/2,e=a;return a<d?e=Math.ceil(d):a>b-d&&(e=Math.floor(b-d)),e},b}(j["default"]);j["default"].registerComponent("MouseTimeDisplay",s),c["default"]=s},{5:5,80:80,81:81,83:83,84:84}],17:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(83),l=d(k),m=a(84),n=e(m),o=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.updateDataAttr(),e.on(c,"timeupdate",e.updateDataAttr),c.ready(l.bind(e,e.updateDataAttr)),d.playerOptions&&d.playerOptions.controlBar&&d.playerOptions.controlBar.progressControl&&d.playerOptions.controlBar.progressControl.keepTooltipsInside&&(e.keepTooltipsInside=d.playerOptions.controlBar.progressControl.keepTooltipsInside),e.keepTooltipsInside&&e.addClass("vjs-keep-tooltips-inside"),e}return h(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress vjs-slider-bar",innerHTML:'<span class="vjs-control-text"><span>'+this.localize("Progress")+"</span>: 0%</span>"})},b.prototype.updateDataAttr=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",(0,n["default"])(b,this.player_.duration()))},b}(j["default"]);j["default"].registerComponent("PlayProgressBar",o),c["default"]=o},{5:5,83:83,84:84}],18:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h);a(19),a(16);var j=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(i["default"]);j.prototype.options_={children:["seekBar"]},i["default"].registerComponent("ProgressControl",j),c["default"]=j},{16:16,19:19,5:5}],19:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(57),j=e(i),k=a(5),l=e(k),m=a(83),n=d(m),o=a(84),p=e(o),q=a(80),r=e(q);a(15),a(17),a(20);var s=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.on(c,"timeupdate",e.updateProgress),e.on(c,"ended",e.updateProgress),c.ready(n.bind(e,e.updateProgress)),d.playerOptions&&d.playerOptions.controlBar&&d.playerOptions.controlBar.progressControl&&d.playerOptions.controlBar.progressControl.keepTooltipsInside&&(e.keepTooltipsInside=d.playerOptions.controlBar.progressControl.keepTooltipsInside),e.keepTooltipsInside&&(e.tooltipProgressBar=e.addChild("TooltipProgressBar")),e}return h(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"progress bar"})},b.prototype.updateProgress=function(a){if(this.updateAriaAttributes(this.el_),this.keepTooltipsInside){this.updateAriaAttributes(this.tooltipProgressBar.el_),this.tooltipProgressBar.el_.style.width=this.bar.el_.style.width;var b=parseFloat((0,r["default"])(this.player().el(),"width")),c=parseFloat((0,r["default"])(this.tooltipProgressBar.tooltip,"width")),d=this.tooltipProgressBar.el().style;d.maxWidth=Math.floor(b-c/2)+"px",d.minWidth=Math.ceil(c/2)+"px",d.right="-"+c/2+"px"}},b.prototype.updateAriaAttributes=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();a.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),a.setAttribute("aria-valuetext",(0,p["default"])(b,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause(),a.prototype.handleMouseDown.call(this,b)},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(j["default"]);s.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},s.prototype.playerEvent="timeupdate",l["default"].registerComponent("SeekBar",s),c["default"]=s},{15:15,17:17,20:20,5:5,57:57,80:80,83:83,84:84}],20:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(83),l=d(k),m=a(84),n=e(m),o=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.updateDataAttr(),e.on(c,"timeupdate",e.updateDataAttr),c.ready(l.bind(e,e.updateDataAttr)),e}return h(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-tooltip-progress-bar vjs-slider-bar",innerHTML:'<div class="vjs-time-tooltip"></div>\n        <span class="vjs-control-text"><span>'+this.localize("Progress")+"</span>: 0%</span>"});return this.tooltip=b.querySelector(".vjs-time-tooltip"),b},b.prototype.updateDataAttr=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),c=(0,n["default"])(b,this.player_.duration());this.el_.setAttribute("data-current-time",c),this.tooltip.innerHTML=c},b}(j["default"]);j["default"].registerComponent("TooltipProgressBar",o),c["default"]=o},{5:5,83:83,84:84}],21:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(22),i=d(h),j=a(5),k=d(j),l=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,{className:this.buildCSSClass()});return b.innerHTML="&nbsp;",b},b}(i["default"]);k["default"].registerComponent("CustomControlSpacer",l),c["default"]=l},{22:22,5:5}],22:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(i["default"]);i["default"].registerComponent("Spacer",j),c["default"]=j},{5:5}],23:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(31),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b),d.track={player:c,kind:d.kind,label:d.kind+" settings",selectable:!1,"default":!1,mode:"disabled"},d.selectable=!1;var g=f(this,a.call(this,c,d));return g.addClass("vjs-texttrack-settings"),g.controlText(", opens "+d.kind+" settings dialog"),g}return g(b,a),b.prototype.handleClick=function(a){this.player().getChild("textTrackSettings").show(),this.player().getChild("textTrackSettings").el_.focus()},b}(i["default"]);k["default"].registerComponent("CaptionSettingsMenuItem",l),c["default"]=l},{31:31,5:5}],24:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(30),i=d(h),j=a(5),k=d(j),l=a(23),m=d(l),n=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));return h.el_.setAttribute("aria-label","Captions Menu"),h}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var b=[];return this.player().tech_&&this.player().tech_.featuresNativeTextTracks||(b.push(new m["default"](this.player_,{kind:this.kind_})),this.hideThreshold_+=1),a.prototype.createItems.call(this,b)},b}(i["default"]);n.prototype.kind_="captions",n.prototype.controlText_="Captions",k["default"].registerComponent("CaptionsButton",n),c["default"]=n},{23:23,30:30,5:5}],25:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(30),i=d(h),j=a(5),k=d(j),l=a(26),m=d(l),n=a(91),o=d(n),p=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));return h.el_.setAttribute("aria-label","Chapters Menu"),h}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(b){this.track_&&(!b||"addtrack"!==b.type&&"removetrack"!==b.type)||this.setTrack(this.findChaptersTrack()),a.prototype.update.call(this)},b.prototype.setTrack=function(a){if(this.track_!==a){if(this.updateHandler_||(this.updateHandler_=this.update.bind(this)),this.track_){var b=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);b&&b.removeEventListener("load",this.updateHandler_),this.track_=null}if(this.track_=a,this.track_){this.track_.mode="hidden";var c=this.player_.remoteTextTrackEls().getTrackElementByTrack_(this.track_);c&&c.addEventListener("load",this.updateHandler_)}}},b.prototype.findChaptersTrack=function(){for(var a=this.player_.textTracks()||[],b=a.length-1;b>=0;b--){var c=a[b];if(c.kind===this.kind_)return c}},b.prototype.getMenuCaption=function(){return this.track_&&this.track_.label?this.track_.label:this.localize((0,o["default"])(this.kind_))},b.prototype.createMenu=function(){return this.options_.title=this.getMenuCaption(),a.prototype.createMenu.call(this)},b.prototype.createItems=function(){var a=[];if(!this.track_)return a;var b=this.track_.cues;if(!b)return a;for(var c=0,d=b.length;c<d;c++){var e=b[c],f=new m["default"](this.player_,{track:this.track_,cue:e});a.push(f)}return a},b}(i["default"]);p.prototype.kind_="chapters",p.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",p),c["default"]=p},{26:26,30:30,5:5,91:91}],26:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(48),j=e(i),k=a(5),l=e(k),m=a(83),n=d(m),o=function(a){function b(c,d){f(this,b);var e=d.track,h=d.cue,i=c.currentTime();d.selectable=!0,d.label=h.text,d.selected=h.startTime<=i&&i<h.endTime;var j=g(this,a.call(this,c,d));return j.track=e,j.cue=h,e.addEventListener("cuechange",n.bind(j,j.update)),j}return h(b,a),b.prototype.handleClick=function(b){a.prototype.handleClick.call(this),this.player_.currentTime(this.cue.startTime),this.update(this.cue.startTime)},b.prototype.update=function(a){var b=this.cue,c=this.player_.currentTime();this.selected(b.startTime<=c&&c<b.endTime)},b}(j["default"]);l["default"].registerComponent("ChaptersTrackMenuItem",o),c["default"]=o},{48:48,5:5,83:83}],27:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(30),j=e(i),k=a(5),l=e(k),m=a(83),n=d(m),o=function(a){function b(c,d,e){f(this,b);var h=g(this,a.call(this,c,d,e));h.el_.setAttribute("aria-label","Descriptions Menu");var i=c.textTracks();if(i){var j=n.bind(h,h.handleTracksChange);i.addEventListener("change",j),h.on("dispose",function(){i.removeEventListener("change",j)})}return h}return h(b,a),b.prototype.handleTracksChange=function(a){for(var b=this.player().textTracks(),c=!1,d=0,e=b.length;d<e;d++){var f=b[d];if(f.kind!==this.kind_&&"showing"===f.mode){c=!0;break}}c?this.disable():this.enable()},b.prototype.buildCSSClass=function(){return"vjs-descriptions-button "+a.prototype.buildCSSClass.call(this)},b}(j["default"]);o.prototype.kind_="descriptions",o.prototype.controlText_="Descriptions",l["default"].registerComponent("DescriptionsButton",o),c["default"]=o},{30:30,5:5,83:83}],28:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(31),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d){e(this,b),d.track={player:c,kind:d.kind,label:d.kind+" off","default":!1,mode:"disabled"},d.selectable=!0;var g=f(this,a.call(this,c,d));return g.selected(!0),g}return g(b,a),b.prototype.handleTracksChange=function(a){for(var b=this.player().textTracks(),c=!0,d=0,e=b.length;d<e;d++){var f=b[d];if(f.kind===this.track.kind&&"showing"===f.mode){c=!1;break}}this.selected(c)},b}(i["default"]);k["default"].registerComponent("OffTextTrackMenuItem",l),c["default"]=l},{31:31,5:5}],29:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(30),i=d(h),j=a(5),k=d(j),l=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));return h.el_.setAttribute("aria-label","Subtitles Menu"),h}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(i["default"]);l.prototype.kind_="subtitles",l.prototype.controlText_="Subtitles",k["default"].registerComponent("SubtitlesButton",l),c["default"]=l},{30:30,5:5}],30:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(36),i=d(h),j=a(5),k=d(j),l=a(31),m=d(l),n=a(28),o=d(n),p=function(a){function b(c){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e(this,b),d.tracks=c.textTracks(),f(this,a.call(this,c,d))}return g(b,a),b.prototype.createItems=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];a.push(new o["default"](this.player_,{kind:this.kind_})),this.hideThreshold_+=1;var b=this.player_.textTracks();if(!b)return a;for(var c=0;c<b.length;c++){var d=b[c];d.kind===this.kind_&&a.push(new m["default"](this.player_,{track:d,selectable:!0}))}return a},b}(i["default"]);k["default"].registerComponent("TextTrackButton",p),c["default"]=p},{28:28,31:31,36:36,5:5}],31:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},j=a(48),k=e(j),l=a(5),m=e(l),n=a(83),o=d(n),p=a(95),q=e(p),r=a(94),s=e(r),t=function(a){function b(c,d){f(this,b);var e=d.track,h=c.textTracks();d.label=e.label||e.language||"Unknown",d.selected=e["default"]||"showing"===e.mode;var j=g(this,a.call(this,c,d));if(j.track=e,h){var k=o.bind(j,j.handleTracksChange);c.on(["loadstart","texttrackchange"],k),h.addEventListener("change",k),j.on("dispose",function(){h.removeEventListener("change",k)})}if(h&&void 0===h.onchange){var l=void 0;j.on(["tap","click"],function(){if("object"!==i(q["default"].Event))try{l=new q["default"].Event("change")}catch(a){}l||(l=s["default"].createEvent("Event"),l.initEvent("change",!0,!0)),h.dispatchEvent(l)})}return j}return h(b,a),b.prototype.handleClick=function(b){var c=this.track.kind,d=this.player_.textTracks();if(a.prototype.handleClick.call(this,b),d)for(var e=0;e<d.length;e++){var f=d[e];f.kind===c&&(f===this.track?f.mode="showing":f.mode="disabled")}},b.prototype.handleTracksChange=function(a){this.selected("showing"===this.track.mode)},b}(k["default"]);m["default"].registerComponent("TextTrackMenuItem",t),c["default"]=t},{48:48,5:5,83:83,94:94,95:95}],32:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(84),n=e(m),o=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.on(c,"timeupdate",e.updateContent),e}return h(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-current-time vjs-time-control vjs-control"});return this.contentEl_=l.createEl("div",{className:"vjs-current-time-display",innerHTML:'<span class="vjs-control-text">Current Time </span>0:00'},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(a){var b=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),c=this.localize("Current Time"),d=(0,n["default"])(b,this.player_.duration());d!==this.formattedTime_&&(this.formattedTime_=d,this.contentEl_.innerHTML='<span class="vjs-control-text">'+c+"</span> "+d)},b}(j["default"]);j["default"].registerComponent("CurrentTimeDisplay",o),c["default"]=o},{5:5,81:81,84:84}],33:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(84),n=e(m),o=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.on(c,"durationchange",e.updateContent),e.on(c,"timeupdate",e.updateContent),e.on(c,"loadedmetadata",e.updateContent),e}return h(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=l.createEl("div",{className:"vjs-duration-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Duration Time")+"</span> 0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(a){var b=this.player_.duration();if(b&&this.duration_!==b){this.duration_=b;var c=this.localize("Duration Time"),d=(0,n["default"])(b);this.contentEl_.innerHTML='<span class="vjs-control-text">'+c+"</span> "+d}},b}(j["default"]);j["default"].registerComponent("DurationDisplay",o),c["default"]=o},{5:5,81:81,84:84}],34:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(84),n=e(m),o=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.on(c,"timeupdate",e.updateContent),e.on(c,"durationchange",e.updateContent),e}return h(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=l.createEl("div",{className:"vjs-remaining-time-display",innerHTML:'<span class="vjs-control-text">'+this.localize("Remaining Time")+"</span> -0:00"},{"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(a){if(this.player_.duration()){var b=this.localize("Remaining Time"),c=(0,n["default"])(this.player_.remainingTime());c!==this.formattedTime_&&(this.formattedTime_=c,this.contentEl_.innerHTML='<span class="vjs-control-text">'+b+"</span> -"+c)}},b}(j["default"]);j["default"].registerComponent("RemainingTimeDisplay",o),c["default"]=o},{5:5,81:81,84:84}],35:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"<div><span>/</span></div>"})},b}(i["default"]);i["default"].registerComponent("TimeDivider",j),c["default"]=j},{5:5}],36:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(47),j=e(i),k=a(5),l=e(k),m=a(83),n=d(m),o=function(a){function b(c,d){f(this,b);var e=d.tracks,h=g(this,a.call(this,c,d));if(h.items.length<=1&&h.hide(),!e)return g(h);var i=n.bind(h,h.update);return e.addEventListener("removetrack",i),e.addEventListener("addtrack",i),h.player_.on("dispose",function(){e.removeEventListener("removetrack",i),e.removeEventListener("addtrack",i)}),h}return h(b,a),b}(j["default"]);l["default"].registerComponent("TrackButton",o),c["default"]=o},{47:47,5:5,83:83}],37:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(57),j=e(i),k=a(5),l=e(k),m=a(83),n=d(m);a(39);var o=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.on(c,"volumechange",e.updateARIAAttributes),c.ready(n.bind(e,e.updateARIAAttributes)),e}return h(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar vjs-slider-bar"},{"aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.checkMuted(),this.player_.volume(this.calculateDistance(a))},b.prototype.checkMuted=function(){this.player_.muted()&&this.player_.muted(!1)},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.checkMuted(),this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.checkMuted(),this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(a){var b=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",b),this.el_.setAttribute("aria-valuetext",b+"%")},b}(j["default"]);o.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},o.prototype.playerEvent="volumechange",l["default"].registerComponent("VolumeBar",o),c["default"]=o},{39:39,5:5,57:57,83:83}],38:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h);a(37);var j=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return c.tech_&&c.tech_.featuresVolumeControl===!1&&g.addClass("vjs-hidden"),g.on(c,"loadstart",function(){c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}),g}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(i["default"]);j.prototype.options_={children:["volumeBar"]},i["default"].registerComponent("VolumeControl",j),c["default"]=j},{37:37,5:5}],39:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})},b}(i["default"]);i["default"].registerComponent("VolumeLevel",j),c["default"]=j},{5:5}],40:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(83),j=e(i),k=a(5),l=d(k),m=a(54),n=d(m),o=a(53),p=d(o),q=a(11),r=d(q),s=a(37),t=d(s),u=function(a){function b(c){function d(){c.tech_&&c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};f(this,b),void 0===e.inline&&(e.inline=!0),void 0===e.vertical&&(e.inline?e.vertical=!1:e.vertical=!0),e.volumeBar=e.volumeBar||{},e.volumeBar.vertical=!!e.vertical;var h=g(this,a.call(this,c,e));return h.on(c,"volumechange",h.volumeUpdate),h.on(c,"loadstart",h.volumeUpdate),d.call(h),h.on(c,"loadstart",d),h.on(h.volumeBar,["slideractive","focus"],function(){this.addClass("vjs-slider-active")}),h.on(h.volumeBar,["sliderinactive","blur"],function(){this.removeClass("vjs-slider-active")}),h.on(h.volumeBar,["focus"],function(){this.addClass("vjs-lock-showing")}),h.on(h.volumeBar,["blur"],function(){this.removeClass("vjs-lock-showing")}),h}return h(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createPopup=function(){var a=new n["default"](this.player_,{contentElType:"div"}),b=new t["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.menuContent=a,this.volumeBar=b,this.attachVolumeBarEvents(),a},b.prototype.handleClick=function(b){r["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b.prototype.attachVolumeBarEvents=function(){this.menuContent.on(["mousedown","touchdown"],j.bind(this,this.handleMouseDown))},b.prototype.handleMouseDown=function(a){this.on(["mousemove","touchmove"],j.bind(this.volumeBar,this.volumeBar.handleMouseMove)),this.on(this.el_.ownerDocument,["mouseup","touchend"],this.handleMouseUp)},b.prototype.handleMouseUp=function(a){this.off(["mousemove","touchmove"],j.bind(this.volumeBar,this.volumeBar.handleMouseMove))},b}(p["default"]);u.prototype.volumeUpdate=r["default"].prototype.update,u.prototype.controlText_="Mute",l["default"].registerComponent("VolumeMenuButton",u),c["default"]=u},{11:11,37:37,5:5,53:53,54:54,83:83}],41:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(50),k=d(j),l=a(87),m=d(l),n=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.on(c,"error",g.open),g}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-error-display "+a.prototype.buildCSSClass.call(this)},b.prototype.content=function(){var a=this.player().error();return a?this.localize(a.message):""},b}(k["default"]);n.prototype.options_=(0,m["default"])(k["default"].prototype.options_,{pauseOnOpen:!1,fillAlways:!0,temporary:!1,uncloseable:!0}),i["default"].registerComponent("ErrorDisplay",n),c["default"]=n},{5:5,50:50,87:87}],42:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var e=a(82),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=function(){},f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){var c=this.addEventListener;this.addEventListener=function(){},f.one(this,a,b),this.addEventListener=c},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g},{82:82}],43:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},f=a(86),g=d(f),h=a(88),i=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+(void 0===b?"undefined":e(b)));a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},j=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=function(){a.apply(this,arguments)},d={};(0,h.isObject)(b)?("function"==typeof b.init&&(g["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),i(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=j},{86:86,88:88}],44:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a(94),f=d(e),g={},h=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=h[0],j=void 0,k=0;k<h.length;k++)if(h[k][1]in f["default"]){j=h[k];break}if(j)for(var l=0;l<j.length;l++)g[i[l]]=j[l];c["default"]=g},{94:94}],45:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=function(a){function b(){return e(this,b),f(this,a.apply(this,arguments))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-loading-spinner",dir:"ltr"})},b}(i["default"]);i["default"].registerComponent("LoadingSpinner",j),c["default"]=j},{5:5}],46:[function(a,b,c){"use strict";function d(a){if(a instanceof d)return a;"number"==typeof a?this.code=a:"string"==typeof a?this.message=a:(0,e.isObject)(a)&&("number"==typeof a.code&&(this.code=a.code),(0,e.assign)(this,a)),this.message||(this.message=d.defaultMessages[this.code]||"")}c.__esModule=!0;var e=a(88);d.prototype.code=0,d.prototype.message="",d.prototype.status=null,d.errorTypes=["MEDIA_ERR_CUSTOM","MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_ERR_ENCRYPTED"],d.defaultMessages={1:"You aborted the media playback",2:"A network error caused the media download to fail part-way.",3:"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.",4:"The media could not be loaded, either because the server or network failed or because the format is not supported.",5:"The media is encrypted and we do not have the keys to decrypt it."};for(var f=0;f<d.errorTypes.length;f++)d[d.errorTypes[f]]=f,d.prototype[d.errorTypes[f]]=f;c["default"]=d},{88:88}],47:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(3),j=e(i),k=a(5),l=e(k),m=a(49),n=e(m),o=a(81),p=d(o),q=a(83),r=d(q),s=a(91),t=e(s),u=function(a){function b(c){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};f(this,b);var e=g(this,a.call(this,c,d));return e.update(),e.enabled_=!0,e.el_.setAttribute("aria-haspopup","true"),e.el_.setAttribute("role","menuitem"),e.on("keydown",e.handleSubmenuKeyPress),e}return h(b,a),b.prototype.update=function(){var a=this.createMenu();this.menu&&this.removeChild(this.menu),this.menu=a,this.addChild(a),this.buttonPressed_=!1,this.el_.setAttribute("aria-expanded","false"),this.items&&this.items.length<=this.hideThreshold_?this.hide():this.show()},b.prototype.createMenu=function(){var a=new n["default"](this.player_);if(this.hideThreshold_=0,this.options_.title){var b=p.createEl("li",{className:"vjs-menu-title",innerHTML:(0,t["default"])(this.options_.title),tabIndex:-1});this.hideThreshold_+=1,a.children_.unshift(b),p.insertElFirst(b,a.contentEl())}if(this.items=this.createItems(),this.items)for(var c=0;c<this.items.length;c++)a.addItem(this.items[c]);return a},b.prototype.createItems=function(){},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b.prototype.buildCSSClass=function(){var b="vjs-menu-button";return b+=this.options_.inline===!0?"-inline":"-popup","vjs-menu-button "+b+" "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(a){this.one(this.menu.contentEl(),"mouseleave",r.bind(this,function(a){this.unpressButton(),this.el_.blur()})),this.buttonPressed_?this.unpressButton():this.pressButton()},b.prototype.handleKeyPress=function(b){27===b.which||9===b.which?(this.buttonPressed_&&this.unpressButton(),9!==b.which&&b.preventDefault()):38===b.which||40===b.which?this.buttonPressed_||(this.pressButton(),b.preventDefault()):a.prototype.handleKeyPress.call(this,b)},b.prototype.handleSubmenuKeyPress=function(a){27!==a.which&&9!==a.which||(this.buttonPressed_&&this.unpressButton(),9!==a.which&&a.preventDefault())},b.prototype.pressButton=function(){this.enabled_&&(this.buttonPressed_=!0,this.menu.lockShowing(),this.el_.setAttribute("aria-expanded","true"),this.menu.focus())},b.prototype.unpressButton=function(){this.enabled_&&(this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-expanded","false"),this.el_.focus())},b.prototype.disable=function(){return this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-expanded","false"),this.enabled_=!1,a.prototype.disable.call(this)},b.prototype.enable=function(){return this.enabled_=!0,a.prototype.enable.call(this)},b}(j["default"]);l["default"].registerComponent("MenuButton",u),c["default"]=u},{3:3,49:49,5:5,81:81,83:83,91:91}],48:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(3),i=d(h),j=a(5),k=d(j),l=a(88),m=function(a){function b(c,d){e(this,b);var g=f(this,a.call(this,c,d));return g.selectable=d.selectable,g.selected(d.selected),g.selectable?g.el_.setAttribute("role","menuitemcheckbox"):g.el_.setAttribute("role","menuitem"),g}return g(b,a),b.prototype.createEl=function(b,c,d){return this.nonIconControl=!0,a.prototype.createEl.call(this,"li",(0,l.assign)({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label),tabIndex:-1},c),d)},b.prototype.handleClick=function(a){this.selected(!0)},b.prototype.selected=function(a){this.selectable&&(a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-checked","true"),this.controlText(", selected")):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-checked","false"),this.controlText(" ")))},b}(i["default"]);k["default"].registerComponent("MenuItem",m),c["default"]=m},{3:3,5:5,88:88}],49:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(83),n=d(m),o=a(82),p=d(o),q=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.focusedChild_=-1,e.on("keydown",e.handleKeyPress),e}return h(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",n.bind(this,function(a){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=l.createEl(b,{className:"vjs-menu-content"}),this.contentEl_.setAttribute("role","menu");var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.setAttribute("role","presentation"),c.appendChild(this.contentEl_),p.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepForward()):38!==a.which&&39!==a.which||(a.preventDefault(),this.stepBack())},b.prototype.stepForward=function(){var a=0;void 0!==this.focusedChild_&&(a=this.focusedChild_+1),this.focus(a)},b.prototype.stepBack=function(){var a=0;void 0!==this.focusedChild_&&(a=this.focusedChild_-1),this.focus(a)},b.prototype.focus=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,b=this.children().slice();b.length&&b[0].className&&/vjs-menu-title/.test(b[0].className)&&b.shift(),b.length>0&&(a<0?a=0:a>=b.length&&(a=b.length-1),this.focusedChild_=a,b[a].el_.focus())},b}(j["default"]);j["default"].registerComponent("Menu",q),c["default"]=q},{5:5,81:81,82:82,83:83}],50:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(81),j=e(i),k=a(83),l=e(k),m=a(5),n=d(m),o=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.opened_=e.hasBeenOpened_=e.hasBeenFilled_=!1,e.closeable(!e.options_.uncloseable),e.content(e.options_.content),e.contentEl_=j.createEl("div",{className:"vjs-modal-dialog-content"},{role:"document"}),e.descEl_=j.createEl("p",{className:"vjs-modal-dialog-description vjs-offscreen",id:e.el().getAttribute("aria-describedby")}),j.textContent(e.descEl_,e.description()),e.el_.appendChild(e.descEl_),e.el_.appendChild(e.contentEl_),e}return h(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass(),tabIndex:-1},{"aria-describedby":this.id()+"_description","aria-hidden":"true","aria-label":this.label(),role:"dialog"})},b.prototype.buildCSSClass=function(){return"vjs-modal-dialog vjs-hidden "+a.prototype.buildCSSClass.call(this)},b.prototype.handleKeyPress=function(a){27===a.which&&this.closeable()&&this.close()},b.prototype.label=function(){return this.options_.label||this.localize("Modal Window")},b.prototype.description=function(){var a=this.options_.description||this.localize("This is a modal window.");return this.closeable()&&(a+=" "+this.localize("This modal can be closed by pressing the Escape key or activating the close button.")),a},b.prototype.open=function(){if(!this.opened_){var a=this.player();this.trigger("beforemodalopen"),this.opened_=!0,(this.options_.fillAlways||!this.hasBeenOpened_&&!this.hasBeenFilled_)&&this.fill(),this.wasPlaying_=!a.paused(),this.options_.pauseOnOpen&&this.wasPlaying_&&a.pause(),this.closeable()&&this.on(this.el_.ownerDocument,"keydown",l.bind(this,this.handleKeyPress)),a.controls(!1),this.show(),this.el().setAttribute("aria-hidden","false"),this.trigger("modalopen"),this.hasBeenOpened_=!0}return this},b.prototype.opened=function(a){return"boolean"==typeof a&&this[a?"open":"close"](),this.opened_},b.prototype.close=function(){if(this.opened_){var a=this.player();this.trigger("beforemodalclose"),this.opened_=!1,this.wasPlaying_&&this.options_.pauseOnOpen&&a.play(),this.closeable()&&this.off(this.el_.ownerDocument,"keydown",l.bind(this,this.handleKeyPress)),a.controls(!0),this.hide(),this.el().setAttribute("aria-hidden","true"),this.trigger("modalclose"),this.options_.temporary&&this.dispose()}return this},b.prototype.closeable=function c(a){if("boolean"==typeof a){var c=this.closeable_=!!a,b=this.getChild("closeButton");if(c&&!b){var d=this.contentEl_;this.contentEl_=this.el_,b=this.addChild("closeButton",{controlText:"Close Modal Dialog"}),this.contentEl_=d,this.on(b,"close",this.close)}!c&&b&&(this.off(b,"close",this.close),this.removeChild(b),b.dispose())}return this.closeable_},b.prototype.fill=function(){return this.fillWith(this.content())},b.prototype.fillWith=function(a){var b=this.contentEl(),c=b.parentNode,d=b.nextSibling;return this.trigger("beforemodalfill"),this.hasBeenFilled_=!0,c.removeChild(b),this.empty(),j.insertContent(b,a),this.trigger("modalfill"),d?c.insertBefore(b,d):c.appendChild(b),this},b.prototype.empty=function(){return this.trigger("beforemodalempty"),j.emptyEl(this.contentEl()),this.trigger("modalempty"),this},b.prototype.content=function(a){return void 0!==a&&(this.content_=a),this.content_},b}(n["default"]);o.prototype.options_={pauseOnOpen:!0,temporary:!0},n["default"].registerComponent("ModalDialog",o),c["default"]=o},{5:5,81:81,83:83}],51:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(94),l=e(k),m=a(95),n=e(m),o=a(82),p=d(o),q=a(81),r=d(q),s=a(83),t=d(s),u=a(85),v=d(u),w=a(78),x=d(w),y=a(86),z=e(y),A=a(91),B=e(A),C=a(90),D=a(79),E=a(89),F=d(E),G=a(44),H=e(G),I=a(46),J=e(I),K=a(97),L=e(K),M=a(88),N=a(87),O=e(N),P=a(69),Q=e(P),R=a(50),S=e(R),T=a(62),U=e(T),V=a(63),W=e(V),X=a(76),Y=e(X);a(61),a(59),a(55),a(68),a(45),a(1),a(4),a(8),a(41),a(71),a(60);var Z=["progress","abort","suspend","emptied","stalled","loadedmetadata","loadeddata","timeupdate","ratechange","volumechange","texttrackchange"],$=function(a){function b(c,d,e){if(f(this,b),c.id=c.id||"vjs_video_"+v.newGUID(),d=(0,M.assign)(b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,!d.language)if("function"==typeof c.closest){var h=c.closest("[lang]");h&&(d.language=h.getAttribute("lang"))}else for(var i=c;i&&1===i.nodeType;){if(r.getElAttributes(i).hasOwnProperty("lang")){d.language=i.getAttribute("lang");break}i=i.parentNode}var j=g(this,a.call(this,null,d,e));if(!j.options_||!j.options_.techOrder||!j.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");if(j.tag=c,j.tagAttributes=c&&r.getElAttributes(c),j.language(j.options_.language),d.languages){var k={};Object.getOwnPropertyNames(d.languages).forEach(function(a){k[a.toLowerCase()]=d.languages[a]}),j.languages_=k}else j.languages_=b.prototype.options_.languages;j.cache_={},j.poster_=d.poster||"",j.controls_=!!d.controls,c.controls=!1,j.scrubbing_=!1,j.el_=j.createEl();var l=(0,O["default"])(j.options_);if(d.plugins){var m=d.plugins;Object.getOwnPropertyNames(m).forEach(function(a){"function"==typeof this[a]?this[a](m[a]):z["default"].error("Unable to find plugin:",a)},j)}return j.options_.playerOptions=l,j.initChildren(),j.isAudio("audio"===c.nodeName.toLowerCase()),j.controls()?j.addClass("vjs-controls-enabled"):j.addClass("vjs-controls-disabled"),j.el_.setAttribute("role","region"),j.isAudio()?j.el_.setAttribute("aria-label","audio player"):j.el_.setAttribute("aria-label","video player"),j.isAudio()&&j.addClass("vjs-audio"),j.flexNotSupported_()&&j.addClass("vjs-no-flex"),x.IS_IOS||j.addClass("vjs-workinghover"),b.players[j.id_]=j,j.userActive(!0),j.reportUserActivity(),j.listenForUserActivity_(),j.on("fullscreenchange",j.handleFullscreenChange_),j.on("stageclick",j.handleStageClick_),j}return h(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech_&&this.tech_.dispose(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.tag,c=void 0,d=this.playerElIngest_=b.parentNode&&b.parentNode.hasAttribute&&b.parentNode.hasAttribute("data-vjs-player");c=this.el_=d?b.parentNode:a.prototype.createEl.call(this,"div"),b.setAttribute("tabindex","-1"),b.removeAttribute("width"),b.removeAttribute("height");var e=r.getElAttributes(b);if(Object.getOwnPropertyNames(e).forEach(function(a){"class"===a?c.className+=" "+e[a]:c.setAttribute(a,e[a])}),b.playerId=b.id,b.id+="_html5_api",b.className="vjs-tech",b.player=c.player=this,this.addClass("vjs-paused"),n["default"].VIDEOJS_NO_DYNAMIC_STYLE!==!0){this.styleEl_=F.createStyleElement("vjs-styles-dimensions");var f=r.$(".vjs-styles-defaults"),g=r.$("head");g.insertBefore(this.styleEl_,f?f.nextSibling:g.firstChild)}this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio);for(var h=b.getElementsByTagName("a"),i=0;i<h.length;i++){var j=h.item(i);r.addElClass(j,"vjs-hidden"),j.setAttribute("hidden","hidden")}return b.initNetworkState_=b.networkState,b.parentNode&&!d&&b.parentNode.insertBefore(c,b),r.insertElFirst(b,c),this.children_.unshift(b),this.el_=c,c},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a,b){var c=a+"_";if(void 0===b)return this[c]||0;if(""===b)this[c]=void 0;else{var d=parseFloat(b);if(isNaN(d))return z["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){if(void 0===a)return!!this.fluid_;this.fluid_=!!a,a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid"),this.updateStyleEl_()},b.prototype.aspectRatio=function(a){if(void 0===a)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){if(n["default"].VIDEOJS_NO_DYNAMIC_STYLE===!0){var a="number"==typeof this.width_?this.width_:this.options_.width,b="number"==typeof this.height_?this.height_:this.options_.height,c=this.tech_&&this.tech_.el();return void(c&&(a>=0&&(c.width=a),b>=0&&(c.height=b)))}var d=void 0,e=void 0,f=void 0,g=void 0;f=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()>0?this.videoWidth()+":"+this.videoHeight():"16:9";var h=f.split(":"),i=h[1]/h[0];d=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/i:this.videoWidth()||300,e=void 0!==this.height_?this.height_:d*i,g=/^[^a-zA-Z]/.test(this.id())?"dimensions-"+this.id():this.id()+"-dimensions",this.addClass(g),F.setTextContent(this.styleEl_,"\n      ."+g+" {\n        width: "+d+"px;\n        height: "+e+"px;\n      }\n\n      ."+g+".vjs-fluid {\n        padding-top: "+100*i+"%;\n      }\n    ")},b.prototype.loadTech_=function(a,b){var c=this;this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(U["default"].getTech("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var d=(0,M.assign)({source:b,nativeControlsForTouch:this.options_.nativeControlsForTouch,playerId:this.id(),techId:this.id()+"_"+a+"_api",videoTracks:this.videoTracks_,textTracks:this.textTracks_,audioTracks:this.audioTracks_,autoplay:this.options_.autoplay,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),playerElIngest:this.playerElIngest_||!1,"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(d.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(d.startTime=this.cache_.currentTime),this.cache_.sources=null,this.cache_.source=b,this.cache_.src=b.src);var e=U["default"].getTech(a);e||(e=j["default"].getComponent(a)),this.tech_=new e(d),this.tech_.ready(t.bind(this,this.handleTechReady_),!0),Q["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech_),Z.forEach(function(a){c.on(c.tech_,a,c["handleTech"+(0,B["default"])(a)+"_"])}),this.on(this.tech_,"loadstart",this.handleTechLoadStart_),this.on(this.tech_,"waiting",this.handleTechWaiting_),this.on(this.tech_,"canplay",this.handleTechCanPlay_),this.on(this.tech_,"canplaythrough",this.handleTechCanPlayThrough_),this.on(this.tech_,"playing",this.handleTechPlaying_),this.on(this.tech_,"ended",this.handleTechEnded_),this.on(this.tech_,"seeking",this.handleTechSeeking_),this.on(this.tech_,"seeked",this.handleTechSeeked_),this.on(this.tech_,"play",this.handleTechPlay_),this.on(this.tech_,"firstplay",this.handleTechFirstPlay_),this.on(this.tech_,"pause",this.handleTechPause_),this.on(this.tech_,"durationchange",this.handleTechDurationChange_),this.on(this.tech_,"fullscreenchange",this.handleTechFullscreenChange_),this.on(this.tech_,"error",this.handleTechError_),this.on(this.tech_,"loadedmetadata",this.updateStyleEl_),this.on(this.tech_,"posterchange",this.handleTechPosterChange_),this.on(this.tech_,"textdata",this.handleTechTextData_),this.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),this.tech_.el().parentNode===this.el()||"Html5"===a&&this.tag||r.insertElFirst(this.tech_.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null)},b.prototype.unloadTech_=function(){this.videoTracks_=this.videoTracks(),this.textTracks_=this.textTracks(),this.audioTracks_=this.audioTracks(),this.textTracksJson_=Q["default"].textTracksToJson(this.tech_),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.prototype.tech=function(a){if(a&&a.IWillNotUseThisInPlugins)return this.tech_;var b="\n      Please make sure that you are not using this inside of a plugin.\n      To disable this alert and error, please pass in an object with\n      `IWillNotUseThisInPlugins` to the `tech` method. See\n      https://github.com/videojs/video.js/issues/2617 for more info.\n    ";throw n["default"].alert(b),new Error(b)},b.prototype.addTechControlsListeners_=function(){this.removeTechControlsListeners_(),this.on(this.tech_,"mousedown",this.handleTechClick_),this.on(this.tech_,"touchstart",this.handleTechTouchStart_),this.on(this.tech_,"touchmove",this.handleTechTouchMove_),this.on(this.tech_,"touchend",this.handleTechTouchEnd_),this.on(this.tech_,"tap",this.handleTechTap_)},b.prototype.removeTechControlsListeners_=function(){this.off(this.tech_,"tap",this.handleTechTap_),this.off(this.tech_,"touchstart",this.handleTechTouchStart_),this.off(this.tech_,"touchmove",this.handleTechTouchMove_),this.off(this.tech_,"touchend",this.handleTechTouchEnd_),this.off(this.tech_,"mousedown",this.handleTechClick_)},b.prototype.handleTechReady_=function(){if(this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),(this.src()||this.currentSrc())&&this.tag&&this.options_.autoplay&&this.paused()){try{delete this.tag.poster}catch(a){(0,z["default"])("deleting tag.poster throws in some browsers",a)}this.play()}},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-seeking"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){return void 0!==a?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_},b.prototype.handleTechPlay_=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting_=function(){var a=this;this.addClass("vjs-waiting"),this.trigger("waiting"),this.one("timeupdate",function(){return a.removeClass("vjs-waiting")})},b.prototype.handleTechCanPlay_=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough_=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying_=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking_=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked_=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay_=function(){this.options_.starttime&&(z["default"].warn("Passing the `starttime` option to the player will be deprecated in 6.0"),this.currentTime(this.options_.starttime)),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause_=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechEnded_=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange_=function(){this.duration(this.techGet_("duration"))},b.prototype.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart_=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove_=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd_=function(a){a.preventDefault()},b.prototype.handleFullscreenChange_=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick_=function(){this.reportUserActivity()},b.prototype.handleTechFullscreenChange_=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError_=function(){var a=this.tech_.error();this.error(a)},b.prototype.handleTechTextData_=function(){var a=null;arguments.length>1&&(a=arguments[1]),this.trigger("textdata",a)},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall_=function(a,b){if(this.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_&&this.tech_[a](b)}catch(c){throw(0,z["default"])(c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw void 0===this.tech_[a]?(0,z["default"])("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?((0,z["default"])("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):(0,z["default"])(b),b}},b.prototype.play=function(){return this.src()||this.currentSrc()?this.techCall_("play"):this.tech_.one("loadstart",function(){this.play()}),this},b.prototype.pause=function(){return this.techCall_("pause"),this},b.prototype.paused=function(){return this.techGet_("paused")!==!1},b.prototype.scrubbing=function(a){return void 0!==a?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return void 0!==a?(this.techCall_("setCurrentTime",a),this):(this.cache_.currentTime=this.techGet_("currentTime")||0,this.cache_.currentTime)},b.prototype.duration=function(a){return void 0===a?this.cache_.duration||0:(a=parseFloat(a)||0,a<0&&(a=1/0),a!==this.cache_.duration&&(this.cache_.duration=a,a===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"),this.trigger("durationchange")),this)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function c(){var c=this.techGet_("buffered");return c&&c.length||(c=(0,C.createTimeRange)(0,0)),c},b.prototype.bufferedPercent=function(){return(0,D.bufferedPercent)(this.buffered(),this.duration())},b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return void 0!==a?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall_("setVolume",b),this):(b=parseFloat(this.techGet_("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){return void 0!==a?(this.techCall_("setMuted",a),this):this.techGet_("muted")||!1},b.prototype.supportsFullScreen=function(){return this.techGet_("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return void 0!==a?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=H["default"];return this.isFullscreen(!0),a.requestFullscreen?(p.on(l["default"],a.fullscreenchange,t.bind(this,function b(c){this.isFullscreen(l["default"][a.fullscreenElement]),this.isFullscreen()===!1&&p.off(l["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=H["default"];return this.isFullscreen(!1),a.requestFullscreen?l["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?this.techCall_("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=l["default"].documentElement.style.overflow,p.on(l["default"],"keydown",t.bind(this,this.fullWindowOnEscKey)),l["default"].documentElement.style.overflow="hidden",r.addElClass(l["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,p.off(l["default"],"keydown",this.fullWindowOnEscKey),l["default"].documentElement.style.overflow=this.docOrigOverflow,r.removeElClass(l["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.canPlayType=function(a){for(var b=void 0,c=0,d=this.options_.techOrder;c<d.length;c++){var e=(0,B["default"])(d[c]),f=U["default"].getTech(e);if(f||(f=j["default"].getComponent(e)),f){if(f.isSupported()&&(b=f.canPlayType(a)))return b}else z["default"].error('The "'+e+'" tech is undefined. Skipped browser support check for that tech.')}return""},b.prototype.selectSource=function(a){var b=this,c=this.options_.techOrder.map(B["default"]).map(function(a){return[a,U["default"].getTech(a)||j["default"].getComponent(a)]}).filter(function(a){var b=a[0],c=a[1];return c?c.isSupported():(z["default"].error('The "'+b+'" tech is undefined. Skipped browser support check for that tech.'),!1)}),d=function(a,b,c){var d=void 0;return a.some(function(a){return b.some(function(b){if(d=c(a,b))return!0})}),d},e=void 0,f=function(a){return function(b,c){return a(c,b)}},g=function(a,c){var d=a[0];if(a[1].canPlaySource(c,b.options_[d.toLowerCase()]))return{source:c,tech:d}};return e=this.options_.sourceOrder?d(a,c,f(g)):d(c,a,g),e||!1},b.prototype.src=function(a){if(void 0===a)return this.techGet_("src");var b=U["default"].getTech(this.techName_);return b||(b=j["default"].getComponent(this.techName_)),Array.isArray(a)?this.sourceList_(a):"string"==typeof a?this.src({src:a}):a instanceof Object&&(a.type&&!b.canPlaySource(a,this.options_[this.techName_.toLowerCase()])?this.sourceList_([a]):(this.cache_.sources=null,this.cache_.source=a,this.cache_.src=a.src,this.currentType_=a.type||"",this.ready(function(){b.prototype.hasOwnProperty("setSource")?this.techCall_("setSource",a):this.techCall_("src",a.src),"auto"===this.options_.preload&&this.load(),this.options_.autoplay&&this.play()},!0))),this},b.prototype.sourceList_=function(a){var b=this.selectSource(a);b?(b.tech===this.techName_?this.src(b.source):this.loadTech_(b.tech,b.source),this.cache_.sources=a):(this.setTimeout(function(){this.error({code:4,message:this.localize(this.options_.notSupportedMessage)})},0),this.triggerReady())},b.prototype.load=function(){return this.techCall_("load"),this},b.prototype.reset=function(){return this.loadTech_((0,B["default"])(this.options_.techOrder[0]),null),this.techCall_("reset"),this},b.prototype.currentSources=function(){var a=this.currentSource(),b=[];return 0!==Object.keys(a).length&&b.push(a),this.cache_.sources||b},b.prototype.currentSource=function(){var a={},b=this.currentSrc();return b&&(a.src=b),this.cache_.source||a},b.prototype.currentSrc=function(){return this.techGet_("currentSrc")||this.cache_.src||""},b.prototype.currentType=function(){return this.currentType_||""},b.prototype.preload=function(a){return void 0!==a?(this.techCall_("setPreload",a),this.options_.preload=a,this):this.techGet_("preload")},b.prototype.autoplay=function(a){return void 0!==a?(this.techCall_("setAutoplay",a),this.options_.autoplay=a,this):this.techGet_("autoplay",a)},b.prototype.loop=function(a){return void 0!==a?(this.techCall_("setLoop",a),this.options_.loop=a,this):this.techGet_("loop")},b.prototype.poster=function(a){return void 0===a?this.poster_:(a||(a=""),this.poster_=a,this.techCall_("setPoster",a),this.trigger("posterchange"),this)},b.prototype.handleTechPosterChange_=function(){!this.poster_&&this.tech_&&this.tech_.poster&&(this.poster_=this.tech_.poster()||"",this.trigger("posterchange"))},b.prototype.controls=function(a){return void 0!==a?(a=!!a,this.controls_!==a&&(this.controls_=a,this.usingNativeControls()&&this.techCall_("setControls",a),a?(this.removeClass("vjs-controls-disabled"),this.addClass("vjs-controls-enabled"),this.trigger("controlsenabled"),this.usingNativeControls()||this.addTechControlsListeners_()):(this.removeClass("vjs-controls-enabled"),this.addClass("vjs-controls-disabled"),this.trigger("controlsdisabled"),this.usingNativeControls()||this.removeTechControlsListeners_())),this):!!this.controls_},b.prototype.usingNativeControls=function(a){return void 0!==a?(a=!!a,this.usingNativeControls_!==a&&(this.usingNativeControls_=a,a?(this.addClass("vjs-using-native-controls"),this.trigger("usingnativecontrols")):(this.removeClass("vjs-using-native-controls"),this.trigger("usingcustomcontrols"))),this):!!this.usingNativeControls_},b.prototype.error=function(a){return void 0===a?this.error_||null:null===a?(this.error_=a,this.removeClass("vjs-error"),this.errorDisplay&&this.errorDisplay.close(),this):(this.error_=new J["default"](a),this.addClass("vjs-error"),z["default"].error("(CODE:"+this.error_.code+" "+J["default"].errorTypes[this.error_.code]+")",this.error_.message,this.error_),this.trigger("error"),this)},b.prototype.reportUserActivity=function(a){this.userActivity_=!0},b.prototype.userActive=function(a){return void 0!==a?(a=!!a,a!==this.userActive_&&(this.userActive_=a,a?(this.userActivity_=!0,this.removeClass("vjs-user-inactive"),this.addClass("vjs-user-active"),this.trigger("useractive")):(this.userActivity_=!1,this.tech_&&this.tech_.one("mousemove",function(a){a.stopPropagation(),a.preventDefault()}),this.removeClass("vjs-user-active"),this.addClass("vjs-user-inactive"),this.trigger("userinactive"))),this):this.userActive_},b.prototype.listenForUserActivity_=function(){var a=void 0,b=void 0,c=void 0,d=t.bind(this,this.reportUserActivity),e=function(a){a.screenX===b&&a.screenY===c||(b=a.screenX,c=a.screenY,d())},f=function(){d(),this.clearInterval(a),a=this.setInterval(d,250)},g=function(b){d(),this.clearInterval(a)};this.on("mousedown",f),this.on("mousemove",e),this.on("mouseup",g),this.on("keydown",d),this.on("keyup",d);var h=void 0;this.setInterval(function(){if(this.userActivity_){this.userActivity_=!1,this.userActive(!0),this.clearTimeout(h);var a=this.options_.inactivityTimeout;a>0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)},b.prototype.playbackRate=function(a){return void 0!==a?(this.techCall_("setPlaybackRate",a),this):this.tech_&&this.tech_.featuresPlaybackRate?this.techGet_("playbackRate"):1},b.prototype.isAudio=function(a){return void 0!==a?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.videoTracks=function(){return this.tech_?this.tech_.videoTracks():(this.videoTracks_=this.videoTracks_||new Y["default"],this.videoTracks_)},b.prototype.audioTracks=function(){return this.tech_?this.tech_.audioTracks():(this.audioTracks_=this.audioTracks_||new W["default"],this.audioTracks_)},b.prototype.textTracks=function(){if(this.tech_)return this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){if(this.tech_)return this.tech_.remoteTextTracks()},b.prototype.remoteTextTrackEls=function(){if(this.tech_)return this.tech_.remoteTextTrackEls()},b.prototype.addTextTrack=function(a,b,c){if(this.tech_)return this.tech_.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a,b){if(this.tech_)return this.tech_.addRemoteTextTrack(a,b)},b.prototype.removeRemoteTextTrack=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=a.track,c=void 0===b?arguments[0]:b;if(this.tech_)return this.tech_.removeRemoteTextTrack(c)},b.prototype.videoWidth=function(){return this.tech_&&this.tech_.videoWidth&&this.tech_.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech_&&this.tech_.videoHeight&&this.tech_.videoHeight()||0},b.prototype.language=function(a){return void 0===a?this.language_:(this.language_=String(a).toLowerCase(),this)},b.prototype.languages=function(){return(0,O["default"])(b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=(0,O["default"])(this.options_),b=a.tracks;a.tracks=[];for(var c=0;c<b.length;c++){var d=b[c];d=(0,O["default"])(d),d.player=void 0,a.tracks[c]=d}return a},b.prototype.createModal=function(a,b){var c=this;b=b||{},b.content=a||"";var d=new S["default"](this,b);return this.addChild(d),d.on("dispose",function(){c.removeChild(d)}),d.open()},b.getTagSettings=function(a){var b={sources:[],tracks:[]},c=r.getElAttributes(a),d=c["data-setup"];if(r.hasElClass(a,"vjs-fluid")&&(c.fluid=!0),null!==d){var e=(0,L["default"])(d||"{}"),f=e[0],g=e[1];f&&z["default"].error(f),(0,M.assign)(c,g)}if((0,M.assign)(b,c),a.hasChildNodes())for(var h=a.childNodes,i=0,j=h.length;i<j;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(r.getElAttributes(k)):"track"===l&&b.tracks.push(r.getElAttributes(k))}return b},b.prototype.flexNotSupported_=function(){var a=l["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},b}(j["default"]);$.players={};var _=n["default"].navigator;$.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:["mediaLoader","posterImage","textTrackDisplay","loadingSpinner","bigPlayButton","controlBar","errorDisplay","textTrackSettings"],language:_&&(_.languages&&_.languages[0]||_.userLanguage||_.language)||"en",languages:{},notSupportedMessage:"No compatible source was found for this media."},["ended","seeking","seekable","networkState","readyState"].forEach(function(a){$.prototype[a]=function(){return this.techGet_(a)}}),Z.forEach(function(a){$.prototype["handleTech"+(0,B["default"])(a)+"_"]=function(){return this.trigger(a)}}),j["default"].registerComponent("Player",$),c["default"]=$},{1:1,4:4,41:41,44:44,45:45,46:46,5:5,50:50,55:55,59:59,60:60,61:61,62:62,63:63,68:68,69:69,71:71,76:76,78:78,79:79,8:8,81:81,82:82,83:83,85:85,86:86,87:87,88:88,89:89,90:90,91:91,94:94,95:95,97:97}],52:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a(51),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g},{51:51}],53:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(3),i=d(h),j=a(5),k=d(j),l=function(a){function b(c){var d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e(this,b);var g=f(this,a.call(this,c,d));return g.update(),g}return g(b,a),b.prototype.update=function(){var a=this.createPopup();this.popup&&this.removeChild(this.popup),this.popup=a,this.addChild(a),this.items&&0===this.items.length?this.hide():this.items&&this.items.length>1&&this.show()},b.prototype.createPopup=function(){},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b.prototype.buildCSSClass=function(){var b="vjs-menu-button";return b+=this.options_.inline===!0?"-inline":"-popup","vjs-menu-button "+b+" "+a.prototype.buildCSSClass.call(this)},b}(i["default"]);k["default"].registerComponent("PopupButton",l),c["default"]=l},{3:3,5:5}],54:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(83),n=d(m),o=a(82),p=d(o),q=function(a){function b(){return f(this,b),g(this,a.apply(this,arguments))}return h(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",n.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=l.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),p.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(j["default"]);j["default"].registerComponent("Popup",q),c["default"]=q},{5:5,81:81,82:82,83:83}],55:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(3),j=e(i),k=a(5),l=e(k),m=a(83),n=d(m),o=a(81),p=d(o),q=a(78),r=d(q),s=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.update(),c.on("posterchange",n.bind(e,e.update)),e}return h(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=p.createEl("div",{className:"vjs-poster",tabIndex:-1});return r.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=p.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(a){var b=this.player().poster();this.setSrc(b),b?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(a){this.player_.controls()&&(this.player_.paused()?this.player_.play():this.player_.pause())},b}(j["default"]);l["default"].registerComponent("PosterImage",s),c["default"]=s},{3:3,5:5,78:78,81:81,83:83}],56:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){b&&(p=b),n["default"].setTimeout(q,a)}c.__esModule=!0,c.hasLoaded=c.autoSetupTimeout=c.autoSetup=void 0;var g=a(81),h=e(g),i=a(82),j=e(i),k=a(94),l=d(k),m=a(95),n=d(m),o=!1,p=void 0,q=function(){if(h.isReal()){var a=l["default"].getElementsByTagName("video"),b=l["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;d<e;d++)c.push(a[d]);if(b&&b.length>0)for(var g=0,i=b.length;g<i;g++)c.push(b[g]);if(c&&c.length>0)for(var j=0,k=c.length;j<k;j++){var m=c[j];if(!m||!m.getAttribute){f(1);break}if(void 0===m.player){var n=m.getAttribute("data-setup");null!==n&&p(m)}}else o||f(1)}};h.isReal()&&"complete"===l["default"].readyState?o=!0:j.one(n["default"],"load",function(){o=!0});var r=function(){return o};c.autoSetup=q,c.autoSetupTimeout=f,c.hasLoaded=r},{81:81,82:82,94:94,95:95}],57:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(5),j=e(i),k=a(81),l=d(k),m=a(88),n=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.bar=e.getChild(e.options_.barName),e.vertical(!!e.options_.vertical),e.on("mousedown",e.handleMouseDown),e.on("touchstart",e.handleMouseDown),e.on("focus",e.handleFocus),e.on("blur",e.handleBlur),e.on("click",e.handleClick),e.on(c,"controlsvisible",e.update),e.on(c,e.playerEvent,e.update),e}return h(b,a),b.prototype.createEl=function(b){var c=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return c.className=c.className+" vjs-slider",c=(0,m.assign)({tabIndex:0},c),d=(0,m.assign)({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},d),a.prototype.createEl.call(this,b,c,d)},b.prototype.handleMouseDown=function(a){var b=this.bar.el_.ownerDocument;a.preventDefault(),l.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(b,"mousemove",this.handleMouseMove),this.on(b,"mouseup",this.handleMouseUp),this.on(b,"touchmove",this.handleMouseMove),this.on(b,"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(a){},b.prototype.handleMouseUp=function(){var a=this.bar.el_.ownerDocument;l.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(a,"mousemove",this.handleMouseMove),this.off(a,"mouseup",this.handleMouseUp),this.off(a,"touchmove",this.handleMouseMove),this.off(a,"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||a<0||a===1/0)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=l.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(this.bar.el_.ownerDocument,"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):38!==a.which&&39!==a.which||(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(this.bar.el_.ownerDocument,"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return void 0===a?this.vertical_||!1:(this.vertical_=!!a,this.vertical_?this.addClass("vjs-slider-vertical"):this.addClass("vjs-slider-horizontal"),this)},b}(j["default"]);j["default"].registerComponent("Slider",n),c["default"]=n},{5:5,81:81,88:88}],58:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.search(/&(?!\w+=)/),d=void 0;return c!==-1?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(c=d=a.length)),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canPlayType=function(b){return a.isStreamingType(b)?"maybe":""},a.rtmpSourceHandler.canHandleSource=function(b,c){var d=a.rtmpSourceHandler.canPlayType(b.type);return d?d:a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c,d){var e=a.streamToParts(b.src);c.setRtmpConnection(e.connection),c.setRtmpStream(e.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d},{}],59:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function i(a){A["set"+(a.charAt(0).toUpperCase()+a.slice(1))]=function(b){return this.el_.vjs_setProperty(a,b)}}function j(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var k=a(62),l=e(k),m=a(81),n=d(m),o=a(92),p=d(o),q=a(90),r=a(58),s=e(r),t=a(5),u=e(t),v=a(95),w=e(v),x=a(88),y=w["default"].navigator,z=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return c.source&&e.ready(function(){this.setSource(c.source)},!0),c.startTime&&e.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),w["default"].videojs=w["default"].videojs||{},w["default"].videojs.Flash=w["default"].videojs.Flash||{},w["default"].videojs.Flash.onReady=b.onReady,w["default"].videojs.Flash.onEvent=b.onEvent,w["default"].videojs.Flash.onError=b.onError,e.on("seeked",function(){this.lastSeekTarget_=void 0}),e}return h(b,a),b.prototype.createEl=function(){var a=this.options_;if(!a.swf){a.swf="//vjs.zencdn.net/swf/5.3.0/video-js.swf"}var c=a.techId,d=(0,x.assign)({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=(0,x.assign)({wmode:"opaque",bgcolor:"#000000"},a.params),f=(0,x.assign)({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.ended()&&this.setCurrentTime(0),this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){return void 0===a?this.currentSrc():this.setSrc(a)},b.prototype.setSrc=function(a){var b=this;a=p.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()&&this.setTimeout(function(){return b.play()},0)},b.prototype.seeking=function(){return void 0!==this.lastSeekTarget_},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b<c.end(c.length-1)?b:c.end(c.length-1),this.lastSeekTarget_=b,this.trigger("seeking"),this.el_.vjs_setProperty("currentTime",b),a.prototype.setCurrentTime.call(this))},b.prototype.currentTime=function(){return this.seeking()?this.lastSeekTarget_||0:this.el_.vjs_getProperty("currentTime")},b.prototype.currentSrc=function(){return this.currentSource_?this.currentSource_.src:this.el_.vjs_getProperty("currentSrc")},b.prototype.duration=function c(){if(0===this.readyState())return NaN;var c=this.el_.vjs_getProperty("duration");return c>=0?c:1/0},b.prototype.load=function(){this.el_.vjs_load()},b.prototype.poster=function(){this.el_.vjs_getProperty("poster")},b.prototype.setPoster=function(){},b.prototype.seekable=function(){var a=this.duration();return 0===a?(0,q.createTimeRange)():(0,q.createTimeRange)(0,a)},b.prototype.buffered=function(){var a=this.el_.vjs_getProperty("buffered");return 0===a.length?(0,q.createTimeRange)():(0,q.createTimeRange)(a[0][0],a[0][1])},b.prototype.supportsFullScreen=function(){return!1},b.prototype.enterFullScreen=function(){return!1},b}(l["default"]),A=z.prototype,B="rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted".split(","),C="networkState,readyState,initialTime,startOffsetTime,paused,ended,videoWidth,videoHeight".split(","),D=0;D<B.length;D++)j(B[D]),i(B[D]);for(var E=0;E<C.length;E++)j(C[E]);z.isSupported=function(){return z.version()[0]>=10},l["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canPlayType=function(a){return a in z.formats?"maybe":""},z.nativeSourceHandler.canHandleSource=function(a,b){function c(a){var b=p.getFileExtension(a);return b?"video/"+b:""}var d=void 0;return d=a.type?a.type.replace(/;.*/,"").toLowerCase():c(a.src),z.nativeSourceHandler.canPlayType(d)},z.nativeSourceHandler.handleSource=function(a,b,c){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=n.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=n.getEl(a).tech,d=Array.prototype.slice.call(arguments,2);c.setTimeout(function(){c.trigger(b,d)},1)},z.onError=function(a,b){var c=n.getEl(a).tech;if("srcnotfound"===b)return c.error(4);c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new w["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d);return n.createEl("div",{innerHTML:e}).childNodes[0]},z.getEmbedCode=function(a,b,c,d){var e="",f="",g="";return b&&Object.getOwnPropertyNames(b).forEach(function(a){e+=a+"="+b[a]+"&amp;"}),c=(0,x.assign)({movie:a,flashvars:e,allowScriptAccess:"always",allowNetworking:"all"},c),Object.getOwnPropertyNames(c).forEach(function(a){f+='<param name="'+a+'" value="'+c[a]+'" />'}),d=(0,x.assign)({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){g+=a+'="'+d[a]+'" '}),'<object type="application/x-shockwave-flash" '+g+">"+f+"</object>"},(0,s["default"])(z),u["default"].registerComponent("Flash",z),l["default"].registerTech("Flash",z),c["default"]=z},{5:5,58:58,62:62,81:81,88:88,90:90,92:92,95:95}],60:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){return a.raw=b,a}function g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function h(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function i(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var j=f(["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n            This may prevent text tracks from loading."],["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used.\n            This may prevent text tracks from loading."]),k=a(62),l=e(k),m=a(5),n=e(m),o=a(81),p=d(o),q=a(92),r=d(q),s=a(83),t=d(s),u=a(86),v=e(u),w=a(98),x=e(w),y=a(78),z=d(y),A=a(94),B=e(A),C=a(95),D=e(C),E=a(88),F=a(87),G=e(F),H=a(91),I=e(H),J=function(a){function b(c,d){g(this,b);var e=h(this,a.call(this,c,d)),f=c.source,i=!1;if(f&&(e.el_.currentSrc!==f.src||c.tag&&3===c.tag.initNetworkState_)?e.setSource(f):e.handleLateInit_(e.el_),e.el_.hasChildNodes()){for(var k=e.el_.childNodes,l=k.length,m=[];l--;){var n=k[l];"track"===n.nodeName.toLowerCase()&&(e.featuresNativeTextTracks?(e.remoteTextTrackEls().addTrackElement_(n),e.remoteTextTracks().addTrack_(n.track),i||e.el_.hasAttribute("crossorigin")||!r.isCrossOrigin(n.src)||(i=!0)):m.push(n))}for(var o=0;o<m.length;o++)e.el_.removeChild(m[o])}return["audio","video"].forEach(function(a){var b=e.el()[a+"Tracks"],c=e[a+"Tracks"](),d=(0,I["default"])(a);e["featuresNative"+d+"Tracks"]&&b&&b.addEventListener&&(e["handle"+d+"TrackChange_"]=function(a){c.trigger({type:"change",target:c,currentTarget:c,srcElement:c})},e["handle"+d+"TrackAdd_"]=function(a){return c.addTrack(a.track)},e["handle"+d+"TrackRemove_"]=function(a){return c.removeTrack(a.track)},b.addEventListener("change",e["handle"+d+"TrackChange_"]),b.addEventListener("addtrack",e["handle"+d+"TrackAdd_"]),b.addEventListener("removetrack",e["handle"+d+"TrackRemove_"]),e["removeOld"+d+"Tracks_"]=function(a){return e.removeOldTracks_(c,b)},e.on("loadstart",e["removeOld"+d+"Tracks_"]))}),e.featuresNativeTextTracks&&(i&&v["default"].warn((0,x["default"])(j)),e.handleTextTrackChange_=t.bind(e,e.handleTextTrackChange),e.handleTextTrackAdd_=t.bind(e,e.handleTextTrackAdd),e.handleTextTrackRemove_=t.bind(e,e.handleTextTrackRemove),e.proxyNativeTextTracks_()),(z.TOUCH_ENABLED||z.IS_IPHONE||z.IS_NATIVE_ANDROID)&&c.nativeControlsForTouch===!0&&e.setControls(!0),e.proxyWebkitFullscreen_(),e.triggerReady(),e}return i(b,a),b.prototype.dispose=function(){var c=this;["audio","video","text"].forEach(function(a){var b=(0,I["default"])(a),d=c.el_[a+"Tracks"];d&&d.removeEventListener&&(d.removeEventListener("change",c["handle"+b+"TrackChange_"]),d.removeEventListener("addtrack",c["handle"+b+"TrackAdd_"]),d.removeEventListener("removetrack",c["handle"+b+"TrackRemove_"])),d&&c.off("loadstart",c["removeOld"+b+"Tracks_"])}),b.disposeMediaElement(this.el_),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=this.options_.tag;if(!a||!this.options_.playerElIngest&&!this.movingMediaElementInDOM){if(a){var c=a.cloneNode(!0);a.parentNode&&a.parentNode.insertBefore(c,a),b.disposeMediaElement(a),a=c}else{a=B["default"].createElement("video");var d=this.options_.tag&&p.getElAttributes(this.options_.tag),e=(0,G["default"])({},d);z.TOUCH_ENABLED&&this.options_.nativeControlsForTouch===!0||delete e.controls,p.setElAttributes(a,(0,E.assign)(e,{id:this.options_.techId,"class":"vjs-tech"}))}a.playerId=this.options_.playerId}for(var f=["autoplay","preload","loop","muted"],g=f.length-1;g>=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),p.setElAttributes(a,i)}return a},b.prototype.handleLateInit_=function(a){if(0!==a.networkState&&3!==a.networkState){if(0===a.readyState){var b=!1,c=function(){b=!0};this.on("loadstart",c);var d=function(){b||this.trigger("loadstart")};return this.on("loadedmetadata",d),void this.ready(function(){this.off("loadstart",c),this.off("loadedmetadata",d),b||this.trigger("loadstart")})}var e=["loadstart"];e.push("loadedmetadata"),a.readyState>=2&&e.push("loadeddata"),a.readyState>=3&&e.push("canplay"),a.readyState>=4&&e.push("canplaythrough"),this.ready(function(){e.forEach(function(a){this.trigger(a)},this)})}},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;if(a){for(var b=0;b<a.length;b++)this.textTracks().addTrack_(a[b]);a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_)),this.on("loadstart",this.removeOldTextTracks_)}},b.prototype.handleTextTrackChange=function(a){var b=this.textTracks();this.textTracks().trigger({type:"change",target:b,currentTarget:b,srcElement:b})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.removeOldTracks_=function(a,b){var c=[];if(b){for(var d=0;d<a.length;d++){for(var e=a[d],f=!1,g=0;g<b.length;g++)if(b[g]===e){f=!0;break}f||c.push(e)}for(var h=0;h<c.length;h++){var i=c[h];a.removeTrack_(i)}}},b.prototype.removeOldTextTracks_=function(a){var b=this.textTracks(),c=this.el().textTracks;this.removeOldTracks_(b,c)},b.prototype.play=function(){var a=this.el_.play();void 0!==a&&"function"==typeof a.then&&a.then(null,function(a){})},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){(0,v["default"])(b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){var a=this;if(this.el_.duration===1/0&&z.IS_ANDROID&&z.IS_CHROME&&0===this.el_.currentTime){var b=function c(){a.el_.currentTime>0&&(a.el_.duration===1/0&&a.trigger("durationchange"),a.off("timeupdate",c))};return this.on("timeupdate",b),NaN}return this.el_.duration||NaN},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.proxyWebkitFullscreen_=function(){var a=this;if("webkitDisplayingFullscreen"in this.el_){var b=function(){this.trigger("fullscreenchange",{isFullscreen:!1})},c=function(){this.one("webkitendfullscreen",b),this.trigger("fullscreenchange",{isFullscreen:!0})};this.on("webkitbeginfullscreen",c),this.on("dispose",function(){a.off("webkitbeginfullscreen",c),a.off("webkitendfullscreen",b)})}},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=D["default"].navigator&&D["default"].navigator.userAgent||"";if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){if(void 0===a)return this.el_.src;this.setSrc(a)},b.prototype.reset=function(){b.resetMediaElement(this.el_)},b.prototype.currentSrc=function(){return this.currentSource_?this.currentSource_.src:this.el_.currentSrc},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.createRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.createRemoteTextTrack.call(this,b);var c=B["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),c},b.prototype.addRemoteTextTrack=function(b,c){var d=a.prototype.addRemoteTextTrack.call(this,b,c);return this.featuresNativeTextTracks&&this.el().appendChild(d),d},b.prototype.removeRemoteTextTrack=function(b){if(a.prototype.removeRemoteTextTrack.call(this,b),this.featuresNativeTextTracks)for(var c=this.$$("track"),d=c.length;d--;)b!==c[d]&&b!==c[d].track||this.el().removeChild(c[d])},b}(l["default"]);if(p.isReal()){J.TEST_VID=B["default"].createElement("video");var K=B["default"].createElement("track");K.kind="captions",K.srclang="en",K.label="English",J.TEST_VID.appendChild(K)}J.isSupported=function(){try{J.TEST_VID.volume=.5}catch(a){return!1}return!(!J.TEST_VID||!J.TEST_VID.canPlayType)},J.canControlVolume=function(){try{var a=J.TEST_VID.volume;return J.TEST_VID.volume=a/2+.1,a!==J.TEST_VID.volume}catch(b){return!1}},J.canControlPlaybackRate=function(){if(z.IS_ANDROID&&z.IS_CHROME)return!1;try{var a=J.TEST_VID.playbackRate;return J.TEST_VID.playbackRate=a/2+.1,a!==J.TEST_VID.playbackRate}catch(b){return!1}},J.supportsNativeTextTracks=function(){return z.IS_ANY_SAFARI},J.supportsNativeVideoTracks=function(){return!(!J.TEST_VID||!J.TEST_VID.videoTracks)},J.supportsNativeAudioTracks=function(){return!(!J.TEST_VID||!J.TEST_VID.audioTracks)},J.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],J.prototype.featuresVolumeControl=J.canControlVolume(),J.prototype.featuresPlaybackRate=J.canControlPlaybackRate(),J.prototype.movingMediaElementInDOM=!z.IS_IOS,J.prototype.featuresFullscreenResize=!0,J.prototype.featuresProgressEvents=!0,J.prototype.featuresTimeupdateEvents=!0,J.prototype.featuresNativeTextTracks=J.supportsNativeTextTracks(),J.prototype.featuresNativeVideoTracks=J.supportsNativeVideoTracks(),J.prototype.featuresNativeAudioTracks=J.supportsNativeAudioTracks();var L=J.TEST_VID&&J.TEST_VID.constructor.prototype.canPlayType,M=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,N=/^video\/mp4/i;J.patchCanPlayType=function(){z.ANDROID_VERSION>=4&&!z.IS_FIREFOX?J.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&M.test(a)?"maybe":L.call(this,a)}:z.IS_OLD_ANDROID&&(J.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&N.test(a)?"maybe":L.call(this,a)})},J.unpatchCanPlayType=function(){var a=J.TEST_VID.constructor.prototype.canPlayType;return J.TEST_VID.constructor.prototype.canPlayType=L,a},J.patchCanPlayType(),J.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&function(){try{a.load()}catch(b){}}()}},J.resetMediaElement=function(a){if(a){for(var b=a.querySelectorAll("source"),c=b.length;c--;)a.removeChild(b[c]);a.removeAttribute("src"),"function"==typeof a.load&&function(){try{a.load()}catch(b){}}()}},["paused","currentTime","buffered","volume","muted","poster","preload","autoplay","controls","loop","error","seeking","seekable","ended","defaultMuted","playbackRate","played","networkState","readyState","videoWidth","videoHeight"].forEach(function(a){J.prototype[a]=function(){return this.el_[a]}}),["volume","muted","src","poster","preload","autoplay","loop","playbackRate"].forEach(function(a){J.prototype["set"+(0,I["default"])(a)]=function(b){this.el_[a]=b}}),["pause","load"].forEach(function(a){J.prototype[a]=function(){return this.el_[a]()}}),l["default"].withSourceHandlers(J),J.nativeSourceHandler={},J.nativeSourceHandler.canPlayType=function(a){try{return J.TEST_VID.canPlayType(a)}catch(b){return""}},J.nativeSourceHandler.canHandleSource=function(a,b){if(a.type)return J.nativeSourceHandler.canPlayType(a.type);if(a.src){var c=r.getFileExtension(a.src);return J.nativeSourceHandler.canPlayType("video/"+c)}return""},J.nativeSourceHandler.handleSource=function(a,b,c){b.setSrc(a.src)},J.nativeSourceHandler.dispose=function(){},J.registerSourceHandler(J.nativeSourceHandler),n["default"].registerComponent("Html5",J),l["default"].registerTech("Html5",J),c["default"]=J},{5:5,62:62,78:78,81:81,83:83,86:86,87:87,88:88,91:91,92:92,94:94,95:95,98:98}],61:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a(5),i=d(h),j=a(62),k=d(j),l=a(91),m=d(l),n=function(a){function b(c,d,g){e(this,b);var h=f(this,a.call(this,c,d,g));if(d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var j=0,l=d.playerOptions.techOrder;j<l.length;j++){var n=(0,m["default"])(l[j]),o=k["default"].getTech(n);if(n||(o=i["default"].getComponent(n)),o&&o.isSupported()){c.loadTech_(n);break}}return h}return g(b,a),b}(i["default"]);i["default"].registerComponent("MediaLoader",n),c["default"]=n},{5:5,62:62,91:91}],62:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function i(a,b,c,d){var e=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},f=a.textTracks();e.kind=b,c&&(e.label=c),d&&(e.language=d),e.tech=a;var g=new s["default"](e);return f.addTrack_(g),g}c.__esModule=!0;var j=a(5),k=e(j),l=a(66),m=e(l),n=a(65),o=e(n),p=a(87),q=e(p),r=a(72),s=e(r),t=a(70),u=e(t),v=a(76),w=e(v),x=a(63),y=e(x),z=a(83),A=d(z),B=a(86),C=e(B),D=a(90),E=a(79),F=a(46),G=e(F),H=a(95),I=e(H),J=a(94),K=e(J),L=a(88),M=function(b){function c(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){};f(this,c),a.reportTouchActivity=!1;var e=g(this,b.call(this,null,a,d));return e.hasStarted_=!1,e.on("playing",function(){this.hasStarted_=!0}),e.on("loadstart",function(){this.hasStarted_=!1}),e.textTracks_=a.textTracks,e.videoTracks_=a.videoTracks,e.audioTracks_=a.audioTracks,e.featuresProgressEvents||e.manualProgressOn(),e.featuresTimeupdateEvents||e.manualTimeUpdatesOn(),["Text","Audio","Video"].forEach(function(b){a["native"+b+"Tracks"]===!1&&(e["featuresNative"+b+"Tracks"]=!1)}),a.nativeCaptions===!1&&(e.featuresNativeTextTracks=!1),e.featuresNativeTextTracks||e.emulateTextTracks(),e.autoRemoteTextTracks_=new u["default"],e.initTextTrackListeners(),e.initTrackListeners(),a.nativeControlsForTouch||e.emitTapEvents(),e.constructor&&(e.name_=e.constructor.name||"Unknown Tech"),e}return h(c,b),c.prototype.manualProgressOn=function(){this.on("durationchange",this.onDurationChange),this.manualProgress=!0,this.one("ready",this.trackProgress)},c.prototype.manualProgressOff=function(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange)},c.prototype.trackProgress=function(a){this.stopTrackingProgress(),this.progressInterval=this.setInterval(A.bind(this,function(){var a=this.bufferedPercent();this.bufferedPercent_!==a&&this.trigger("progress"),this.bufferedPercent_=a,1===a&&this.stopTrackingProgress()}),500)},c.prototype.onDurationChange=function(a){this.duration_=this.duration()},c.prototype.buffered=function(){return(0,D.createTimeRange)(0,0)},c.prototype.bufferedPercent=function(){return(0,E.bufferedPercent)(this.buffered(),this.duration_)},c.prototype.stopTrackingProgress=function(){this.clearInterval(this.progressInterval)},c.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime),this.on("pause",this.stopTrackingCurrentTime)},c.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime),this.off("pause",this.stopTrackingCurrentTime)},c.prototype.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)},c.prototype.stopTrackingCurrentTime=function(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},c.prototype.dispose=function(){this.clearTracks(["audio","video","text"]),this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),b.prototype.dispose.call(this)},c.prototype.clearTracks=function(a){var b=this;a=[].concat(a),a.forEach(function(a){for(var c=b[a+"Tracks"]()||[],d=c.length;d--;){var e=c[d];"text"===a&&b.removeRemoteTextTrack(e),c.removeTrack_(e)}})},c.prototype.cleanupAutoTextTracks=function(){for(var a=this.autoRemoteTextTracks_||[],b=a.length;b--;){var c=a[b];this.removeRemoteTextTrack(c)}},c.prototype.reset=function(){},c.prototype.error=function(a){return void 0!==a&&(this.error_=new G["default"](a),this.trigger("error")),this.error_},c.prototype.played=function(){return this.hasStarted_?(0,D.createTimeRange)(0,0):(0,D.createTimeRange)()},c.prototype.setCurrentTime=function(){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},c.prototype.initTextTrackListeners=function(){var a=A.bind(this,function(){this.trigger("texttrackchange")}),b=this.textTracks();b&&(b.addEventListener("removetrack",a),b.addEventListener("addtrack",a),this.on("dispose",A.bind(this,function(){b.removeEventListener("removetrack",a),b.removeEventListener("addtrack",a)})))},c.prototype.initTrackListeners=function(){var a=this;["video","audio"].forEach(function(b){var c=function(){a.trigger(b+"trackchange")},d=a[b+"Tracks"]();d.addEventListener("removetrack",c),d.addEventListener("addtrack",c),a.on("dispose",function(){d.removeEventListener("removetrack",c),d.removeEventListener("addtrack",c)})})},c.prototype.addWebVttScript_=function(){var b=this;if(!I["default"].WebVTT)if(K["default"].body.contains(this.el())){var c=a(105);if(!this.options_["vtt.js"]&&(0,L.isPlain)(c)&&Object.keys(c).length>0)return void this.trigger("vttjsloaded");var d=K["default"].createElement("script");d.src=this.options_["vtt.js"]||"https://vjs.zencdn.net/vttjs/0.12.3/vtt.min.js",d.onload=function(){b.trigger("vttjsloaded")},d.onerror=function(){b.trigger("vttjserror")},this.on("dispose",function(){d.onload=null,d.onerror=null}),I["default"].WebVTT=!0,this.el().parentNode.appendChild(d)}else this.ready(this.addWebVttScript_)},c.prototype.emulateTextTracks=function(){var a=this,b=this.textTracks();if(b){var c=this.remoteTextTracks(),d=function(a){return b.addTrack_(a.track)},e=function(a){return b.removeTrack_(a.track)};c.on("addtrack",d),c.on("removetrack",e),this.addWebVttScript_();var f=function(){return a.trigger("texttrackchange")},g=function(){f();for(var a=0;a<b.length;a++){var c=b[a];c.removeEventListener("cuechange",f),"showing"===c.mode&&c.addEventListener("cuechange",f)}};g(),b.addEventListener("change",g),b.addEventListener("addtrack",g),b.addEventListener("removetrack",g),this.on("dispose",function(){c.off("addtrack",d),c.off("removetrack",e),b.removeEventListener("change",g),b.removeEventListener("addtrack",g),b.removeEventListener("removetrack",g);for(var a=0;a<b.length;a++){b[a].removeEventListener("cuechange",f)}})}},c.prototype.videoTracks=function(){return this.videoTracks_=this.videoTracks_||new w["default"],this.videoTracks_},c.prototype.audioTracks=function(){return this.audioTracks_=this.audioTracks_||new y["default"],this.audioTracks_},c.prototype.textTracks=function(){return this.textTracks_=this.textTracks_||new u["default"],this.textTracks_},c.prototype.remoteTextTracks=function(){return this.remoteTextTracks_=this.remoteTextTracks_||new u["default"],this.remoteTextTracks_},c.prototype.remoteTextTrackEls=function(){return this.remoteTextTrackEls_=this.remoteTextTrackEls_||new o["default"],this.remoteTextTrackEls_},c.prototype.addTextTrack=function(a,b,c){if(!a)throw new Error("TextTrack kind is required but was not provided");return i(this,a,b,c)},c.prototype.createRemoteTextTrack=function(a){var b=(0,q["default"])(a,{tech:this});return new m["default"](b)},c.prototype.addRemoteTextTrack=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},b=arguments[1],c=this.createRemoteTextTrack(a);return b!==!0&&b!==!1&&(C["default"].warn('Calling addRemoteTextTrack without explicitly setting the "manualCleanup" parameter to `true` is deprecated and default to `false` in future version of video.js'),b=!0),this.remoteTextTrackEls().addTrackElement_(c),this.remoteTextTracks().addTrack_(c.track),b!==!0&&this.autoRemoteTextTracks_.addTrack_(c.track),c},c.prototype.removeRemoteTextTrack=function(a){var b=this.remoteTextTrackEls().getTrackElementByTrack_(a);this.remoteTextTrackEls().removeTrackElement_(b),this.remoteTextTracks().removeTrack_(a),this.autoRemoteTextTracks_.removeTrack_(a)},c.prototype.setPoster=function(){},c.prototype.canPlayType=function(){return""},c.isTech=function(a){return a.prototype instanceof c||a instanceof c||a===c},c.registerTech=function(a,b){if(c.techs_||(c.techs_={}),!c.isTech(b))throw new Error("Tech "+a+" must be a Tech");return c.techs_[a]=b,b},c.getTech=function(a){return c.techs_&&c.techs_[a]?c.techs_[a]:I["default"]&&I["default"].videojs&&I["default"].videojs[a]?(C["default"].warn("The "+a+" tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)"),I["default"].videojs[a]):void 0},c}(k["default"]);M.prototype.textTracks_,M.prototype.audioTracks_,M.prototype.videoTracks_,M.prototype.featuresVolumeControl=!0,M.prototype.featuresFullscreenResize=!1,M.prototype.featuresPlaybackRate=!1,M.prototype.featuresProgressEvents=!1,M.prototype.featuresTimeupdateEvents=!1,M.prototype.featuresNativeTextTracks=!1,M.withSourceHandlers=function(a){a.registerSourceHandler=function(b,c){var d=a.sourceHandlers;d||(d=a.sourceHandlers=[]),void 0===c&&(c=d.length),d.splice(c,0,b)},a.canPlayType=function(b){for(var c=a.sourceHandlers||[],d=void 0,e=0;e<c.length;e++)if(d=c[e].canPlayType(b))return d;return""},a.selectSourceHandler=function(b,c){for(var d=a.sourceHandlers||[],e=0;e<d.length;e++)if(d[e].canHandleSource(b,c))return d[e];return null},a.canPlaySource=function(b,c){var d=a.selectSourceHandler(b,c);return d?d.canHandleSource(b,c):""},["seekable","duration"].forEach(function(a){var b=this[a];"function"==typeof b&&(this[a]=function(){return this.sourceHandler_&&this.sourceHandler_[a]?this.sourceHandler_[a].apply(this.sourceHandler_,arguments):b.apply(this,arguments)})},a.prototype),a.prototype.setSource=function(b){var c=a.selectSourceHandler(b,this.options_);return c||(a.nativeSourceHandler?c=a.nativeSourceHandler:C["default"].error("No source hander found for the current source.")),this.disposeSourceHandler(),this.off("dispose",this.disposeSourceHandler),c!==a.nativeSourceHandler&&(this.currentSource_=b,this.off(this.el_,"loadstart",a.prototype.firstLoadStartListener_),this.off(this.el_,"loadstart",a.prototype.successiveLoadStartListener_),this.one(this.el_,"loadstart",a.prototype.firstLoadStartListener_)),this.sourceHandler_=c.handleSource(b,this,this.options_),this.on("dispose",this.disposeSourceHandler),this},a.prototype.firstLoadStartListener_=function(){this.one(this.el_,"loadstart",a.prototype.successiveLoadStartListener_)},a.prototype.successiveLoadStartListener_=function(){this.disposeSourceHandler(),this.one(this.el_,"loadstart",a.prototype.successiveLoadStartListener_)},a.prototype.disposeSourceHandler=function(){this.currentSource_&&(this.clearTracks(["audio","video"]),this.currentSource_=null),this.cleanupAutoTextTracks(),this.sourceHandler_&&(this.off(this.el_,"loadstart",a.prototype.firstLoadStartListener_),this.off(this.el_,"loadstart",a.prototype.successiveLoadStartListener_),this.sourceHandler_.dispose&&this.sourceHandler_.dispose(),this.sourceHandler_=null)}},k["default"].registerComponent("Tech",M),k["default"].registerComponent("MediaTechController",M),M.registerTech("Tech",M),c["default"]=M},{105:105,46:46,5:5,63:63,65:65,66:66,70:70,72:72,76:76,79:79,83:83,86:86,87:87,88:88,90:90,94:94,95:95}],63:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(74),j=e(i),k=a(78),l=d(k),m=a(94),n=e(m),o=function(a,b){for(var c=0;c<a.length;c++)b.id!==a[c].id&&(a[c].enabled=!1)},p=function(a){function b(){var c,d,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];f(this,b);for(var h=void 0,i=e.length-1;i>=0;i--)if(e[i].enabled){o(e,e[i]);break}if(l.IS_IE8){h=n["default"].createElement("custom");for(var k in j["default"].prototype)"constructor"!==k&&(h[k]=j["default"].prototype[k]);for(var m in b.prototype)"constructor"!==m&&(h[m]=b.prototype[m])}return h=c=g(this,a.call(this,e,h)),h.changing_=!1,d=h,g(c,d)}return h(b,a),b.prototype.addTrack_=function(b){var c=this;b.enabled&&o(this,b),a.prototype.addTrack_.call(this,b),b.addEventListener&&b.addEventListener("enabledchange",function(){c.changing_||(c.changing_=!0,o(c,b),c.changing_=!1,c.trigger("change"))})},b.prototype.addTrack=function(a){this.addTrack_(a)},b.prototype.removeTrack=function(b){a.prototype.removeTrack_.call(this,b)},b}(j["default"]);c["default"]=p},{74:74,78:78,94:94}],64:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(73),j=a(75),k=e(j),l=a(87),m=e(l),n=a(78),o=d(n),p=function(a){function b(){var c,d,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f(this,b);var h=(0,m["default"])(e,{kind:i.AudioTrackKind[e.kind]||""}),j=c=g(this,a.call(this,h)),k=!1;if(o.IS_IE8)for(var l in b.prototype)"constructor"!==l&&(j[l]=b.prototype[l]);return Object.defineProperty(j,"enabled",{get:function(){return k},set:function(a){"boolean"==typeof a&&a!==k&&(k=a,this.trigger("enabledchange"))}}),h.enabled&&(j.enabled=h.enabled),j.loaded_=!0,d=j,g(c,d)}return h(b,a),b}(k["default"]);c["default"]=p},{73:73,75:75,78:78,87:87}],65:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a(78),h=e(g),i=a(94),j=d(i),k=function(){function a(){var b=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];f(this,a);var c=this;if(h.IS_IE8){c=j["default"].createElement("custom");for(var d in a.prototype)"constructor"!==d&&(c[d]=a.prototype[d])}c.trackElements_=[],Object.defineProperty(c,"length",{get:function(){return this.trackElements_.length}});for(var e=0,g=b.length;e<g;e++)c.addTrackElement_(b[e]);if(h.IS_IE8)return c}return a.prototype.addTrackElement_=function(a){var b=this.trackElements_.length;""+b in this||Object.defineProperty(this,b,{get:function(){return this.trackElements_[b]}}),this.trackElements_.indexOf(a)===-1&&this.trackElements_.push(a)},a.prototype.getTrackElementByTrack_=function(a){for(var b=void 0,c=0,d=this.trackElements_.length;c<d;c++)if(a===this.trackElements_[c].track){b=this.trackElements_[c];break}return b},a.prototype.removeTrackElement_=function(a){for(var b=0,c=this.trackElements_.length;b<c;b++)if(a===this.trackElements_[b]){this.trackElements_.splice(b,1);break}},a}();c["default"]=k},{78:78,94:94}],66:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(78),j=e(i),k=a(94),l=d(k),m=a(42),n=d(m),o=a(72),p=d(o),q=function(a){function b(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f(this,b);var d=g(this,a.call(this)),e=void 0,h=d;if(j.IS_IE8){h=l["default"].createElement("custom");for(var i in b.prototype)"constructor"!==i&&(h[i]=b.prototype[i])}var k=new p["default"](c);if(h.kind=k.kind,h.src=k.src,h.srclang=k.language,h.label=k.label,h["default"]=k["default"],Object.defineProperty(h,"readyState",{get:function(){return e}}),Object.defineProperty(h,"track",{get:function(){return k}}),e=0,k.addEventListener("loadeddata",function(){e=2,h.trigger({type:"load",target:h})}),j.IS_IE8){var m;return m=h,g(d,m)}return d}return h(b,a),b}(n["default"]);q.prototype.allowedEvents_={load:"load"},q.NONE=0,q.LOADING=1,q.LOADED=2,q.ERROR=3,c["default"]=q},{42:42,72:72,78:78,94:94}],67:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a(78),h=e(g),i=a(94),j=d(i),k=function(){function a(b){f(this,a);var c=this;if(h.IS_IE8){c=j["default"].createElement("custom");for(var d in a.prototype)"constructor"!==d&&(c[d]=a.prototype[d])}if(a.prototype.setCues_.call(c,b),Object.defineProperty(c,"length",{get:function(){return this.length_}}),h.IS_IE8)return c}return a.prototype.setCues_=function(a){var b=this.length||0,c=0,d=a.length;this.cues_=a,this.length_=a.length;var e=function(a){""+a in this||Object.defineProperty(this,""+a,{get:function(){return this.cues_[a]}})};if(b<d)for(c=b;c<d;c++)e.call(this,c)},a.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;c<d;c++){var e=this[c];if(e.id===a){b=e;break}}return b},a}();c["default"]=k},{78:78,94:94}],68:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function i(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function j(a,b,c){try{a.style[b]=c}catch(d){return}}c.__esModule=!0;var k=a(5),l=e(k),m=a(83),n=d(m),o=a(95),p=e(o),q={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'},r=function(a){function b(c,d,e){f(this,b);var h=g(this,a.call(this,c,d,e));return c.on("loadstart",n.bind(h,h.toggleDisplay)),c.on("texttrackchange",n.bind(h,h.updateDisplay)),c.ready(n.bind(h,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",n.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;b<a.length;b++)this.player_.addRemoteTextTrack(a[b],!0);var d={captions:1,subtitles:1},e=this.player_.textTracks(),f=void 0,g=void 0;if(e){for(var h=0;h<e.length;h++){var i=e[h];i["default"]&&("descriptions"!==i.kind||f?i.kind in d&&!g&&(g=i):f=i)}g?g.mode="showing":f&&(f.mode="showing")}})),h}return h(b,a),b.prototype.toggleDisplay=function(){this.player_.tech_&&this.player_.tech_.featuresNativeTextTracks?this.hide():this.show()},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-text-track-display"},{"aria-live":"off","aria-atomic":"true"})},b.prototype.clearDisplay=function(){"function"==typeof p["default"].WebVTT&&p["default"].WebVTT.processCues(p["default"],[],this.el_)},b.prototype.updateDisplay=function(){var a=this.player_.textTracks();if(this.clearDisplay(),a){for(var b=null,c=null,d=a.length;d--;){var e=a[d];"showing"===e.mode&&("descriptions"===e.kind?b=e:c=e)}c?("off"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","off"),this.updateForTrack(c)):b&&("assertive"!==this.getAttribute("aria-live")&&this.setAttribute("aria-live","assertive"),this.updateForTrack(b))}},b.prototype.updateForTrack=function(a){if("function"==typeof p["default"].WebVTT&&a.activeCues){for(var b=this.player_.textTrackSettings.getValues(),c=[],d=0;d<a.activeCues.length;d++)c.push(a.activeCues[d]);p["default"].WebVTT.processCues(p["default"],c,this.el_);for(var e=c.length;e--;){var f=c[e];if(f){var g=f.displayState;if(b.color&&(g.firstChild.style.color=b.color),b.textOpacity&&j(g.firstChild,"color",i(b.color||"#fff",b.textOpacity)),b.backgroundColor&&(g.firstChild.style.backgroundColor=b.backgroundColor),b.backgroundOpacity&&j(g.firstChild,"backgroundColor",i(b.backgroundColor||"#000",b.backgroundOpacity)),b.windowColor&&(b.windowOpacity?j(g,"backgroundColor",i(b.windowColor,b.windowOpacity)):g.style.backgroundColor=b.windowColor),b.edgeStyle&&("dropshadow"===b.edgeStyle?g.firstChild.style.textShadow="2px 2px 3px #222, 2px 2px 4px #222, 2px 2px 5px #222":"raised"===b.edgeStyle?g.firstChild.style.textShadow="1px 1px #222, 2px 2px #222, 3px 3px #222":"depressed"===b.edgeStyle?g.firstChild.style.textShadow="1px 1px #ccc, 0 1px #ccc, -1px -1px #222, 0 -1px #222":"uniform"===b.edgeStyle&&(g.firstChild.style.textShadow="0 0 4px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px #222")),b.fontPercent&&1!==b.fontPercent){var h=p["default"].parseFloat(g.style.fontSize);g.style.fontSize=h*b.fontPercent+"px",g.style.height="auto",g.style.top="auto",g.style.bottom="2px"}b.fontFamily&&"default"!==b.fontFamily&&("small-caps"===b.fontFamily?g.firstChild.style.fontVariant="small-caps":g.firstChild.style.fontFamily=q[b.fontFamily])}}}},b}(l["default"]);l["default"].registerComponent("TextTrackDisplay",r),c["default"]=r},{5:5,83:83,95:95}],69:[function(a,b,c){"use strict";c.__esModule=!0;var d=function(a){return["kind","label","language","id","inBandMetadataTrackDispatchType","mode","src"].reduce(function(b,c,d){return a[c]&&(b[c]=a[c]),b},{cues:a.cues&&Array.prototype.map.call(a.cues,function(a){return{startTime:a.startTime,endTime:a.endTime,text:a.text,id:a.id}})})},e=function(a){var b=a.$$("track"),c=Array.prototype.map.call(b,function(a){return a.track});return Array.prototype.map.call(b,function(a){var b=d(a.track);return a.src&&(b.src=a.src),b}).concat(Array.prototype.filter.call(a.textTracks(),function(a){return c.indexOf(a)===-1}).map(d))},f=function(a,b){return a.forEach(function(a){var c=b.addRemoteTextTrack(a).track;!a.src&&a.cues&&a.cues.forEach(function(a){return c.addCue(a)})}),b.textTracks()};c["default"]={textTracksToJson:e,jsonToTextTracks:f,trackToJson_:d}},{}],70:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(74),j=e(i),k=a(83),l=d(k),m=a(78),n=d(m),o=a(94),p=e(o),q=function(a){function b(){var c,d,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];f(this,b);var h=void 0;if(n.IS_IE8){h=p["default"].createElement("custom");for(var i in j["default"].prototype)"constructor"!==i&&(h[i]=j["default"].prototype[i]);for(var k in b.prototype)"constructor"!==k&&(h[k]=b.prototype[k])}return h=c=g(this,a.call(this,e,h)),d=h,g(c,d)}return h(b,a),b.prototype.addTrack_=function(b){a.prototype.addTrack_.call(this,b),b.addEventListener("modechange",l.bind(this,function(){this.trigger("change")}))},b}(j["default"]);c["default"]=q},{74:74,78:78,83:83,94:94}],71:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function i(a,b){if(b&&(a=b(a)),a&&"none"!==a)return a}function j(a,b){return i(a.options[a.options.selectedIndex].value,b)}function k(a,b,c){if(b)for(var d=0;d<a.options.length;d++)if(i(a.options[d].value,c)===b){a.selectedIndex=d;break}}c.__esModule=!0;var l=a(95),m=e(l),n=a(5),o=e(n),p=a(81),q=a(83),r=d(q),s=a(88),t=d(s),u=a(86),v=e(u),w=["#000","Black"],x=["#00F","Blue"],y=["#0FF","Cyan"],z=["#0F0","Green"],A=["#F0F","Magenta"],B=["#F00","Red"],C=["#FFF","White"],D=["#FF0","Yellow"],E=["1","Opaque"],F=["0.5","Semi-Transparent"],G=["0","Transparent"],H={backgroundColor:{selector:".vjs-bg-color > select",id:"captions-background-color-%s",label:"Color",options:[w,C,B,z,x,D,A,y]},backgroundOpacity:{selector:".vjs-bg-opacity > select",id:"captions-background-opacity-%s",label:"Transparency",options:[E,F,G]},color:{selector:".vjs-fg-color > select",id:"captions-foreground-color-%s",label:"Color",options:[C,w,B,z,x,D,A,y]},edgeStyle:{selector:".vjs-edge-style > select",id:"%s",label:"Text Edge Style",options:[["none","None"],["raised","Raised"],["depressed","Depressed"],["uniform","Uniform"],["dropshadow","Dropshadow"]]},fontFamily:{selector:".vjs-font-family > select",id:"captions-font-family-%s",label:"Font Family",options:[["proportionalSansSerif","Proportional Sans-Serif"],["monospaceSansSerif","Monospace Sans-Serif"],["proportionalSerif","Proportional Serif"],["monospaceSerif","Monospace Serif"],["casual","Casual"],["script","Script"],["small-caps","Small Caps"]]},fontPercent:{selector:".vjs-font-percent > select",id:"captions-font-size-%s",label:"Font Size",options:[["0.50","50%"],["0.75","75%"],["1.00","100%"],["1.25","125%"],["1.50","150%"],["1.75","175%"],["2.00","200%"],["3.00","300%"],["4.00","400%"]],"default":2,parser:function(a){return"1.00"===a?null:Number(a)}},textOpacity:{selector:".vjs-text-opacity > select",id:"captions-foreground-opacity-%s",label:"Transparency",options:[E,F]},windowColor:{selector:".vjs-window-color > select",id:"captions-window-color-%s",label:"Color"},windowOpacity:{selector:".vjs-window-opacity > select",id:"captions-window-opacity-%s",label:"Transparency",options:[G,F,E]}};H.windowColor.options=H.backgroundColor.options;var I=function(a){function b(c,d){f(this,b);var e=g(this,a.call(this,c,d));return e.setDefaults(),e.hide(),e.updateDisplay=r.bind(e,e.updateDisplay),void 0===d.persistTextTrackSettings&&(e.options_.persistTextTrackSettings=e.options_.playerOptions.persistTextTrackSettings),e.on(e.$(".vjs-done-button"),"click",function(){e.saveSettings(),e.hide()}),e.on(e.$(".vjs-default-button"),"click",function(){e.setDefaults(),e.updateDisplay()}),t.each(H,function(a){e.on(e.$(a.selector),"change",e.updateDisplay)}),e.options_.persistTextTrackSettings&&e.restoreSettings(),e}return h(b,a),b.prototype.createElSelect_=function(a){var b=this,c=H[a],d=c.id.replace("%s",this.id_);return[(0,p.createEl)("label",{className:"vjs-label",textContent:c.label},{"for":d}),(0,p.createEl)("select",{id:d},void 0,c.options.map(function(a){return(0,p.createEl)("option",{textContent:b.localize(a[1]),value:a[0]})}))]},b.prototype.createElFgColor_=function(){var a=(0,p.createEl)("legend",{textContent:this.localize("Text")}),b=this.createElSelect_("color"),c=(0,p.createEl)("span",{className:"vjs-text-opacity vjs-opacity"},void 0,this.createElSelect_("textOpacity"));return(0,p.createEl)("fieldset",{className:"vjs-fg-color vjs-tracksetting"},void 0,[a].concat(b,c))},b.prototype.createElBgColor_=function(){var a=(0,p.createEl)("legend",{textContent:this.localize("Background")}),b=this.createElSelect_("backgroundColor"),c=(0,p.createEl)("span",{className:"vjs-bg-opacity vjs-opacity"},void 0,this.createElSelect_("backgroundOpacity"));return(0,p.createEl)("fieldset",{className:"vjs-bg-color vjs-tracksetting"},void 0,[a].concat(b,c))},b.prototype.createElWinColor_=function(){var a=(0,p.createEl)("legend",{textContent:this.localize("Window")}),b=this.createElSelect_("windowColor"),c=(0,p.createEl)("span",{className:"vjs-window-opacity vjs-opacity"},void 0,this.createElSelect_("windowOpacity"));return(0,p.createEl)("fieldset",{className:"vjs-window-color vjs-tracksetting"},void 0,[a].concat(b,c))},b.prototype.createElColors_=function(){return(0,p.createEl)("div",{className:"vjs-tracksettings-colors"},void 0,[this.createElFgColor_(),this.createElBgColor_(),this.createElWinColor_()])},b.prototype.createElFont_=function(){var a=(0,p.createEl)("div",{className:"vjs-font-percent vjs-tracksetting"},void 0,this.createElSelect_("fontPercent")),b=(0,p.createEl)("div",{className:"vjs-edge-style vjs-tracksetting"},void 0,this.createElSelect_("edgeStyle")),c=(0,p.createEl)("div",{className:"vjs-font-family vjs-tracksetting"},void 0,this.createElSelect_("fontFamily"));return(0,p.createEl)("div",{className:"vjs-tracksettings-font"},void 0,[a,b,c])},b.prototype.createElControls_=function(){var a=(0,p.createEl)("button",{className:"vjs-default-button",textContent:this.localize("Defaults")}),b=(0,p.createEl)("button",{className:"vjs-done-button",textContent:"Done"});return(0,p.createEl)("div",{className:"vjs-tracksettings-controls"},void 0,[a,b])},b.prototype.createEl=function(){var a=(0,p.createEl)("div",{className:"vjs-tracksettings"},void 0,[this.createElColors_(),this.createElFont_(),this.createElControls_()]),b=(0,p.createEl)("div",{className:"vjs-control-text",id:"TTsettingsDialogLabel-"+this.id_,textContent:"Caption Settings Dialog"},{"aria-level":"1",role:"heading"}),c=(0,p.createEl)("div",{className:"vjs-control-text",id:"TTsettingsDialogDescription-"+this.id_,textContent:"Beginning of dialog window. Escape will cancel and close the window."}),d=(0,p.createEl)("div",void 0,{role:"document"},[b,c,a]);return(0,p.createEl)("div",{className:"vjs-caption-settings vjs-modal-overlay",tabIndex:-1},{role:"dialog","aria-labelledby":b.id,"aria-describedby":c.id},d)},b.prototype.getValues=function(){var a=this;return t.reduce(H,function(b,c,d){var e=j(a.$(c.selector),c.parser);return void 0!==e&&(b[d]=e),b},{})},b.prototype.setValues=function(a){var b=this;t.each(H,function(c,d){k(b.$(c.selector),a[d],c.parser)})},b.prototype.setDefaults=function(){var a=this;t.each(H,function(b){var c=b.hasOwnProperty("default")?b["default"]:0;a.$(b.selector).selectedIndex=c})},b.prototype.restoreSettings=function(){var a=void 0;try{a=JSON.parse(m["default"].localStorage.getItem("vjs-text-track-settings"))}catch(b){v["default"].warn(b)}a&&this.setValues(a)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.keys(a).length?m["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):m["default"].localStorage.removeItem("vjs-text-track-settings")}catch(b){v["default"].warn(b)}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(o["default"]);o["default"].registerComponent("TextTrackSettings",I),c["default"]=I},{5:5,81:81,83:83,86:86,88:88,95:95}],72:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(67),j=e(i),k=a(83),l=d(k),m=a(73),n=a(86),o=e(n),p=a(95),q=e(p),r=a(75),s=e(r),t=a(92),u=a(99),v=e(u),w=a(87),x=e(w),y=a(78),z=d(y),A=function(a,b){var c=new q["default"].WebVTT.Parser(q["default"],q["default"].vttjs,q["default"].WebVTT.StringDecoder()),d=[];c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){d.push(a)},c.onflush=function(){b.trigger({type:"loadeddata",target:b})},c.parse(a),d.length>0&&(q["default"].console&&q["default"].console.groupCollapsed&&q["default"].console.groupCollapsed("Text Track parsing errors for "+b.src),d.forEach(function(a){return o["default"].error(a)}),q["default"].console&&q["default"].console.groupEnd&&q["default"].console.groupEnd()),c.flush()},B=function(a,b){var c={uri:a},d=(0,t.isCrossOrigin)(a);d&&(c.cors=d),(0,v["default"])(c,l.bind(this,function(a,c,d){if(a)return o["default"].error(a,c);if(b.loaded_=!0,"function"!=typeof q["default"].WebVTT){if(b.tech_){var e=function(){return A(d,b)};b.tech_.on("vttjsloaded",e),b.tech_.on("vttjserror",function(){o["default"].error("vttjs failed to load, stopping trying to process "+b.src),b.tech_.off("vttjsloaded",e)})}}else A(d,b)}))},C=function(a){function b(){var c,d,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(f(this,b),!e.tech)throw new Error("A tech was not provided.");var h=(0,x["default"])(e,{kind:m.TextTrackKind[e.kind]||"subtitles",language:e.language||e.srclang||""}),i=m.TextTrackMode[h.mode]||"disabled",k=h["default"];"metadata"!==h.kind&&"chapters"!==h.kind||(i="hidden");var n=c=g(this,a.call(this,h));if(n.tech_=h.tech,z.IS_IE8)for(var o in b.prototype)"constructor"!==o&&(n[o]=b.prototype[o]);n.cues_=[],n.activeCues_=[];var p=new j["default"](n.cues_),q=new j["default"](n.activeCues_),r=!1,s=l.bind(n,function(){this.activeCues,r&&(this.trigger("cuechange"),r=!1)});return"disabled"!==i&&n.tech_.ready(function(){n.tech_.on("timeupdate",s)},!0),Object.defineProperty(n,"default",{get:function(){return k},set:function(){}}),Object.defineProperty(n,"mode",{get:function(){return i},set:function(a){var b=this;m.TextTrackMode[a]&&(i=a,"showing"===i&&this.tech_.ready(function(){b.tech_.on("timeupdate",s)},!0),this.trigger("modechange"))}}),Object.defineProperty(n,"cues",{get:function(){return this.loaded_?p:null},set:function(){}}),Object.defineProperty(n,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return q;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;c<d;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(r=!1,b.length!==this.activeCues_.length)r=!0;else for(var f=0;f<b.length;f++)this.activeCues_.indexOf(b[f])===-1&&(r=!0);return this.activeCues_=b,q.setCues_(this.activeCues_),q},set:function(){}}),h.src?(n.src=h.src,B(h.src,n)):n.loaded_=!0,d=n,g(c,d)}return h(b,a),b.prototype.addCue=function(a){var b=a;if(q["default"].vttjs&&!(a instanceof q["default"].vttjs.VTTCue)){b=new q["default"].vttjs.VTTCue(a.startTime,a.endTime,a.text);for(var c in a)c in b||(b[c]=a[c]);b.id=a.id,b.originalCue_=a}var d=this.tech_.textTracks();if(d)for(var e=0;e<d.length;e++)d[e]!==this&&d[e].removeCue(b);this.cues_.push(b),this.cues.setCues_(this.cues_)},b.prototype.removeCue=function(a){for(var b=this.cues_.length;b--;){var c=this.cues_[b];if(c===a||c.originalCue_&&c.originalCue_===a){this.cues_.splice(b,1),this.cues.setCues_(this.cues_);break}}},b}(s["default"]);C.prototype.allowedEvents_={cuechange:"cuechange"},c["default"]=C},{67:67,73:73,75:75,78:78,83:83,86:86,87:87,92:92,95:95,99:99}],73:[function(a,b,c){"use strict";c.__esModule=!0;c.VideoTrackKind={alternative:"alternative",captions:"captions",main:"main",sign:"sign",subtitles:"subtitles",commentary:"commentary"},c.AudioTrackKind={alternative:"alternative",descriptions:"descriptions",main:"main","main-desc":"main-desc",translation:"translation",commentary:"commentary"},c.TextTrackKind={subtitles:"subtitles",captions:"captions",descriptions:"descriptions",chapters:"chapters",metadata:"metadata"},c.TextTrackMode={disabled:"disabled",hidden:"hidden",showing:"showing"}},{}],74:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(42),j=e(i),k=a(78),l=d(k),m=a(94),n=e(m),o=function(a){function b(){var c,d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;f(this,b);var h=g(this,a.call(this));if(!e&&(e=h,l.IS_IE8)){e=n["default"].createElement("custom");for(var i in b.prototype)"constructor"!==i&&(e[i]=b.prototype[i])}e.tracks_=[],Object.defineProperty(e,"length",{get:function(){return this.tracks_.length}});for(var j=0;j<d.length;j++)e.addTrack_(d[j]);return c=e,g(h,c)}return h(b,a),b.prototype.addTrack_=function(a){var b=this.tracks_.length;""+b in this||Object.defineProperty(this,b,{get:function(){return this.tracks_[b]}}),this.tracks_.indexOf(a)===-1&&(this.tracks_.push(a),this.trigger({track:a,type:"addtrack"}))},b.prototype.removeTrack_=function(a){for(var b=void 0,c=0,d=this.length;c<d;c++)if(this[c]===a){b=this[c],b.off&&b.off(),this.tracks_.splice(c,1);break}b&&this.trigger({track:b,type:"removetrack"})},b.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;c<d;c++){var e=this[c];if(e.id===a){b=e;break}}return b},b}(j["default"]);o.prototype.allowedEvents_={change:"change",addtrack:"addtrack",removetrack:"removetrack"};for(var p in o.prototype.allowedEvents_)o.prototype["on"+p]=null;c["default"]=o},{42:42,78:78,94:94}],75:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(78),j=e(i),k=a(94),l=d(k),m=a(85),n=e(m),o=a(42),p=d(o),q=function(a){function b(){var c,d=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f(this,b);var e=g(this,a.call(this)),h=e;if(j.IS_IE8){h=l["default"].createElement("custom");for(var i in b.prototype)"constructor"!==i&&(h[i]=b.prototype[i])}var k={id:d.id||"vjs_track_"+n.newGUID(),kind:d.kind||"",label:d.label||"",language:d.language||""},m=function(a){Object.defineProperty(h,a,{get:function(){return k[a]},set:function(){}})};for(var o in k)m(o);return c=h,g(e,c)}return h(b,a),b}(p["default"]);c["default"]=q},{42:42,78:78,85:85,94:94}],76:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(74),j=e(i),k=a(78),l=d(k),m=a(94),n=e(m),o=function(a,b){for(var c=0;c<a.length;c++)b.id!==a[c].id&&(a[c].selected=!1)},p=function(a){function b(){var c,d,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];f(this,b);for(var h=void 0,i=e.length-1;i>=0;i--)if(e[i].selected){o(e,e[i]);break}if(l.IS_IE8){h=n["default"].createElement("custom");for(var k in j["default"].prototype)"constructor"!==k&&(h[k]=j["default"].prototype[k]);for(var m in b.prototype)"constructor"!==m&&(h[m]=b.prototype[m])}return h=c=g(this,a.call(this,e,h)),h.changing_=!1,Object.defineProperty(h,"selectedIndex",{get:function(){for(var a=0;a<this.length;a++)if(this[a].selected)return a;return-1},set:function(){}}),d=h,g(c,d)}return h(b,a),b.prototype.addTrack_=function(b){var c=this;b.selected&&o(this,b),a.prototype.addTrack_.call(this,b),b.addEventListener&&b.addEventListener("selectedchange",function(){c.changing_||(c.changing_=!0,o(c,b),c.changing_=!1,c.trigger("change"))})},b.prototype.addTrack=function(a){this.addTrack_(a)},b.prototype.removeTrack=function(b){a.prototype.removeTrack_.call(this,b)},b}(j["default"]);c["default"]=p},{74:74,78:78,94:94}],77:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function h(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var i=a(73),j=a(75),k=e(j),l=a(87),m=e(l),n=a(78),o=d(n),p=function(a){function b(){var c,d,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};f(this,b);var h=(0,m["default"])(e,{kind:i.VideoTrackKind[e.kind]||""}),j=c=g(this,a.call(this,h)),k=!1;if(o.IS_IE8)for(var l in b.prototype)"constructor"!==l&&(j[l]=b.prototype[l]);return Object.defineProperty(j,"selected",{get:function(){return k},set:function(a){"boolean"==typeof a&&a!==k&&(k=a,this.trigger("selectedchange"))}}),h.selected&&(j.selected=h.selected),d=j,g(c,d)}return h(b,a),b}(k["default"]);c["default"]=p},{73:73,75:75,78:78,87:87}],78:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0,c.BACKGROUND_SIZE_SUPPORTED=c.TOUCH_ENABLED=c.IS_ANY_SAFARI=c.IS_SAFARI=c.IE_VERSION=c.IS_IE8=c.IS_CHROME=c.IS_EDGE=c.IS_FIREFOX=c.IS_NATIVE_ANDROID=c.IS_OLD_ANDROID=c.ANDROID_VERSION=c.IS_ANDROID=c.IOS_VERSION=c.IS_IOS=c.IS_IPOD=c.IS_IPHONE=c.IS_IPAD=void 0;var f=a(81),g=e(f),h=a(95),i=d(h),j=i["default"].navigator&&i["default"].navigator.userAgent||"",k=/AppleWebKit\/([\d.]+)/i.exec(j),l=k?parseFloat(k.pop()):null,m=c.IS_IPAD=/iPad/i.test(j),n=c.IS_IPHONE=/iPhone/i.test(j)&&!m,o=c.IS_IPOD=/iPod/i.test(j),p=c.IS_IOS=n||m||o,q=(c.IOS_VERSION=function(){var a=j.match(/OS (\d+)_/i);return a&&a[1]?a[1]:null}(),c.IS_ANDROID=/Android/i.test(j)),r=c.ANDROID_VERSION=function(){var a=j.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);if(!a)return null;var b=a[1]&&parseFloat(a[1]),c=a[2]&&parseFloat(a[2]);return b&&c?parseFloat(a[1]+"."+a[2]):b?b:null}(),s=(c.IS_OLD_ANDROID=q&&/webkit/i.test(j)&&r<2.3,c.IS_NATIVE_ANDROID=q&&r<5&&l<537,c.IS_FIREFOX=/Firefox/i.test(j),c.IS_EDGE=/Edge/i.test(j)),t=c.IS_CHROME=!s&&/Chrome/i.test(j),u=(c.IS_IE8=/MSIE\s8\.0/.test(j),c.IE_VERSION=function(){var a=/MSIE\s(\d+)\.\d/.exec(j),b=a&&parseFloat(a[1]);return!b&&/Trident\/7.0/i.test(j)&&/rv:11.0/.test(j)&&(b=11),b}(),c.IS_SAFARI=/Safari/i.test(j)&&!t&&!q&&!s);c.IS_ANY_SAFARI=u||p,c.TOUCH_ENABLED=g.isReal()&&("ontouchstart"in i["default"]||i["default"].DocumentTouch&&i["default"].document instanceof i["default"].DocumentTouch),c.BACKGROUND_SIZE_SUPPORTED=g.isReal()&&"backgroundSize"in i["default"].document.createElement("video").style},{81:81,95:95}],79:[function(a,b,c){"use strict";function d(a,b){var c=0,d=void 0,f=void 0;if(!b)return 0;a&&a.length||(a=(0,e.createTimeRange)(0,0));for(var g=0;g<a.length;g++)d=a.start(g),f=a.end(g),f>b&&(f=b),c+=f-d;return c/b}c.__esModule=!0,c.bufferedPercent=d;var e=a(90)},{90:90}],80:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!a||!b)return"";if("function"==typeof g["default"].getComputedStyle){var c=g["default"].getComputedStyle(a);return c?c[b]:""}return a.currentStyle[b]||""}c.__esModule=!0,c["default"]=e;var f=a(95),g=d(f)},{95:95}],81:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){return a.raw=b,a}function g(a){return"string"==typeof a&&/\S/.test(a)}function h(a){if(/\s/.test(a))throw new Error("class has illegal whitespace characters")}function i(a){return new RegExp("(^|\\s)"+a+"($|\\s)")}function j(){return N["default"]===P["default"].document&&"undefined"!=typeof N["default"].createElement}function k(a){return(0,W.isObject)(a)&&1===a.nodeType}function l(a){return function(b,c){if(!g(b))return N["default"][a](null);g(c)&&(c=N["default"].querySelector(c));var d=k(c)?c:N["default"];return d[a]&&d[a](b)}}function m(a){return 0===a.indexOf("#")&&(a=a.slice(1)),N["default"].getElementById(a)}function n(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"div",b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},d=arguments[3],e=N["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];a.indexOf("aria-")!==-1||"role"===a||"type"===a?(T["default"].warn((0,V["default"])(L,a,c)),e.setAttribute(a,c)):"textContent"===a?o(e,c):e[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){e.setAttribute(a,c[a])}),d&&J(e,d),e}function o(a,b){return"undefined"==typeof a.textContent?a.innerText=b:a.textContent=b,a}function p(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function q(a){var b=a[Y];return b||(b=a[Y]=R.newGUID()),X[b]||(X[b]={}),X[b]}function r(a){var b=a[Y];return!!b&&!!Object.getOwnPropertyNames(X[b]).length}function s(a){var b=a[Y];if(b){delete X[b];try{delete a[Y]}catch(c){a.removeAttribute?a.removeAttribute(Y):a[Y]=null}}}function t(a,b){return h(b),a.classList?a.classList.contains(b):i(b).test(a.className)}function u(a,b){return a.classList?a.classList.add(b):t(a,b)||(a.className=(a.className+" "+b).trim()),a}function v(a,b){return a.classList?a.classList.remove(b):(h(b),a.className=a.className.split(/\s+/).filter(function(a){return a!==b}).join(" ")),a}function w(a,b,c){var d=t(a,b);if("function"==typeof c&&(c=c(a,b)),"boolean"!=typeof c&&(c=!d),c!==d)return c?u(a,b):v(a,b),a}function x(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||void 0===d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function y(a){var b={};if(a&&a.attributes&&a.attributes.length>0)for(var c=a.attributes,d=c.length-1;d>=0;d--){var e=c[d].name,f=c[d].value;"boolean"!=typeof a[e]&&",autoplay,controls,loop,muted,default,".indexOf(","+e+",")===-1||(f=null!==f),b[e]=f}return b}function z(a,b){return a.getAttribute(b)}function A(a,b,c){a.setAttribute(b,c)}function B(a,b){a.removeAttribute(b)}function C(){N["default"].body.focus(),N["default"].onselectstart=function(){return!1}}function D(){N["default"].onselectstart=function(){return!0}}function E(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=N["default"].documentElement,d=N["default"].body,e=c.clientLeft||d.clientLeft||0,f=P["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=P["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function F(a,b){var c={},d=E(a),e=a.offsetWidth,f=a.offsetHeight,g=d.top,h=d.left,i=b.pageY,j=b.pageX;return b.changedTouches&&(j=b.changedTouches[0].pageX,i=b.changedTouches[0].pageY),c.y=Math.max(0,Math.min(1,(g-i+f)/f)),c.x=Math.max(0,Math.min(1,(j-h)/e)),c}function G(a){return(0,W.isObject)(a)&&3===a.nodeType}function H(a){for(;a.firstChild;)a.removeChild(a.firstChild);return a}function I(a){return"function"==typeof a&&(a=a()),(Array.isArray(a)?a:[a]).map(function(a){return"function"==typeof a&&(a=a()),k(a)||G(a)?a:"string"==typeof a&&/\S/.test(a)?N["default"].createTextNode(a):void 0}).filter(function(a){return a})}function J(a,b){return I(b).forEach(function(b){return a.appendChild(b)}),a}function K(a,b){return J(H(a),b)}c.__esModule=!0,c.$$=c.$=void 0;var L=f(["Setting attributes in the second argument of createEl()\n                has been deprecated. Use the third argument instead.\n                createEl(type, properties, attributes). Attempting to set "," to ","."],["Setting attributes in the second argument of createEl()\n                has been deprecated. Use the third argument instead.\n                createEl(type, properties, attributes). Attempting to set "," to ","."]);c.isReal=j,c.isEl=k,c.getEl=m,c.createEl=n,c.textContent=o,c.insertElFirst=p,c.getElData=q,c.hasElData=r,c.removeElData=s,c.hasElClass=t,c.addElClass=u,c.removeElClass=v,c.toggleElClass=w,c.setElAttributes=x,c.getElAttributes=y,c.getAttribute=z,c.setAttribute=A,c.removeAttribute=B,c.blockTextSelection=C,c.unblockTextSelection=D,c.findElPosition=E,c.getPointerPosition=F,c.isTextNode=G,c.emptyEl=H,c.normalizeContent=I,c.appendContent=J,c.insertContent=K;var M=a(94),N=e(M),O=a(95),P=e(O),Q=a(85),R=d(Q),S=a(86),T=e(S),U=a(98),V=e(U),W=a(88),X={},Y="vdata"+(new Date).getTime();c.$=l("querySelector"),c.$$=l("querySelectorAll")},{85:85,86:86,88:88,94:94,95:95,98:98}],82:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b){var c=n.getElData(a);0===c.handlers[b].length&&(delete c.handlers[b],a.removeEventListener?a.removeEventListener(b,c.dispatcher,!1):a.detachEvent&&a.detachEvent("on"+b,c.dispatcher)),Object.getOwnPropertyNames(c.handlers).length<=0&&(delete c.handlers,delete c.dispatcher,delete c.disabled),0===Object.getOwnPropertyNames(c).length&&n.removeElData(a)}function g(a,b,c,d){c.forEach(function(c){a(b,c,d)})}function h(a){function b(){return!0}function c(){return!1}if(!a||!a.isPropagationStopped){var d=a||t["default"].event;a={};for(var e in d)"layerX"!==e&&"layerY"!==e&&"keyLocation"!==e&&"webkitMovementX"!==e&&"webkitMovementY"!==e&&("returnValue"===e&&d.preventDefault||(a[e]=d[e]));if(a.target||(a.target=a.srcElement||v["default"]),a.relatedTarget||(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement),a.preventDefault=function(){d.preventDefault&&d.preventDefault(),a.returnValue=!1,d.returnValue=!1,a.defaultPrevented=!0},a.defaultPrevented=!1,a.stopPropagation=function(){d.stopPropagation&&d.stopPropagation(),a.cancelBubble=!0,d.cancelBubble=!0,a.isPropagationStopped=b},a.isPropagationStopped=c,a.stopImmediatePropagation=function(){d.stopImmediatePropagation&&d.stopImmediatePropagation(),a.isImmediatePropagationStopped=b,a.stopPropagation()},a.isImmediatePropagationStopped=c,null!==a.clientX&&void 0!==a.clientX){var f=v["default"].documentElement,g=v["default"].body;a.pageX=a.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=a.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)}a.which=a.charCode||a.keyCode,null!==a.button&&void 0!==a.button&&(a.button=1&a.button?0:4&a.button?1:2&a.button?2:0)}return a}function i(a,b,c){if(Array.isArray(b))return g(i,a,b,c);var d=n.getElData(a);d.handlers||(d.handlers={}),d.handlers[b]||(d.handlers[b]=[]),c.guid||(c.guid=p.newGUID()),d.handlers[b].push(c),d.dispatcher||(d.disabled=!1,d.dispatcher=function(b,c){if(!d.disabled){b=h(b);var e=d.handlers[b.type];if(e)for(var f=e.slice(0),g=0,i=f.length;g<i&&!b.isImmediatePropagationStopped();g++)try{f[g].call(a,b,c)}catch(j){r["default"].error(j)}}}),1===d.handlers[b].length&&(a.addEventListener?a.addEventListener(b,d.dispatcher,!1):a.attachEvent&&a.attachEvent("on"+b,d.dispatcher))}function j(a,b,c){if(n.hasElData(a)){var d=n.getElData(a);if(d.handlers){if(Array.isArray(b))return g(j,a,b,c);var e=function(b){d.handlers[b]=[],f(a,b)};if(b){var h=d.handlers[b];if(h){if(!c)return void e(b);if(c.guid)for(var i=0;i<h.length;i++)h[i].guid===c.guid&&h.splice(i--,1);f(a,b)}}else for(var k in d.handlers)e(k)}}}function k(a,b,c){var d=n.hasElData(a)?n.getElData(a):{},e=a.parentNode||a.ownerDocument;if("string"==typeof b&&(b={type:b,target:a}),b=h(b),d.dispatcher&&d.dispatcher.call(a,b,c),e&&!b.isPropagationStopped()&&b.bubbles===!0)k.call(null,e,b,c);else if(!e&&!b.defaultPrevented){var f=n.getElData(b.target);b.target[b.type]&&(f.disabled=!0,"function"==typeof b.target[b.type]&&b.target[b.type](),f.disabled=!1)}return!b.defaultPrevented}function l(a,b,c){if(Array.isArray(b))return g(l,a,b,c);var d=function e(){j(a,b,e),c.apply(this,arguments)};d.guid=c.guid=c.guid||p.newGUID(),i(a,b,d)}c.__esModule=!0,c.fixEvent=h,c.on=i,c.off=j,c.trigger=k,c.one=l;var m=a(81),n=e(m),o=a(85),p=e(o),q=a(86),r=d(q),s=a(95),t=d(s),u=a(94),v=d(u)},{81:81,85:85,86:86,94:94,95:95}],83:[function(a,b,c){"use strict";c.__esModule=!0,c.throttle=c.bind=void 0;var d=a(85);c.bind=function(a,b,c){b.guid||(b.guid=(0,d.newGUID)());var e=function(){return b.apply(a,arguments)};return e.guid=c?c+"_"+b.guid:b.guid,e},c.throttle=function(a,b){var c=Date.now();return function(){var d=Date.now();d-c>=b&&(a.apply(void 0,arguments),c=d)}}},{85:85}],84:[function(a,b,c){"use strict";function d(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:a;a=a<0?0:a;var c=Math.floor(a%60),d=Math.floor(a/60%60),e=Math.floor(a/3600),f=Math.floor(b/60%60),g=Math.floor(b/3600);return(isNaN(a)||a===1/0)&&(e=d=c="-"),e=e>0||g>0?e+":":"",d=((e||f>=10)&&d<10?"0"+d:d)+":",c=c<10?"0"+c:c,e+d+c}c.__esModule=!0,c["default"]=d},{}],85:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],86:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0,c.logByType=void 0;var e=a(95),f=d(e),g=a(78),h=a(88),i=void 0,j=c.logByType=function(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:!!g.IE_VERSION&&g.IE_VERSION<11;"log"!==a&&b.unshift(a.toUpperCase()+":"),i.history.push(b),b.unshift("VIDEOJS:");var d=f["default"].console&&f["default"].console[a];d&&(c&&(b=b.map(function(a){if((0,h.isObject)(a)||Array.isArray(a))try{return JSON.stringify(a)}catch(b){return String(a)}return String(a)}).join(" ")),d.apply?d[Array.isArray(b)?"apply":"call"](f["default"].console,b):d(b))};i=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];j("log",b)},i.history=[],i.error=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return j("error",b)},i.warn=function(){for(var a=arguments.length,b=Array(a),c=0;c<a;c++)b[c]=arguments[c];return j("warn",b)},c["default"]=i},{78:78,88:88,95:95}],87:[function(a,b,c){"use strict";function d(){for(var a={},b=arguments.length,c=Array(b),f=0;f<b;f++)c[f]=arguments[f];return c.forEach(function(b){b&&(0,e.each)(b,function(b,c){if(!(0,e.isPlain)(b))return void(a[c]=b);(0,e.isPlain)(a[c])||(a[c]={}),a[c]=d(a[c],b)})}),a}c.__esModule=!0,c["default"]=d;var e=a(88)},{88:88}],88:[function(a,b,c){"use strict";function d(a,b){k(a).forEach(function(c){return b(a[c],c)})}function e(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return k(a).reduce(function(c,d){return b(c,a[d],d)},c)}function f(a){for(var b=arguments.length,c=Array(b>1?b-1:0),e=1;e<b;e++)c[e-1]=arguments[e];return Object.assign?Object.assign.apply(Object,[a].concat(c)):(c.forEach(function(b){b&&d(b,function(b,c){a[c]=b})}),a)}function g(a){return!!a&&"object"===(void 0===a?"undefined":i(a))}function h(a){return g(a)&&"[object Object]"===j.call(a)&&a.constructor===Object}c.__esModule=!0;var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};c.each=d,c.reduce=e,c.assign=f,c.isObject=g,c.isPlain=h;var j=Object.prototype.toString,k=function(a){return g(a)?Object.keys(a):[]}},{}],89:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0,c.setTextContent=c.createStyleElement=void 0;var e=a(94),f=d(e);c.createStyleElement=function(a){var b=f["default"].createElement("style");return b.className=a,b},c.setTextContent=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b}},{94:94}],90:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b,c){if(b<0||b>c)throw new Error("Failed to execute '"+a+"' on 'TimeRanges': The index provided ("+b+") is greater than or equal to the maximum bound ("+c+").")}function f(a,b,c,d){return void 0===d&&(j["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),d=0),e(a,d,c.length-1),c[d][b]}function g(a){return void 0===a||0===a.length?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:a.length,start:f.bind(null,"start",0,a),end:f.bind(null,"end",1,a)}}function h(a,b){return Array.isArray(a)?g(a):void 0===a||void 0===b?g():g([[a,b]])}c.__esModule=!0,c.createTimeRange=void 0,c.createTimeRanges=h;var i=a(86),j=d(i);c.createTimeRange=h},{86:86}],91:[function(a,b,c){"use strict";function d(a){return"string"!=typeof a?a:a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d},{}],92:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0,c.isCrossOrigin=c.getFileExtension=c.getAbsoluteURL=c.parseUrl=void 0;var e=a(94),f=d(e),g=a(95),h=d(g),i=c.parseUrl=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='<a href="'+a+'"></a>',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;h<b.length;h++)g[b[h]]=c[b[h]];return"http:"===g.protocol&&(g.host=g.host.replace(/:80$/,"")),"https:"===g.protocol&&(g.host=g.host.replace(/:443$/,"")),d&&f["default"].body.removeChild(e),g};c.getAbsoluteURL=function(a){if(!a.match(/^https?:\/\//)){var b=f["default"].createElement("div");b.innerHTML='<a href="'+a+'">x</a>',a=b.firstChild.href}return a},c.getFileExtension=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""},c.isCrossOrigin=function(a){var b=h["default"].location,c=i(a);return(":"===c.protocol?b.protocol:c.protocol)+c.host!==b.protocol+b.host}},{94:94,95:95}],93:[function(b,c,d){"use strict";function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a){return a&&a.__esModule?a:{"default":a}}function g(a,b,c){var d=void 0;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),g.getPlayers()[a])return b&&O["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&g.getPlayers()[a].ready(c),g.getPlayers()[a];d=Q.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");if(d.player||x["default"].players[d.playerId])return d.player||x["default"].players[d.playerId];b=b||{},g.hooks("beforesetup").forEach(function(a){var c=a(d,(0,B["default"])(b));if(!(0,V.isObject)(c)||Array.isArray(c))return void O["default"].error("please return an object in beforesetup hooks");b=(0,B["default"])(b,c)});var e=r["default"].getComponent("Player"),f=new e(d,b,c);return g.hooks("setup").forEach(function(a){return a(f)}),f}d.__esModule=!0;var h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},i=b(95),j=f(i),k=b(94),l=f(k),m=b(56),n=e(m),o=b(89),p=e(o),q=b(5),r=f(q),s=b(42),t=f(s),u=b(82),v=e(u),w=b(51),x=f(w),y=b(52),z=f(y),A=b(87),B=f(A),C=b(83),D=e(C),E=b(72),F=f(E),G=b(64),H=f(G),I=b(77),J=f(I),K=b(90),L=b(84),M=f(L),N=b(86),O=f(N),P=b(81),Q=e(P),R=b(78),S=e(R),T=b(92),U=e(T),V=b(88),W=b(80),X=f(W),Y=b(43),Z=f(Y),$=b(99),_=f($),aa=b(62),ba=f(aa);if("undefined"==typeof HTMLVideoElement&&Q.isReal()&&(l["default"].createElement("video"),l["default"].createElement("audio"),l["default"].createElement("track")),g.hooks_={},g.hooks=function(a,b){return g.hooks_[a]=g.hooks_[a]||[],b&&(g.hooks_[a]=g.hooks_[a].concat(b)),g.hooks_[a]},g.hook=function(a,b){g.hooks(a,b)},g.removeHook=function(a,b){var c=g.hooks(a).indexOf(b);return!(c<=-1)&&(g.hooks_[a]=g.hooks_[a].slice(),g.hooks_[a].splice(c,1),!0)},j["default"].VIDEOJS_NO_DYNAMIC_STYLE!==!0&&Q.isReal()){var ca=Q.$(".vjs-styles-defaults");if(!ca){ca=p.createStyleElement("vjs-styles-defaults");var da=Q.$("head");da&&da.insertBefore(ca,da.firstChild),p.setTextContent(ca,"\n      .video-js {\n        width: 300px;\n        height: 150px;\n      }\n\n      .vjs-fluid {\n        padding-top: 56.25%\n      }\n    ")}}n.autoSetupTimeout(1,g),g.VERSION="5.19.2",g.options=x["default"].prototype.options_,g.getPlayers=function(){return x["default"].players},g.players=x["default"].players,g.getComponent=r["default"].getComponent,g.registerComponent=function(a,b){ba["default"].isTech(b)&&O["default"].warn("The "+a+" tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)"),r["default"].registerComponent.call(r["default"],a,b)},g.getTech=ba["default"].getTech,g.registerTech=ba["default"].registerTech,g.browser=S,g.TOUCH_ENABLED=S.TOUCH_ENABLED,g.extend=Z["default"],g.mergeOptions=B["default"],g.bind=D.bind,g.plugin=z["default"],g.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),g.options.languages=(0,B["default"])(g.options.languages,(c={},c[a]=b,c)),g.options.languages[a]},g.log=O["default"],g.createTimeRange=g.createTimeRanges=K.createTimeRanges,g.formatTime=M["default"],g.parseUrl=U.parseUrl,g.isCrossOrigin=U.isCrossOrigin,g.EventTarget=t["default"],g.on=v.on,g.one=v.one,g.off=v.off,g.trigger=v.trigger,g.xhr=_["default"],g.TextTrack=F["default"],g.AudioTrack=H["default"],g.VideoTrack=J["default"],g.isEl=Q.isEl,g.isTextNode=Q.isTextNode,g.createEl=Q.createEl,g.hasClass=Q.hasElClass,g.addClass=Q.addElClass,g.removeClass=Q.removeElClass,g.toggleClass=Q.toggleElClass,g.setAttributes=Q.setElAttributes,g.getAttributes=Q.getElAttributes,g.emptyEl=Q.emptyEl,g.appendContent=Q.appendContent,g.insertContent=Q.insertContent,g.computedStyle=X["default"],"function"==typeof a&&a.amd?a("videojs",[],function(){return g}):"object"===(void 0===d?"undefined":h(d))&&"object"===(void 0===c?"undefined":h(c))&&(c.exports=g),d["default"]=g},{42:42,43:43,5:5,51:51,52:52,56:56,62:62,64:64,72:72,77:77,78:78,80:80,81:81,82:82,83:83,84:84,86:86,87:87,88:88,89:89,90:90,92:92,94:94,95:95,99:99}],94:[function(a,b,c){(function(c){var d=void 0!==c?c:"undefined"!=typeof window?window:{},e=a(96);if("undefined"!=typeof document)b.exports=document;else{var f=d["__GLOBAL_DOCUMENT_CACHE@4"];f||(f=d["__GLOBAL_DOCUMENT_CACHE@4"]=e),b.exports=f}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{96:96}],95:[function(a,b,c){(function(a){"undefined"!=typeof window?b.exports=window:void 0!==a?b.exports=a:"undefined"!=typeof self?b.exports=self:b.exports={}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],96:[function(a,b,c){},{}],97:[function(a,b,c){function d(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=d},{}],98:[function(a,b,c){function d(a){return a.replace(/\n\r?\s*/g,"")}b.exports=function(a){for(var b="",c=0;c<arguments.length;c++)b+=d(a[c])+(arguments[c+1]||"");return b}},{}],99:[function(a,b,c){"use strict";function d(a,b){for(var c=0;c<a.length;c++)b(a[c])}function e(a){for(var b in a)if(a.hasOwnProperty(b))return!1;return!0}function f(a,b,c){var d=a;return l(b)?(c=b,"string"==typeof a&&(d={uri:a})):d=n(b,{uri:a}),d.callback=c,d}function g(a,b,c){return b=f(a,b,c),h(b)}function h(a){function b(){4===k.readyState&&setTimeout(f,0)}function c(){var a=void 0;if(a=k.response?k.response:k.responseText||i(k),u)try{a=JSON.parse(a)}catch(b){}return a}function d(a){return clearTimeout(o),a instanceof Error||(a=new Error(""+(a||"Unknown XMLHttpRequest Error"))),a.statusCode=0,j(a,v)}function f(){if(!n){var b;clearTimeout(o),b=a.useXDR&&void 0===k.status?200:1223===k.status?204:k.status;var d=v,e=null;return 0!==b?(d={body:c(),statusCode:b,method:q,headers:{},url:p,rawRequest:k},k.getAllResponseHeaders&&(d.headers=m(k.getAllResponseHeaders()))):e=new Error("Internal XMLHttpRequest Error"),j(e,d,d.body)}}
if("undefined"==typeof a.callback)throw new Error("callback argument missing");var h=!1,j=function(b,c,d){h||(h=!0,a.callback(b,c,d))},k=a.xhr||null;k||(k=a.cors||a.useXDR?new g.XDomainRequest:new g.XMLHttpRequest);var l,n,o,p=k.url=a.uri||a.url,q=k.method=a.method||"GET",r=a.body||a.data,s=k.headers=a.headers||{},t=!!a.sync,u=!1,v={body:void 0,headers:{},statusCode:0,method:q,url:p,rawRequest:k};if("json"in a&&a.json!==!1&&(u=!0,s.accept||s.Accept||(s.Accept="application/json"),"GET"!==q&&"HEAD"!==q&&(s["content-type"]||s["Content-Type"]||(s["Content-Type"]="application/json"),r=JSON.stringify(a.json===!0?r:a.json))),k.onreadystatechange=b,k.onload=f,k.onerror=d,k.onprogress=function(){},k.onabort=function(){n=!0},k.ontimeout=d,k.open(q,p,!t,a.username,a.password),t||(k.withCredentials=!!a.withCredentials),!t&&a.timeout>0&&(o=setTimeout(function(){if(!n){n=!0,k.abort("timeout");var a=new Error("XMLHttpRequest timeout");a.code="ETIMEDOUT",d(a)}},a.timeout)),k.setRequestHeader)for(l in s)s.hasOwnProperty(l)&&k.setRequestHeader(l,s[l]);else if(a.headers&&!e(a.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in a&&(k.responseType=a.responseType),"beforeSend"in a&&"function"==typeof a.beforeSend&&a.beforeSend(k),k.send(r||null),k}function i(a){if("document"===a.responseType)return a.responseXML;var b=a.responseXML&&"parsererror"===a.responseXML.documentElement.nodeName;return""!==a.responseType||b?null:a.responseXML}function j(){}var k=a(95),l=a(100),m=a(103),n=a(104);b.exports=g,g.XMLHttpRequest=k.XMLHttpRequest||j,g.XDomainRequest="withCredentials"in new g.XMLHttpRequest?g.XMLHttpRequest:k.XDomainRequest,d(["get","put","post","patch","head","delete"],function(a){g["delete"===a?"del":a]=function(b,c,d){return c=f(b,c,d),c.method=a.toUpperCase(),h(c)}})},{100:100,103:103,104:104,95:95}],100:[function(a,b,c){function d(a){var b=e.call(a);return"[object Function]"===b||"function"==typeof a&&"[object RegExp]"!==b||"undefined"!=typeof window&&(a===window.setTimeout||a===window.alert||a===window.confirm||a===window.prompt)}b.exports=d;var e=Object.prototype.toString},{}],101:[function(a,b,c){function d(a,b,c){if(!h(b))throw new TypeError("iterator must be a function");arguments.length<3&&(c=this),"[object Array]"===i.call(a)?e(a,b,c):"string"==typeof a?f(a,b,c):g(a,b,c)}function e(a,b,c){for(var d=0,e=a.length;d<e;d++)j.call(a,d)&&b.call(c,a[d],d,a)}function f(a,b,c){for(var d=0,e=a.length;d<e;d++)b.call(c,a.charAt(d),d,a)}function g(a,b,c){for(var d in a)j.call(a,d)&&b.call(c,a[d],d,a)}var h=a(100);b.exports=d;var i=Object.prototype.toString,j=Object.prototype.hasOwnProperty},{100:100}],102:[function(a,b,c){function d(a){return a.replace(/^\s*|\s*$/g,"")}c=b.exports=d,c.left=function(a){return a.replace(/^\s*/,"")},c.right=function(a){return a.replace(/\s*$/,"")}},{}],103:[function(a,b,c){var d=a(102),e=a(101),f=function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.exports=function(a){if(!a)return{};var b={};return e(d(a).split("\n"),function(a){var c=a.indexOf(":"),e=d(a.slice(0,c)).toLowerCase(),g=d(a.slice(c+1));"undefined"==typeof b[e]?b[e]=g:f(b[e])?b[e].push(g):b[e]=[b[e],g]}),b}},{101:101,102:102}],104:[function(a,b,c){function d(){for(var a={},b=0;b<arguments.length;b++){var c=arguments[b];for(var d in c)e.call(c,d)&&(a[d]=c[d])}return a}b.exports=d;var e=Object.prototype.hasOwnProperty},{}],105:[function(a,b,c){var d=a(109),e=b.exports={WebVTT:a(106).WebVTT,VTTCue:a(107).VTTCue,VTTRegion:a(108).VTTRegion};d.vttjs=e,d.WebVTT=e.WebVTT;var f=e.VTTCue,g=e.VTTRegion,h=d.VTTCue,i=d.VTTRegion;e.shim=function(){d.VTTCue=f,d.VTTRegion=g},e.restore=function(){d.VTTCue=h,d.VTTRegion=i},d.VTTCue||e.shim()},{106:106,107:107,108:108,109:109}],106:[function(a,b,c){!function(a){function b(a,b){this.name="ParsingError",this.code=a.code,this.message=b||a.message}function c(a){function b(a,b,c,d){return 3600*(0|a)+60*(0|b)+(0|c)+(0|d)/1e3}var c=a.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return c?c[3]?b(c[1],c[2],c[3].replace(":",""),c[4]):c[1]>59?b(c[1],c[2],0,c[4]):b(0,c[1],c[2],c[4]):null}function d(){this.values=p(null)}function e(a,b,c,d){var e=d?a.split(d):[a];for(var f in e)if("string"==typeof e[f]){var g=e[f].split(c);if(2===g.length){var h=g[0],i=g[1];b(h,i)}}}function f(a,f,g){function h(){var d=c(a);if(null===d)throw new b(b.Errors.BadTimeStamp,"Malformed timestamp: "+k);return a=a.replace(/^[^\sa-zA-Z-]+/,""),d}function i(a,b){var c=new d;e(a,function(a,b){switch(a){case"region":for(var d=g.length-1;d>=0;d--)if(g[d].id===b){c.set(a,g[d].region);break}break;case"vertical":c.alt(a,b,["rl","lr"]);break;case"line":var e=b.split(","),f=e[0];c.integer(a,f),c.percent(a,f)&&c.set("snapToLines",!1),c.alt(a,f,["auto"]),2===e.length&&c.alt("lineAlign",e[1],["start","middle","end"]);break;case"position":e=b.split(","),c.percent(a,e[0]),2===e.length&&c.alt("positionAlign",e[1],["start","middle","end"]);break;case"size":c.percent(a,b);break;case"align":c.alt(a,b,["start","middle","end","left","right"])}},/:/,/\s/),b.region=c.get("region",null),b.vertical=c.get("vertical",""),b.line=c.get("line","auto"),b.lineAlign=c.get("lineAlign","start"),b.snapToLines=c.get("snapToLines",!0),b.size=c.get("size",100),b.align=c.get("align","middle"),b.position=c.get("position",{start:0,left:0,middle:50,end:100,right:100},b.align),b.positionAlign=c.get("positionAlign",{start:"start",left:"start",middle:"middle",end:"end",right:"end"},b.align)}function j(){a=a.replace(/^\s+/,"")}var k=a;if(j(),f.startTime=h(),j(),"-->"!==a.substr(0,3))throw new b(b.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '-->'): "+k);a=a.substr(3),j(),f.endTime=h(),j(),i(a,f)}function g(a,b){function d(){function a(a){return b=b.substr(a.length),a}if(!b)return null;var c=b.match(/^([^<]*)(<[^>]+>?)?/);return a(c[1]?c[1]:c[2])}function e(a){return q[a]}function f(a){for(;o=a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)a=a.replace(o[0],e);return a}function g(a,b){return!t[b.localName]||t[b.localName]===a.localName}function h(b,c){var d=r[b];if(!d)return null;var e=a.document.createElement(d);e.localName=d;var f=s[b];return f&&c&&(e[f]=c.trim()),e}for(var i,j=a.document.createElement("div"),k=j,l=[];null!==(i=d());)if("<"!==i[0])k.appendChild(a.document.createTextNode(f(i)));else{if("/"===i[1]){l.length&&l[l.length-1]===i.substr(2).replace(">","")&&(l.pop(),k=k.parentNode);continue}var m,n=c(i.substr(1,i.length-2));if(n){m=a.document.createProcessingInstruction("timestamp",n),k.appendChild(m);continue}var o=i.match(/^<([^.\s\/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!o)continue;if(m=h(o[1],o[3]),!m)continue;if(!g(k,m))continue;o[2]&&(m.className=o[2].substr(1).replace("."," ")),l.push(o[1]),k.appendChild(m),k=m}return j}function h(a){for(var b=0;b<u.length;b++){var c=u[b];if(a>=c[0]&&a<=c[1])return!0}return!1}function i(a){function b(a,b){for(var c=b.childNodes.length-1;c>=0;c--)a.push(b.childNodes[c])}function c(a){if(!a||!a.length)return null;var d=a.pop(),e=d.textContent||d.innerText;if(e){var f=e.match(/^.*(\n|\r)/);return f?(a.length=0,f[0]):e}return"ruby"===d.tagName?c(a):d.childNodes?(b(a,d),c(a)):void 0}var d,e=[],f="";if(!a||!a.childNodes)return"ltr";for(b(e,a);f=c(e);)for(var g=0;g<f.length;g++)if(d=f.charCodeAt(g),h(d))return"rtl";return"ltr"}function j(a){if("number"==typeof a.line&&(a.snapToLines||a.line>=0&&a.line<=100))return a.line;if(!a.track||!a.track.textTrackList||!a.track.textTrackList.mediaElement)return-1;for(var b=a.track,c=b.textTrackList,d=0,e=0;e<c.length&&c[e]!==b;e++)"showing"===c[e].mode&&d++;return++d*-1}function k(){}function l(a,b,c){var d=/MSIE\s8\.0/.test(navigator.userAgent),e="rgba(255, 255, 255, 1)",f="rgba(0, 0, 0, 0.8)";d&&(e="rgb(255, 255, 255)",f="rgb(0, 0, 0)"),k.call(this),this.cue=b,this.cueDiv=g(a,b.text);var h={color:e,backgroundColor:f,position:"relative",left:0,right:0,top:0,bottom:0,display:"inline"};d||(h.writingMode=""===b.vertical?"horizontal-tb":"lr"===b.vertical?"vertical-lr":"vertical-rl",h.unicodeBidi="plaintext"),this.applyStyles(h,this.cueDiv),this.div=a.document.createElement("div"),h={textAlign:"middle"===b.align?"center":b.align,font:c.font,whiteSpace:"pre-line",position:"absolute"},d||(h.direction=i(this.cueDiv),h.writingMode=""===b.vertical?"horizontal-tb":"lr"===b.vertical?"vertical-lr":"vertical-rl".stylesunicodeBidi="plaintext"),this.applyStyles(h),this.div.appendChild(this.cueDiv);var j=0;switch(b.positionAlign){case"start":j=b.position;break;case"middle":j=b.position-b.size/2;break;case"end":j=b.position-b.size}""===b.vertical?this.applyStyles({left:this.formatStyle(j,"%"),width:this.formatStyle(b.size,"%")}):this.applyStyles({top:this.formatStyle(j,"%"),height:this.formatStyle(b.size,"%")}),this.move=function(a){this.applyStyles({top:this.formatStyle(a.top,"px"),bottom:this.formatStyle(a.bottom,"px"),left:this.formatStyle(a.left,"px"),right:this.formatStyle(a.right,"px"),height:this.formatStyle(a.height,"px"),width:this.formatStyle(a.width,"px")})}}function m(a){var b,c,d,e,f=/MSIE\s8\.0/.test(navigator.userAgent);if(a.div){c=a.div.offsetHeight,d=a.div.offsetWidth,e=a.div.offsetTop;var g=(g=a.div.childNodes)&&(g=g[0])&&g.getClientRects&&g.getClientRects();a=a.div.getBoundingClientRect(),b=g?Math.max(g[0]&&g[0].height||0,a.height/g.length):0}this.left=a.left,this.right=a.right,this.top=a.top||e,this.height=a.height||c,this.bottom=a.bottom||e+(a.height||c),this.width=a.width||d,this.lineHeight=void 0!==b?b:a.lineHeight,f&&!this.lineHeight&&(this.lineHeight=13)}function n(a,b,c,d){function e(a,b){for(var e,f=new m(a),g=1,h=0;h<b.length;h++){for(;a.overlapsOppositeAxis(c,b[h])||a.within(c)&&a.overlapsAny(d);)a.move(b[h]);if(a.within(c))return a;var i=a.intersectPercentage(c);g>i&&(e=new m(a),g=i),a=new m(f)}return e||f}var f=new m(b),g=b.cue,h=j(g),i=[];if(g.snapToLines){var k;switch(g.vertical){case"":i=["+y","-y"],k="height";break;case"rl":i=["+x","-x"],k="width";break;case"lr":i=["-x","+x"],k="width"}var l=f.lineHeight,n=l*Math.round(h),o=c[k]+l,p=i[0];Math.abs(n)>o&&(n=n<0?-1:1,n*=Math.ceil(o/l)*l),h<0&&(n+=""===g.vertical?c.height:c.width,i=i.reverse()),f.move(p,n)}else{var q=f.lineHeight/c.height*100;switch(g.lineAlign){case"middle":h-=q/2;break;case"end":h-=q}switch(g.vertical){case"":b.applyStyles({top:b.formatStyle(h,"%")});break;case"rl":b.applyStyles({left:b.formatStyle(h,"%")});break;case"lr":b.applyStyles({right:b.formatStyle(h,"%")})}i=["+y","-x","+x","-y"],f=new m(b)}var r=e(f,i);b.move(r.toCSSCompatValues(c))}function o(){}var p=Object.create||function(){function a(){}return function(b){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return a.prototype=b,new a}}();b.prototype=p(Error.prototype),b.prototype.constructor=b,b.Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},d.prototype={set:function(a,b){this.get(a)||""===b||(this.values[a]=b)},get:function(a,b,c){return c?this.has(a)?this.values[a]:b[c]:this.has(a)?this.values[a]:b},has:function(a){return a in this.values},alt:function(a,b,c){for(var d=0;d<c.length;++d)if(b===c[d]){this.set(a,b);break}},integer:function(a,b){/^-?\d+$/.test(b)&&this.set(a,parseInt(b,10))},percent:function(a,b){return!!(b.match(/^([\d]{1,3})(\.[\d]*)?%$/)&&(b=parseFloat(b),b>=0&&b<=100))&&(this.set(a,b),!0)}};var q={"&amp;":"&","&lt;":"<","&gt;":">","&lrm;":"‎","&rlm;":"‏","&nbsp;":" "},r={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},s={v:"title",lang:"lang"},t={rt:"ruby"},u=[[1470,1470],[1472,1472],[1475,1475],[1478,1478],[1488,1514],[1520,1524],[1544,1544],[1547,1547],[1549,1549],[1563,1563],[1566,1610],[1645,1647],[1649,1749],[1765,1766],[1774,1775],[1786,1805],[1807,1808],[1810,1839],[1869,1957],[1969,1969],[1984,2026],[2036,2037],[2042,2042],[2048,2069],[2074,2074],[2084,2084],[2088,2088],[2096,2110],[2112,2136],[2142,2142],[2208,2208],[2210,2220],[8207,8207],[64285,64285],[64287,64296],[64298,64310],[64312,64316],[64318,64318],[64320,64321],[64323,64324],[64326,64449],[64467,64829],[64848,64911],[64914,64967],[65008,65020],[65136,65140],[65142,65276],[67584,67589],[67592,67592],[67594,67637],[67639,67640],[67644,67644],[67647,67669],[67671,67679],[67840,67867],[67872,67897],[67903,67903],[67968,68023],[68030,68031],[68096,68096],[68112,68115],[68117,68119],[68121,68147],[68160,68167],[68176,68184],[68192,68223],[68352,68405],[68416,68437],[68440,68466],[68472,68479],[68608,68680],[126464,126467],[126469,126495],[126497,126498],[126500,126500],[126503,126503],[126505,126514],[126516,126519],[126521,126521],[126523,126523],[126530,126530],[126535,126535],[126537,126537],[126539,126539],[126541,126543],[126545,126546],[126548,126548],[126551,126551],[126553,126553],[126555,126555],[126557,126557],[126559,126559],[126561,126562],[126564,126564],[126567,126570],[126572,126578],[126580,126583],[126585,126588],[126590,126590],[126592,126601],[126603,126619],[126625,126627],[126629,126633],[126635,126651],[1114109,1114109]];k.prototype.applyStyles=function(a,b){b=b||this.div;for(var c in a)a.hasOwnProperty(c)&&(b.style[c]=a[c])},k.prototype.formatStyle=function(a,b){return 0===a?0:a+b},l.prototype=p(k.prototype),l.prototype.constructor=l,m.prototype.move=function(a,b){switch(b=void 0!==b?b:this.lineHeight,a){case"+x":this.left+=b,this.right+=b;break;case"-x":this.left-=b,this.right-=b;break;case"+y":this.top+=b,this.bottom+=b;break;case"-y":this.top-=b,this.bottom-=b}},m.prototype.overlaps=function(a){return this.left<a.right&&this.right>a.left&&this.top<a.bottom&&this.bottom>a.top},m.prototype.overlapsAny=function(a){for(var b=0;b<a.length;b++)if(this.overlaps(a[b]))return!0;return!1},m.prototype.within=function(a){return this.top>=a.top&&this.bottom<=a.bottom&&this.left>=a.left&&this.right<=a.right},m.prototype.overlapsOppositeAxis=function(a,b){switch(b){case"+x":return this.left<a.left;case"-x":return this.right>a.right;case"+y":return this.top<a.top;case"-y":return this.bottom>a.bottom}},m.prototype.intersectPercentage=function(a){return Math.max(0,Math.min(this.right,a.right)-Math.max(this.left,a.left))*Math.max(0,Math.min(this.bottom,a.bottom)-Math.max(this.top,a.top))/(this.height*this.width)},m.prototype.toCSSCompatValues=function(a){return{top:this.top-a.top,bottom:a.bottom-this.bottom,left:this.left-a.left,right:a.right-this.right,height:this.height,width:this.width}},m.getSimpleBoxPosition=function(a){var b=a.div?a.div.offsetHeight:a.tagName?a.offsetHeight:0,c=a.div?a.div.offsetWidth:a.tagName?a.offsetWidth:0,d=a.div?a.div.offsetTop:a.tagName?a.offsetTop:0;return a=a.div?a.div.getBoundingClientRect():a.tagName?a.getBoundingClientRect():a,{left:a.left,right:a.right,top:a.top||d,height:a.height||b,bottom:a.bottom||d+(a.height||b),width:a.width||c}},o.StringDecoder=function(){return{decode:function(a){if(!a)return"";if("string"!=typeof a)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(a))}}},o.convertCueToDOMTree=function(a,b){return a&&b?g(a,b):null};o.processCues=function(a,b,c){function d(a){for(var b=0;b<a.length;b++)if(a[b].hasBeenReset||!a[b].displayState)return!0;return!1}if(!a||!b||!c)return null;for(;c.firstChild;)c.removeChild(c.firstChild);var e=a.document.createElement("div");if(e.style.position="absolute",e.style.left="0",e.style.right="0",e.style.top="0",e.style.bottom="0",e.style.margin="1.5%",c.appendChild(e),d(b)){var f=[],g=m.getSimpleBoxPosition(e),h=Math.round(.05*g.height*100)/100,i={font:h+"px sans-serif"};!function(){for(var c,d,h=0;h<b.length;h++)d=b[h],c=new l(a,d,i),e.appendChild(c.div),n(a,c,g,f),d.displayState=c.div,f.push(m.getSimpleBoxPosition(c))}()}else for(var j=0;j<b.length;j++)e.appendChild(b[j].displayState)},o.Parser=function(a,b,c){c||(c=b,b={}),b||(b={}),this.window=a,this.vttjs=b,this.state="INITIAL",this.buffer="",this.decoder=c||new TextDecoder("utf8"),this.regionList=[]},o.Parser.prototype={reportOrThrowError:function(a){if(!(a instanceof b))throw a;this.onparsingerror&&this.onparsingerror(a)},parse:function(a){function g(){for(var a=k.buffer,b=0;b<a.length&&"\r"!==a[b]&&"\n"!==a[b];)++b;var c=a.substr(0,b);return"\r"===a[b]&&++b,"\n"===a[b]&&++b,k.buffer=a.substr(b),c}function h(a){var b=new d;if(e(a,function(a,c){switch(a){case"id":b.set(a,c);break;case"width":b.percent(a,c);break;case"lines":b.integer(a,c);break;case"regionanchor":case"viewportanchor":var e=c.split(",");if(2!==e.length)break;var f=new d;if(f.percent("x",e[0]),f.percent("y",e[1]),!f.has("x")||!f.has("y"))break;b.set(a+"X",f.get("x")),b.set(a+"Y",f.get("y"));break;case"scroll":b.alt(a,c,["up"])}},/=/,/\s/),b.has("id")){var c=new(k.vttjs.VTTRegion||k.window.VTTRegion);c.width=b.get("width",100),c.lines=b.get("lines",3),c.regionAnchorX=b.get("regionanchorX",0),c.regionAnchorY=b.get("regionanchorY",100),c.viewportAnchorX=b.get("viewportanchorX",0),c.viewportAnchorY=b.get("viewportanchorY",100),c.scroll=b.get("scroll",""),k.onregion&&k.onregion(c),k.regionList.push({id:b.get("id"),region:c})}}function i(a){var b=new d;e(a,function(a,d){switch(a){case"MPEGT":b.integer(a+"S",d);break;case"LOCA":b.set(a+"L",c(d))}},/[^\d]:/,/,/),k.ontimestampmap&&k.ontimestampmap({MPEGTS:b.get("MPEGTS"),LOCAL:b.get("LOCAL")})}function j(a){a.match(/X-TIMESTAMP-MAP/)?e(a,function(a,b){switch(a){case"X-TIMESTAMP-MAP":i(b)}},/=/):e(a,function(a,b){switch(a){case"Region":h(b)}},/:/)}var k=this;a&&(k.buffer+=k.decoder.decode(a,{stream:!0}));try{var l;if("INITIAL"===k.state){if(!/\r\n|\n/.test(k.buffer))return this;l=g();var m=l.match(/^WEBVTT([ \t].*)?$/);if(!m||!m[0])throw new b(b.Errors.BadSignature);k.state="HEADER"}for(var n=!1;k.buffer;){if(!/\r\n|\n/.test(k.buffer))return this;switch(n?n=!1:l=g(),k.state){case"HEADER":/:/.test(l)?j(l):l||(k.state="ID");continue;case"NOTE":l||(k.state="ID");continue;case"ID":if(/^NOTE($|[ \t])/.test(l)){k.state="NOTE";break}if(!l)continue;if(k.cue=new(k.vttjs.VTTCue||k.window.VTTCue)(0,0,""),k.state="CUE",l.indexOf("-->")===-1){k.cue.id=l;continue}case"CUE":try{f(l,k.cue,k.regionList)}catch(o){k.reportOrThrowError(o),k.cue=null,k.state="BADCUE";continue}k.state="CUETEXT";continue;case"CUETEXT":var p=l.indexOf("-->")!==-1;if(!l||p&&(n=!0)){k.oncue&&k.oncue(k.cue),k.cue=null,k.state="ID";continue}k.cue.text&&(k.cue.text+="\n"),k.cue.text+=l;continue;case"BADCUE":l||(k.state="ID");continue}}}catch(o){k.reportOrThrowError(o),"CUETEXT"===k.state&&k.cue&&k.oncue&&k.oncue(k.cue),k.cue=null,k.state="INITIAL"===k.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var a=this;try{if(a.buffer+=a.decoder.decode(),(a.cue||"HEADER"===a.state)&&(a.buffer+="\n\n",a.parse()),"INITIAL"===a.state)throw new b(b.Errors.BadSignature)}catch(c){a.reportOrThrowError(c)}return a.onflush&&a.onflush(),this}},a.WebVTT=o}(this,this.vttjs)},{}],107:[function(a,b,c){!function(a,b){function c(a){return"string"==typeof a&&(!!g[a.toLowerCase()]&&a.toLowerCase())}function d(a){return"string"==typeof a&&(!!h[a.toLowerCase()]&&a.toLowerCase())}function e(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)a[d]=c[d]}return a}function f(a,b,f){var g=this,h=/MSIE\s8\.0/.test(navigator.userAgent),i={};h?g=document.createElement("custom"):i.enumerable=!0,g.hasBeenReset=!1;var j="",k=!1,l=a,m=b,n=f,o=null,p="",q=!0,r="auto",s="start",t=50,u="middle",v=50,w="middle";if(Object.defineProperty(g,"id",e({},i,{get:function(){return j},set:function(a){j=""+a}})),Object.defineProperty(g,"pauseOnExit",e({},i,{get:function(){return k},set:function(a){k=!!a}})),Object.defineProperty(g,"startTime",e({},i,{get:function(){return l},set:function(a){if("number"!=typeof a)throw new TypeError("Start time must be set to a number.");l=a,this.hasBeenReset=!0}})),Object.defineProperty(g,"endTime",e({},i,{get:function(){return m},set:function(a){if("number"!=typeof a)throw new TypeError("End time must be set to a number.");m=a,this.hasBeenReset=!0}})),Object.defineProperty(g,"text",e({},i,{get:function(){return n},set:function(a){n=""+a,this.hasBeenReset=!0}})),Object.defineProperty(g,"region",e({},i,{get:function(){return o},set:function(a){o=a,this.hasBeenReset=!0}})),Object.defineProperty(g,"vertical",e({},i,{get:function(){return p},set:function(a){var b=c(a);if(b===!1)throw new SyntaxError("An invalid or illegal string was specified.");p=b,this.hasBeenReset=!0}})),Object.defineProperty(g,"snapToLines",e({},i,{get:function(){return q},set:function(a){q=!!a,this.hasBeenReset=!0}})),Object.defineProperty(g,"line",e({},i,{get:function(){return r},set:function(a){if("number"!=typeof a&&"auto"!==a)throw new SyntaxError("An invalid number or illegal string was specified.");r=a,this.hasBeenReset=!0}})),Object.defineProperty(g,"lineAlign",e({},i,{get:function(){return s},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");s=b,this.hasBeenReset=!0}})),Object.defineProperty(g,"position",e({},i,{get:function(){return t},set:function(a){if(a<0||a>100)throw new Error("Position must be between 0 and 100.");t=a,this.hasBeenReset=!0}})),Object.defineProperty(g,"positionAlign",e({},i,{get:function(){return u},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");u=b,this.hasBeenReset=!0}})),Object.defineProperty(g,"size",e({},i,{get:function(){return v},set:function(a){if(a<0||a>100)throw new Error("Size must be between 0 and 100.");v=a,this.hasBeenReset=!0}})),Object.defineProperty(g,"align",e({},i,{get:function(){return w},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");w=b,this.hasBeenReset=!0}})),g.displayState=void 0,h)return g}var g={"":!0,lr:!0,rl:!0},h={start:!0,middle:!0,end:!0,left:!0,right:!0};f.prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)},a.VTTCue=a.VTTCue||f,b.VTTCue=f}(this,this.vttjs||{})},{}],108:[function(a,b,c){!function(a,b){function c(a){return"string"==typeof a&&(!!f[a.toLowerCase()]&&a.toLowerCase())}function d(a){return"number"==typeof a&&a>=0&&a<=100}function e(){var a=100,b=3,e=0,f=100,g=0,h=100,i="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return a},set:function(b){if(!d(b))throw new Error("Width must be between 0 and 100.");a=b}},lines:{enumerable:!0,get:function(){return b},set:function(a){if("number"!=typeof a)throw new TypeError("Lines must be set to a number.");b=a}},regionAnchorY:{enumerable:!0,get:function(){return f},set:function(a){if(!d(a))throw new Error("RegionAnchorX must be between 0 and 100.");f=a}},regionAnchorX:{enumerable:!0,get:function(){return e},set:function(a){if(!d(a))throw new Error("RegionAnchorY must be between 0 and 100.");e=a}},viewportAnchorY:{enumerable:!0,get:function(){return h},set:function(a){if(!d(a))throw new Error("ViewportAnchorY must be between 0 and 100.");h=a}},viewportAnchorX:{enumerable:!0,get:function(){return g},set:function(a){if(!d(a))throw new Error("ViewportAnchorX must be between 0 and 100.");g=a}},scroll:{enumerable:!0,get:function(){return i},set:function(a){var b=c(a);if(b===!1)throw new SyntaxError("An invalid or illegal string was specified.");i=b}}})}var f={"":!0,up:!0};a.VTTRegion=a.VTTRegion||e,b.VTTRegion=e}(this,this.vttjs||{})},{}],109:[function(a,b,c){arguments[4][95][0].apply(c,arguments)},{95:95}]},{},[93])(93)});(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.videojsContribHls=f()}})(function(){var define,module,exports;return(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _slicedToArray=(function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i['return'])_i['return']();}finally{if(_d)throw _e;}}return _arr;}return function(arr,i){if(Array.isArray(arr)){return arr;}else if(Symbol.iterator in Object(arr)){return sliceIterator(arr,i);}else{throw new TypeError('Invalid attempt to destructure non-iterable instance');}};})();function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var findAdCue=function findAdCue(track,mediaTime){var cues=track.cues;for(var i=0;i<cues.length;i++){var cue=cues[i];if(mediaTime>=cue.adStartTime&&mediaTime<=cue.adEndTime){return cue;}}
return null;};var updateAdCues=function updateAdCues(media,track){var offset=arguments.length<=2||arguments[2]===undefined?0:arguments[2];if(!media.segments){return;}
var mediaTime=offset;var cue=undefined;for(var i=0;i<media.segments.length;i++){var segment=media.segments[i];if(!cue){cue=findAdCue(track,mediaTime+segment.duration/2);}
if(cue){if('cueIn'in segment){cue.endTime=mediaTime;cue.adEndTime=mediaTime;mediaTime+=segment.duration;cue=null;continue;}
if(mediaTime<cue.endTime){mediaTime+=segment.duration;continue;}
cue.endTime+=segment.duration;}else{if('cueOut'in segment){cue=new _globalWindow2['default'].VTTCue(mediaTime,mediaTime+segment.duration,segment.cueOut);cue.adStartTime=mediaTime;cue.adEndTime=mediaTime+parseFloat(segment.cueOut);track.addCue(cue);}
if('cueOutCont'in segment){var adOffset=undefined;var adTotal=undefined;var _segment$cueOutCont$split$map=segment.cueOutCont.split('/').map(parseFloat);var _segment$cueOutCont$split$map2=_slicedToArray(_segment$cueOutCont$split$map,2);adOffset=_segment$cueOutCont$split$map2[0];adTotal=_segment$cueOutCont$split$map2[1];cue=new _globalWindow2['default'].VTTCue(mediaTime,mediaTime+segment.duration,'');cue.adStartTime=mediaTime-adOffset;cue.adEndTime=cue.adStartTime+adTotal;track.addCue(cue);}}
mediaTime+=segment.duration;}};exports['default']={updateAdCues:updateAdCues,findAdCue:findAdCue};module.exports=exports['default'];},{"global/window":30}],2:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var textRange=function textRange(range,i){return range.start(i)+'-'+range.end(i);};var formatHexString=function formatHexString(e,i){var value=e.toString(16);return'00'.substring(0,2-value.length)+value+(i%2?' ':'');};var formatAsciiString=function formatAsciiString(e){if(e>=0x20&&e<0x7e){return String.fromCharCode(e);}
return'.';};var createTransferableMessage=function createTransferableMessage(message){var transferable={};Object.keys(message).forEach(function(key){var value=message[key];if(ArrayBuffer.isView(value)){transferable[key]={bytes:value.buffer,byteOffset:value.byteOffset,byteLength:value.byteLength};}else{transferable[key]=value;}});return transferable;};var initSegmentId=function initSegmentId(initSegment){var byterange=initSegment.byterange||{length:Infinity,offset:0};return[byterange.length,byterange.offset,initSegment.resolvedUri].join(',');};var utils={hexDump:function hexDump(data){var bytes=Array.prototype.slice.call(data);var step=16;var result='';var hex=undefined;var ascii=undefined;for(var j=0;j<bytes.length/step;j++){hex=bytes.slice(j*step,j*step+step).map(formatHexString).join('');ascii=bytes.slice(j*step,j*step+step).map(formatAsciiString).join('');result+=hex+' '+ascii+'\n';}
return result;},tagDump:function tagDump(tag){return utils.hexDump(tag.bytes);},textRanges:function textRanges(ranges){var result='';var i=undefined;for(i=0;i<ranges.length;i++){result+=textRange(ranges,i)+' ';}
return result;},createTransferableMessage:createTransferableMessage,initSegmentId:initSegmentId};exports['default']=utils;module.exports=exports['default'];},{}],3:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports["default"]={GOAL_BUFFER_LENGTH:30};module.exports=exports["default"];},{}],4:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var _aesDecrypter=require('aes-decrypter');var _binUtils=require('./bin-utils');var DecrypterWorker=function DecrypterWorker(self){self.onmessage=function(event){var data=event.data;var encrypted=new Uint8Array(data.encrypted.bytes,data.encrypted.byteOffset,data.encrypted.byteLength);var key=new Uint32Array(data.key.bytes,data.key.byteOffset,data.key.byteLength/4);var iv=new Uint32Array(data.iv.bytes,data.iv.byteOffset,data.iv.byteLength/4);new _aesDecrypter.Decrypter(encrypted,key,iv,function(err,bytes){_globalWindow2['default'].postMessage((0,_binUtils.createTransferableMessage)({source:data.source,decrypted:bytes}),[bytes.buffer]);});};};exports['default']=function(self){return new DecrypterWorker(self);};module.exports=exports['default'];},{"./bin-utils":2,"aes-decrypter":23,"global/window":30}],5:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();var _get=function get(_x2,_x3,_x4){var _again=true;_function:while(_again){var object=_x2,property=_x3,receiver=_x4;_again=false;if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{_x2=parent;_x3=property;_x4=receiver;_again=true;desc=parent=undefined;continue _function;}}else if('value'in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}}};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var _playlistLoader=require('./playlist-loader');var _playlistLoader2=_interopRequireDefault(_playlistLoader);var _segmentLoader=require('./segment-loader');var _segmentLoader2=_interopRequireDefault(_segmentLoader);var _vttSegmentLoader=require('./vtt-segment-loader');var _vttSegmentLoader2=_interopRequireDefault(_vttSegmentLoader);var _ranges=require('./ranges');var _ranges2=_interopRequireDefault(_ranges);var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var _adCueTags=require('./ad-cue-tags');var _adCueTags2=_interopRequireDefault(_adCueTags);var _syncController=require('./sync-controller');var _syncController2=_interopRequireDefault(_syncController);var _videojsContribMediaSourcesEs5CodecUtils=require('videojs-contrib-media-sources/es5/codec-utils');var _webworkify=require('webworkify');var _webworkify2=_interopRequireDefault(_webworkify);var _decrypterWorker=require('./decrypter-worker');var _decrypterWorker2=_interopRequireDefault(_decrypterWorker);var BLACKLIST_DURATION=5*60*1000;var Hls=undefined;var loaderStats=['mediaRequests','mediaRequestsAborted','mediaRequestsTimedout','mediaRequestsErrored','mediaTransferDuration','mediaBytesTransferred'];var sumLoaderStat=function sumLoaderStat(stat){return this.audioSegmentLoader_[stat]+this.mainSegmentLoader_[stat];};var objectChanged=function objectChanged(a,b){if(typeof a!==typeof b){return true;}
if(Object.keys(a).length!==Object.keys(b).length){return true;}
for(var prop in a){if(a[prop]!==b[prop]){return true;}}
return false;};var parseCodecs=function parseCodecs(codecs){var result={codecCount:0,videoCodec:null,videoObjectTypeIndicator:null,audioProfile:null};var parsed=undefined;result.codecCount=codecs.split(',').length;result.codecCount=result.codecCount||2;parsed=/(^|\s|,)+(avc1)([^ ,]*)/i.exec(codecs);if(parsed){result.videoCodec=parsed[2];result.videoObjectTypeIndicator=parsed[3];}
result.audioProfile=/(^|\s|,)+mp4a.[0-9A-Fa-f]+\.([0-9A-Fa-f]+)/i.exec(codecs);result.audioProfile=result.audioProfile&&result.audioProfile[2];return result;};var mapLegacyAvcCodecs_=function mapLegacyAvcCodecs_(codecString){return codecString.replace(/avc1\.(\d+)\.(\d+)/i,function(match){return(0,_videojsContribMediaSourcesEs5CodecUtils.translateLegacyCodecs)([match])[0];});};exports.mapLegacyAvcCodecs_=mapLegacyAvcCodecs_;var mimeTypesForPlaylist_=function mimeTypesForPlaylist_(master,media){var container='mp2t';var codecs={videoCodec:'avc1',videoObjectTypeIndicator:'.4d400d',audioProfile:'2'};var audioGroup=[];var mediaAttributes=undefined;var previousGroup=null;if(!media){return[];}
if(media.segments&&media.segments.length&&media.segments[0].map){container='mp4';}
mediaAttributes=media.attributes||{};if(mediaAttributes.CODECS){(function(){var parsedCodecs=parseCodecs(mediaAttributes.CODECS);Object.keys(parsedCodecs).forEach(function(key){codecs[key]=parsedCodecs[key]||codecs[key];});})();}
if(master.mediaGroups.AUDIO){audioGroup=master.mediaGroups.AUDIO[mediaAttributes.AUDIO];}
for(var groupId in audioGroup){if(previousGroup&&!!audioGroup[groupId].uri!==!!previousGroup.uri){return['video/'+container+'; codecs="'+codecs.videoCodec+codecs.videoObjectTypeIndicator+', mp4a.40.'+codecs.audioProfile+'"','audio/'+container+'; codecs="mp4a.40.'+codecs.audioProfile+'"'];}
previousGroup=audioGroup[groupId];}
if(previousGroup&&previousGroup.uri){return['video/'+container+'; codecs="'+codecs.videoCodec+codecs.videoObjectTypeIndicator+'"','audio/'+container+'; codecs="mp4a.40.'+codecs.audioProfile+'"'];}
return['video/'+container+'; codecs="'+codecs.videoCodec+codecs.videoObjectTypeIndicator+', mp4a.40.'+codecs.audioProfile+'"'];};exports.mimeTypesForPlaylist_=mimeTypesForPlaylist_;var MasterPlaylistController=(function(_videojs$EventTarget){_inherits(MasterPlaylistController,_videojs$EventTarget);function MasterPlaylistController(options){var _this=this;_classCallCheck(this,MasterPlaylistController);_get(Object.getPrototypeOf(MasterPlaylistController.prototype),'constructor',this).call(this);var url=options.url;var withCredentials=options.withCredentials;var mode=options.mode;var tech=options.tech;var bandwidth=options.bandwidth;var externHls=options.externHls;var useCueTags=options.useCueTags;if(!url){throw new Error('A non-empty playlist URL is required');}
Hls=externHls;this.withCredentials=withCredentials;this.tech_=tech;this.hls_=tech.hls;this.mode_=mode;this.useCueTags_=useCueTags;if(this.useCueTags_){this.cueTagsTrack_=this.tech_.addTextTrack('metadata','ad-cues');this.cueTagsTrack_.inBandMetadataTrackDispatchType='';}
this.requestOptions_={withCredentials:this.withCredentials,timeout:null};this.audioGroups_={};this.subtitleGroups_={groups:{},tracks:{}};this.mediaSource=new _videoJs2['default'].MediaSource({mode:mode});this.audioinfo_=null;this.mediaSource.on('audioinfo',this.handleAudioinfoUpdate_.bind(this));this.mediaSource.addEventListener('sourceopen',this.handleSourceOpen_.bind(this));this.seekable_=_videoJs2['default'].createTimeRanges();this.hasPlayed_=function(){return false;};this.syncController_=new _syncController2['default']();this.segmentMetadataTrack_=tech.addRemoteTextTrack({kind:'metadata',label:'segment-metadata'},true).track;this.decrypter_=(0,_webworkify2['default'])(_decrypterWorker2['default']);var segmentLoaderOptions={hls:this.hls_,mediaSource:this.mediaSource,currentTime:this.tech_.currentTime.bind(this.tech_),seekable:function seekable(){return _this.seekable();},seeking:function seeking(){return _this.tech_.seeking();},duration:function duration(){return _this.mediaSource.duration;},hasPlayed:function hasPlayed(){return _this.hasPlayed_();},bandwidth:bandwidth,syncController:this.syncController_,decrypter:this.decrypter_};this.masterPlaylistLoader_=new _playlistLoader2['default'](url,this.hls_,this.withCredentials);this.setupMasterPlaylistLoaderListeners_();this.audioPlaylistLoader_=null;this.subtitlePlaylistLoader_=null;this.mainSegmentLoader_=new _segmentLoader2['default'](_videoJs2['default'].mergeOptions(segmentLoaderOptions,{segmentMetadataTrack:this.segmentMetadataTrack_,loaderType:'main'}));this.audioSegmentLoader_=new _segmentLoader2['default'](_videoJs2['default'].mergeOptions(segmentLoaderOptions,{loaderType:'audio'}));this.subtitleSegmentLoader_=new _vttSegmentLoader2['default'](_videoJs2['default'].mergeOptions(segmentLoaderOptions,{loaderType:'vtt'}));this.setupSegmentLoaderListeners_();loaderStats.forEach(function(stat){_this[stat+'_']=sumLoaderStat.bind(_this,stat);});this.masterPlaylistLoader_.load();}
_createClass(MasterPlaylistController,[{key:'setupMasterPlaylistLoaderListeners_',value:function setupMasterPlaylistLoaderListeners_(){var _this2=this;this.masterPlaylistLoader_.on('loadedmetadata',function(){var media=_this2.masterPlaylistLoader_.media();var requestTimeout=_this2.masterPlaylistLoader_.targetDuration*1.5*1000;if(_this2.masterPlaylistLoader_.isLowestEnabledRendition_()){_this2.requestOptions_.timeout=0;}else{_this2.requestOptions_.timeout=requestTimeout;}
if(media.endList&&_this2.tech_.preload()!=='none'){_this2.mainSegmentLoader_.playlist(media,_this2.requestOptions_);_this2.mainSegmentLoader_.load();}
_this2.fillAudioTracks_();_this2.setupAudio();_this2.fillSubtitleTracks_();_this2.setupSubtitles();try{_this2.setupSourceBuffers_();}catch(e){_videoJs2['default'].log.warn('Failed to create SourceBuffers',e);return _this2.mediaSource.endOfStream('decode');}
_this2.setupFirstPlay();_this2.trigger('audioupdate');_this2.trigger('selectedinitialmedia');});this.masterPlaylistLoader_.on('loadedplaylist',function(){var updatedPlaylist=_this2.masterPlaylistLoader_.media();if(!updatedPlaylist){_this2.initialMedia_=_this2.selectPlaylist();_this2.masterPlaylistLoader_.media(_this2.initialMedia_);return;}
if(_this2.useCueTags_){_this2.updateAdCues_(updatedPlaylist);}
_this2.mainSegmentLoader_.playlist(updatedPlaylist,_this2.requestOptions_);_this2.updateDuration();if(!_this2.tech_.paused()){_this2.mainSegmentLoader_.load();}
if(!updatedPlaylist.endList){(function(){var addSeekableRange=function addSeekableRange(){var seekable=_this2.seekable();if(seekable.length!==0){_this2.mediaSource.addSeekableRange_(seekable.start(0),seekable.end(0));}};if(_this2.duration()!==Infinity){(function(){var onDurationchange=function onDurationchange(){if(_this2.duration()===Infinity){addSeekableRange();}else{_this2.tech_.one('durationchange',onDurationchange);}};_this2.tech_.one('durationchange',onDurationchange);})();}else{addSeekableRange();}})();}});this.masterPlaylistLoader_.on('error',function(){_this2.blacklistCurrentPlaylist(_this2.masterPlaylistLoader_.error);});this.masterPlaylistLoader_.on('mediachanging',function(){_this2.mainSegmentLoader_.abort();_this2.mainSegmentLoader_.pause();});this.masterPlaylistLoader_.on('mediachange',function(){var media=_this2.masterPlaylistLoader_.media();var requestTimeout=_this2.masterPlaylistLoader_.targetDuration*1.5*1000;var activeAudioGroup=undefined;var activeTrack=undefined;if(_this2.masterPlaylistLoader_.isLowestEnabledRendition_()){_this2.requestOptions_.timeout=0;}else{_this2.requestOptions_.timeout=requestTimeout;}
_this2.mainSegmentLoader_.playlist(media,_this2.requestOptions_);_this2.mainSegmentLoader_.load();activeAudioGroup=_this2.activeAudioGroup();activeTrack=activeAudioGroup.filter(function(track){return track.enabled;})[0];if(!activeTrack){_this2.setupAudio();_this2.trigger('audioupdate');}
_this2.setupSubtitles();_this2.tech_.trigger({type:'mediachange',bubbles:true});});this.masterPlaylistLoader_.on('playlistunchanged',function(){var updatedPlaylist=_this2.masterPlaylistLoader_.media();var playlistOutdated=_this2.stuckAtPlaylistEnd_(updatedPlaylist);if(playlistOutdated){_this2.blacklistCurrentPlaylist({message:'Playlist no longer updating.'});_this2.tech_.trigger('playliststuck');}});}},{key:'setupSegmentLoaderListeners_',value:function setupSegmentLoaderListeners_(){var _this3=this;this.mainSegmentLoader_.on('bandwidthupdate',function(){_this3.masterPlaylistLoader_.media(_this3.selectPlaylist());});this.mainSegmentLoader_.on('progress',function(){_this3.trigger('progress');});this.mainSegmentLoader_.on('error',function(){_this3.blacklistCurrentPlaylist(_this3.mainSegmentLoader_.error());});this.mainSegmentLoader_.on('syncinfoupdate',function(){_this3.onSyncInfoUpdate_();});this.audioSegmentLoader_.on('syncinfoupdate',function(){_this3.onSyncInfoUpdate_();});this.audioSegmentLoader_.on('error',function(){_videoJs2['default'].log.warn('Problem encountered with the current alternate audio track'+'. Switching back to default.');_this3.audioSegmentLoader_.abort();_this3.audioPlaylistLoader_=null;_this3.setupAudio();});this.subtitleSegmentLoader_.on('error',this.handleSubtitleError_.bind(this));}},{key:'handleAudioinfoUpdate_',value:function handleAudioinfoUpdate_(event){if(Hls.supportsAudioInfoChange_()||!this.audioInfo_||!objectChanged(this.audioInfo_,event.info)){this.audioInfo_=event.info;return;}
var error='had different audio properties (channels, sample rate, etc.) '+'or changed in some other way.  This behavior is currently '+'unsupported in Firefox 48 and below due to an issue: \n\n'+'https://bugzilla.mozilla.org/show_bug.cgi?id=1247138\n\n';var enabledIndex=this.activeAudioGroup().map(function(track){return track.enabled;}).indexOf(true);var enabledTrack=this.activeAudioGroup()[enabledIndex];var defaultTrack=this.activeAudioGroup().filter(function(track){return track.properties_&&track.properties_['default'];})[0];if(!this.audioPlaylistLoader_){error='The rendition that we tried to switch to '+error+'Unfortunately that means we will have to blacklist '+'the current playlist and switch to another. Sorry!';this.blacklistCurrentPlaylist();}else{error='The audio track \''+enabledTrack.label+'\' that we tried to '+('switch to '+error+' Unfortunately this means we will have to ')+('return you to the main track \''+defaultTrack.label+'\'. Sorry!');defaultTrack.enabled=true;this.activeAudioGroup().splice(enabledIndex,1);this.trigger('audioupdate');}
_videoJs2['default'].log.warn(error);this.setupAudio();}},{key:'mediaSecondsLoaded_',value:function mediaSecondsLoaded_(){return Math.max(this.audioSegmentLoader_.mediaSecondsLoaded+this.mainSegmentLoader_.mediaSecondsLoaded);}},{key:'fillAudioTracks_',value:function fillAudioTracks_(){var master=this.master();var mediaGroups=master.mediaGroups||{};if(!mediaGroups||!mediaGroups.AUDIO||Object.keys(mediaGroups.AUDIO).length===0||this.mode_!=='html5'){mediaGroups.AUDIO={main:{'default':{'default':true}}};}
for(var mediaGroup in mediaGroups.AUDIO){if(!this.audioGroups_[mediaGroup]){this.audioGroups_[mediaGroup]=[];}
for(var label in mediaGroups.AUDIO[mediaGroup]){var properties=mediaGroups.AUDIO[mediaGroup][label];var track=new _videoJs2['default'].AudioTrack({id:label,kind:this.audioTrackKind_(properties),enabled:false,language:properties.language,label:label});track.properties_=properties;this.audioGroups_[mediaGroup].push(track);}}
(this.activeAudioGroup().filter(function(audioTrack){return audioTrack.properties_['default'];})[0]||this.activeAudioGroup()[0]).enabled=true;}},{key:'audioTrackKind_',value:function audioTrackKind_(properties){var kind=properties['default']?'main':'alternative';if(properties.characteristics&&properties.characteristics.indexOf('public.accessibility.describes-video')>=0){kind='main-desc';}
return kind;}},{key:'fillSubtitleTracks_',value:function fillSubtitleTracks_(){var master=this.master();var mediaGroups=master.mediaGroups||{};for(var mediaGroup in mediaGroups.SUBTITLES){if(!this.subtitleGroups_.groups[mediaGroup]){this.subtitleGroups_.groups[mediaGroup]=[];}
for(var label in mediaGroups.SUBTITLES[mediaGroup]){var properties=mediaGroups.SUBTITLES[mediaGroup][label];if(!properties.forced){this.subtitleGroups_.groups[mediaGroup].push(_videoJs2['default'].mergeOptions({id:label},properties));if(typeof this.subtitleGroups_.tracks[label]==='undefined'){var track=this.tech_.addRemoteTextTrack({id:label,kind:'subtitles',enabled:false,language:properties.language,label:label},true).track;this.subtitleGroups_.tracks[label]=track;}}}}}},{key:'load',value:function load(){this.mainSegmentLoader_.load();if(this.audioPlaylistLoader_){this.audioSegmentLoader_.load();}
if(this.subtitlePlaylistLoader_){this.subtitleSegmentLoader_.load();}}},{key:'activeAudioGroup',value:function activeAudioGroup(){var videoPlaylist=this.masterPlaylistLoader_.media();var result=undefined;if(videoPlaylist.attributes&&videoPlaylist.attributes.AUDIO){result=this.audioGroups_[videoPlaylist.attributes.AUDIO];}
return result||this.audioGroups_.main;}},{key:'activeSubtitleGroup_',value:function activeSubtitleGroup_(){var videoPlaylist=this.masterPlaylistLoader_.media();var result=undefined;if(!videoPlaylist){return null;}
if(videoPlaylist.attributes&&videoPlaylist.attributes.SUBTITLES){result=this.subtitleGroups_.groups[videoPlaylist.attributes.SUBTITLES];}
return result||this.subtitleGroups_.groups.main;}},{key:'activeSubtitleTrack_',value:function activeSubtitleTrack_(){for(var trackName in this.subtitleGroups_.tracks){if(this.subtitleGroups_.tracks[trackName].mode==='showing'){return this.subtitleGroups_.tracks[trackName];}}
return null;}},{key:'handleSubtitleError_',value:function handleSubtitleError_(){_videoJs2['default'].log.warn('Problem encountered loading the subtitle track'+'. Switching back to default.');this.subtitleSegmentLoader_.abort();var track=this.activeSubtitleTrack_();if(track){track.mode='disabled';}
this.setupSubtitles();}},{key:'setupAudio',value:function setupAudio(){var _this4=this;var audioGroup=this.activeAudioGroup();var track=audioGroup.filter(function(audioTrack){return audioTrack.enabled;})[0];if(!track){track=audioGroup.filter(function(audioTrack){return audioTrack.properties_['default'];})[0]||audioGroup[0];track.enabled=true;}
if(this.audioPlaylistLoader_){this.audioPlaylistLoader_.dispose();this.audioPlaylistLoader_=null;}
this.audioSegmentLoader_.pause();if(!track.properties_.resolvedUri){this.mainSegmentLoader_.resetEverything();return;}
this.audioSegmentLoader_.resetEverything();this.audioPlaylistLoader_=new _playlistLoader2['default'](track.properties_.resolvedUri,this.hls_,this.withCredentials);this.audioPlaylistLoader_.load();this.audioPlaylistLoader_.on('loadedmetadata',function(){var audioPlaylist=_this4.audioPlaylistLoader_.media();_this4.audioSegmentLoader_.playlist(audioPlaylist,_this4.requestOptions_);if(!_this4.tech_.paused()||audioPlaylist.endList&&_this4.tech_.preload()!=='none'){_this4.audioSegmentLoader_.load();}
if(!audioPlaylist.endList){_this4.audioPlaylistLoader_.trigger('firstplay');}});this.audioPlaylistLoader_.on('loadedplaylist',function(){var updatedPlaylist=undefined;if(_this4.audioPlaylistLoader_){updatedPlaylist=_this4.audioPlaylistLoader_.media();}
if(!updatedPlaylist){_this4.audioPlaylistLoader_.media(_this4.audioPlaylistLoader_.playlists.master.playlists[0]);return;}
_this4.audioSegmentLoader_.playlist(updatedPlaylist,_this4.requestOptions_);});this.audioPlaylistLoader_.on('error',function(){_videoJs2['default'].log.warn('Problem encountered loading the alternate audio track'+'. Switching back to default.');_this4.audioSegmentLoader_.abort();_this4.setupAudio();});}},{key:'setupSubtitles',value:function setupSubtitles(){var _this5=this;var subtitleGroup=this.activeSubtitleGroup_();var track=this.activeSubtitleTrack_();this.subtitleSegmentLoader_.pause();if(!track){if(this.subtitlePlaylistLoader_){this.subtitlePlaylistLoader_.dispose();this.subtitlePlaylistLoader_=null;}
return;}
var properties=subtitleGroup.filter(function(subtitleProperties){return subtitleProperties.id===track.id;})[0];if(!this.subtitlePlaylistLoader_||!this.subtitlePlaylistLoader_.media()||this.subtitlePlaylistLoader_.media().resolvedUri!==properties.resolvedUri){if(this.subtitlePlaylistLoader_){this.subtitlePlaylistLoader_.dispose();}
this.subtitleSegmentLoader_.resetEverything();this.subtitlePlaylistLoader_=new _playlistLoader2['default'](properties.resolvedUri,this.hls_,this.withCredentials);this.subtitlePlaylistLoader_.on('loadedmetadata',function(){var subtitlePlaylist=_this5.subtitlePlaylistLoader_.media();_this5.subtitleSegmentLoader_.playlist(subtitlePlaylist,_this5.requestOptions_);_this5.subtitleSegmentLoader_.track(_this5.activeSubtitleTrack_());if(!_this5.tech_.paused()||subtitlePlaylist.endList&&_this5.tech_.preload()!=='none'){_this5.subtitleSegmentLoader_.load();}});this.subtitlePlaylistLoader_.on('loadedplaylist',function(){var updatedPlaylist=undefined;if(_this5.subtitlePlaylistLoader_){updatedPlaylist=_this5.subtitlePlaylistLoader_.media();}
if(!updatedPlaylist){return;}
_this5.subtitleSegmentLoader_.playlist(updatedPlaylist,_this5.requestOptions_);});this.subtitlePlaylistLoader_.on('error',this.handleSubtitleError_.bind(this));}
if(this.subtitlePlaylistLoader_.media()&&this.subtitlePlaylistLoader_.media().resolvedUri===properties.resolvedUri){this.subtitleSegmentLoader_.load();}else{this.subtitlePlaylistLoader_.load();}}},{key:'fastQualityChange_',value:function fastQualityChange_(){var media=this.selectPlaylist();if(media!==this.masterPlaylistLoader_.media()){this.masterPlaylistLoader_.media(media);this.mainSegmentLoader_.resetLoader();}}},{key:'play',value:function play(){if(this.setupFirstPlay()){return;}
if(this.tech_.ended()){this.tech_.setCurrentTime(0);}
if(this.hasPlayed_()){this.load();}
var seekable=this.tech_.seekable();if(this.tech_.duration()===Infinity){if(this.tech_.currentTime()<seekable.start(0)){return this.tech_.setCurrentTime(seekable.end(seekable.length-1));}}}},{key:'setupFirstPlay',value:function setupFirstPlay(){var seekable=undefined;var media=this.masterPlaylistLoader_.media();if(media&&!this.tech_.paused()&&!this.hasPlayed_()){if(!media.endList){this.trigger('firstplay');seekable=this.seekable();if(seekable.length){this.tech_.setCurrentTime(seekable.end(0));}}
this.hasPlayed_=function(){return true;};this.load();return true;}
return false;}},{key:'handleSourceOpen_',value:function handleSourceOpen_(){try{this.setupSourceBuffers_();}catch(e){_videoJs2['default'].log.warn('Failed to create Source Buffers',e);return this.mediaSource.endOfStream('decode');}
if(this.tech_.autoplay()){this.tech_.play();}
this.trigger('sourceopen');}},{key:'stuckAtPlaylistEnd_',value:function stuckAtPlaylistEnd_(playlist){var seekable=this.seekable();if(!seekable.length){return false;}
var absolutePlaylistEnd=Hls.Playlist.playlistEnd(playlist);var currentTime=this.tech_.currentTime();var buffered=this.tech_.buffered();if(!buffered.length){return absolutePlaylistEnd-currentTime<=_ranges2['default'].TIME_FUDGE_FACTOR;}
var bufferedEnd=buffered.end(buffered.length-1);return bufferedEnd-currentTime<=_ranges2['default'].TIME_FUDGE_FACTOR&&absolutePlaylistEnd-bufferedEnd<=_ranges2['default'].TIME_FUDGE_FACTOR;}},{key:'blacklistCurrentPlaylist',value:function blacklistCurrentPlaylist(){var error=arguments.length<=0||arguments[0]===undefined?{}:arguments[0];var currentPlaylist=undefined;var nextPlaylist=undefined;currentPlaylist=error.playlist||this.masterPlaylistLoader_.media();if(!currentPlaylist){this.error=error;try{return this.mediaSource.endOfStream('network');}catch(e){return this.trigger('error');}}
var isFinalRendition=this.masterPlaylistLoader_.isFinalRendition_();if(isFinalRendition){_videoJs2['default'].log.warn('Problem encountered with the current '+'HLS playlist. Trying again since it is the final playlist.');return this.masterPlaylistLoader_.load(isFinalRendition);}
currentPlaylist.excludeUntil=Date.now()+BLACKLIST_DURATION;nextPlaylist=this.selectPlaylist();_videoJs2['default'].log.warn('Problem encountered with the current HLS playlist.'+(error.message?' '+error.message:'')+' Switching to another playlist.');return this.masterPlaylistLoader_.media(nextPlaylist);}},{key:'pauseLoading',value:function pauseLoading(){this.mainSegmentLoader_.pause();if(this.audioPlaylistLoader_){this.audioSegmentLoader_.pause();}
if(this.subtitlePlaylistLoader_){this.subtitleSegmentLoader_.pause();}}},{key:'setCurrentTime',value:function setCurrentTime(currentTime){var buffered=_ranges2['default'].findRange(this.tech_.buffered(),currentTime);if(!(this.masterPlaylistLoader_&&this.masterPlaylistLoader_.media())){return 0;}
if(!this.masterPlaylistLoader_.media().segments){return 0;}
var isFlash=this.mode_==='flash'||this.mode_==='auto'&&!_videoJs2['default'].MediaSource.supportsNativeMediaSources();if(buffered&&buffered.length&&!isFlash){return currentTime;}
this.mainSegmentLoader_.resetEverything();this.mainSegmentLoader_.abort();if(this.audioPlaylistLoader_){this.audioSegmentLoader_.resetEverything();this.audioSegmentLoader_.abort();}
if(this.subtitlePlaylistLoader_){this.subtitleSegmentLoader_.resetEverything();this.subtitleSegmentLoader_.abort();}
if(!this.tech_.paused()){this.mainSegmentLoader_.load();if(this.audioPlaylistLoader_){this.audioSegmentLoader_.load();}
if(this.subtitlePlaylistLoader_){this.subtitleSegmentLoader_.load();}}}},{key:'duration',value:function duration(){if(!this.masterPlaylistLoader_){return 0;}
if(this.mediaSource){return this.mediaSource.duration;}
return Hls.Playlist.duration(this.masterPlaylistLoader_.media());}},{key:'seekable',value:function seekable(){return this.seekable_;}},{key:'onSyncInfoUpdate_',value:function onSyncInfoUpdate_(){var media=undefined;var mainSeekable=undefined;var audioSeekable=undefined;if(!this.masterPlaylistLoader_){return;}
media=this.masterPlaylistLoader_.media();if(!media){return;}
mainSeekable=Hls.Playlist.seekable(media);if(mainSeekable.length===0){return;}
if(this.audioPlaylistLoader_){audioSeekable=Hls.Playlist.seekable(this.audioPlaylistLoader_.media());if(audioSeekable.length===0){return;}}
if(!audioSeekable){this.seekable_=mainSeekable;}else if(audioSeekable.start(0)>mainSeekable.end(0)||mainSeekable.start(0)>audioSeekable.end(0)){this.seekable_=mainSeekable;}else{this.seekable_=_videoJs2['default'].createTimeRanges([[audioSeekable.start(0)>mainSeekable.start(0)?audioSeekable.start(0):mainSeekable.start(0),audioSeekable.end(0)<mainSeekable.end(0)?audioSeekable.end(0):mainSeekable.end(0)]]);}
this.tech_.trigger('seekablechanged');}},{key:'updateDuration',value:function updateDuration(){var _this6=this;var oldDuration=this.mediaSource.duration;var newDuration=Hls.Playlist.duration(this.masterPlaylistLoader_.media());var buffered=this.tech_.buffered();var setDuration=function setDuration(){_this6.mediaSource.duration=newDuration;_this6.tech_.trigger('durationchange');_this6.mediaSource.removeEventListener('sourceopen',setDuration);};if(buffered.length>0){newDuration=Math.max(newDuration,buffered.end(buffered.length-1));}
if(oldDuration!==newDuration){if(this.mediaSource.readyState!=='open'){this.mediaSource.addEventListener('sourceopen',setDuration);}else{setDuration();}}}},{key:'dispose',value:function dispose(){this.decrypter_.terminate();this.masterPlaylistLoader_.dispose();this.mainSegmentLoader_.dispose();if(this.audioPlaylistLoader_){this.audioPlaylistLoader_.dispose();}
if(this.subtitlePlaylistLoader_){this.subtitlePlaylistLoader_.dispose();}
this.audioSegmentLoader_.dispose();this.subtitleSegmentLoader_.dispose();}},{key:'master',value:function master(){return this.masterPlaylistLoader_.master;}},{key:'media',value:function media(){return this.masterPlaylistLoader_.media()||this.initialMedia_;}},{key:'setupSourceBuffers_',value:function setupSourceBuffers_(){var media=this.masterPlaylistLoader_.media();var mimeTypes=undefined;if(!media||this.mediaSource.readyState!=='open'){return;}
mimeTypes=mimeTypesForPlaylist_(this.masterPlaylistLoader_.master,media);if(mimeTypes.length<1){this.error='No compatible SourceBuffer configuration for the variant stream:'+media.resolvedUri;return this.mediaSource.endOfStream('decode');}
this.mainSegmentLoader_.mimeType(mimeTypes[0]);if(mimeTypes[1]){this.audioSegmentLoader_.mimeType(mimeTypes[1]);}
this.excludeIncompatibleVariants_(media);}},{key:'excludeIncompatibleVariants_',value:function excludeIncompatibleVariants_(media){var master=this.masterPlaylistLoader_.master;var codecCount=2;var videoCodec=null;var codecs=undefined;if(media.attributes&&media.attributes.CODECS){codecs=parseCodecs(media.attributes.CODECS);videoCodec=codecs.videoCodec;codecCount=codecs.codecCount;}
master.playlists.forEach(function(variant){var variantCodecs={codecCount:2,videoCodec:null};if(variant.attributes&&variant.attributes.CODECS){var codecString=variant.attributes.CODECS;variantCodecs=parseCodecs(codecString);if(window.MediaSource&&window.MediaSource.isTypeSupported&&!window.MediaSource.isTypeSupported('video/mp4; codecs="'+mapLegacyAvcCodecs_(codecString)+'"')){variant.excludeUntil=Infinity;}}
if(variantCodecs.codecCount!==codecCount){variant.excludeUntil=Infinity;}
if(variantCodecs.videoCodec!==videoCodec){variant.excludeUntil=Infinity;}});}},{key:'updateAdCues_',value:function updateAdCues_(media){var offset=0;var seekable=this.seekable();if(seekable.length){offset=seekable.start(0);}
_adCueTags2['default'].updateAdCues(media,this.cueTagsTrack_,offset);}}]);return MasterPlaylistController;})(_videoJs2['default'].EventTarget);exports.MasterPlaylistController=MasterPlaylistController;}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./ad-cue-tags":1,"./decrypter-worker":4,"./playlist-loader":8,"./ranges":10,"./segment-loader":14,"./sync-controller":17,"./vtt-segment-loader":18,"videojs-contrib-media-sources/es5/codec-utils":64,"webworkify":75}],6:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var _binUtils=require('./bin-utils');var REQUEST_ERRORS={FAILURE:2,TIMEOUT:-101,ABORTED:-102};exports.REQUEST_ERRORS=REQUEST_ERRORS;var byterangeStr=function byterangeStr(byterange){var byterangeStart=undefined;var byterangeEnd=undefined;byterangeEnd=byterange.offset+byterange.length-1;byterangeStart=byterange.offset;return'bytes='+byterangeStart+'-'+byterangeEnd;};var segmentXhrHeaders=function segmentXhrHeaders(segment){var headers={};if(segment.byterange){headers.Range=byterangeStr(segment.byterange);}
return headers;};var abortAll=function abortAll(activeXhrs){activeXhrs.forEach(function(xhr){xhr.abort();});};var getRequestStats=function getRequestStats(request){return{bandwidth:request.bandwidth,bytesReceived:request.bytesReceived||0,roundTripTime:request.roundTripTime||0};};var getProgressStats=function getProgressStats(progressEvent){var request=progressEvent.target;var roundTripTime=Date.now()-request.requestTime;var stats={bandwidth:Infinity,bytesReceived:0,roundTripTime:roundTripTime||0};if(progressEvent.lengthComputable){stats.bytesReceived=progressEvent.loaded;stats.bandwidth=Math.floor(stats.bytesReceived/stats.roundTripTime*8*1000);}
return stats;};var handleErrors=function handleErrors(error,request){if(request.timedout){return{status:request.status,message:'HLS request timed-out at URL: '+request.uri,code:REQUEST_ERRORS.TIMEOUT,xhr:request};}
if(request.aborted){return{status:request.status,message:'HLS request aborted at URL: '+request.uri,code:REQUEST_ERRORS.ABORTED,xhr:request};}
if(error){return{status:request.status,message:'HLS request errored at URL: '+request.uri,code:REQUEST_ERRORS.FAILURE,xhr:request};}
return null;};var handleKeyResponse=function handleKeyResponse(segment,finishProcessingFn){return function(error,request){var response=request.response;var errorObj=handleErrors(error,request);if(errorObj){return finishProcessingFn(errorObj,segment);}
if(response.byteLength!==16){return finishProcessingFn({status:request.status,message:'Invalid HLS key at URL: '+request.uri,code:REQUEST_ERRORS.FAILURE,xhr:request},segment);}
var view=new DataView(response);segment.key.bytes=new Uint32Array([view.getUint32(0),view.getUint32(4),view.getUint32(8),view.getUint32(12)]);return finishProcessingFn(null,segment);};};var handleInitSegmentResponse=function handleInitSegmentResponse(segment,finishProcessingFn){return function(error,request){var errorObj=handleErrors(error,request);if(errorObj){return finishProcessingFn(errorObj,segment);}
segment.map.bytes=new Uint8Array(request.response);return finishProcessingFn(null,segment);};};var handleSegmentResponse=function handleSegmentResponse(segment,finishProcessingFn){return function(error,request){var errorObj=handleErrors(error,request);if(errorObj){return finishProcessingFn(errorObj,segment);}
segment.stats=getRequestStats(request);if(segment.key){segment.encryptedBytes=new Uint8Array(request.response);}else{segment.bytes=new Uint8Array(request.response);}
return finishProcessingFn(null,segment);};};var decryptSegment=function decryptSegment(decrypter,segment,doneFn){var decryptionHandler=function decryptionHandler(event){if(event.data.source===segment.requestId){decrypter.removeEventListener('message',decryptionHandler);var decrypted=event.data.decrypted;segment.bytes=new Uint8Array(decrypted.bytes,decrypted.byteOffset,decrypted.byteLength);return doneFn(null,segment);}};decrypter.addEventListener('message',decryptionHandler);decrypter.postMessage((0,_binUtils.createTransferableMessage)({source:segment.requestId,encrypted:segment.encryptedBytes,key:segment.key.bytes,iv:segment.key.iv}),[segment.encryptedBytes.buffer,segment.key.bytes.buffer]);};var getMostImportantError=function getMostImportantError(errors){return errors.reduce(function(prev,err){return err.code>prev.code?err:prev;});};var waitForCompletion=function waitForCompletion(activeXhrs,decrypter,doneFn){var errors=[];var count=0;return function(error,segment){if(error){abortAll(activeXhrs);errors.push(error);}
count+=1;if(count===activeXhrs.length){segment.endOfAllRequests=Date.now();if(errors.length>0){var worstError=getMostImportantError(errors);return doneFn(worstError,segment);}
if(segment.encryptedBytes){return decryptSegment(decrypter,segment,doneFn);}
return doneFn(null,segment);}};};var handleProgress=function handleProgress(segment,progressFn){return function(event){segment.stats=getProgressStats(event);return progressFn(event,segment);};};var mediaSegmentRequest=function mediaSegmentRequest(xhr,xhrOptions,decryptionWorker,segment,progressFn,doneFn){var activeXhrs=[];var finishProcessingFn=waitForCompletion(activeXhrs,decryptionWorker,doneFn);if(segment.key){var keyRequestOptions=_videoJs2['default'].mergeOptions(xhrOptions,{uri:segment.key.resolvedUri,responseType:'arraybuffer'});var keyRequestCallback=handleKeyResponse(segment,finishProcessingFn);var keyXhr=xhr(keyRequestOptions,keyRequestCallback);activeXhrs.push(keyXhr);}
if(segment.map&&!segment.map.bytes){var initSegmentOptions=_videoJs2['default'].mergeOptions(xhrOptions,{uri:segment.map.resolvedUri,responseType:'arraybuffer',headers:segmentXhrHeaders(segment.map)});var initSegmentRequestCallback=handleInitSegmentResponse(segment,finishProcessingFn);var initSegmentXhr=xhr(initSegmentOptions,initSegmentRequestCallback);activeXhrs.push(initSegmentXhr);}
var segmentRequestOptions=_videoJs2['default'].mergeOptions(xhrOptions,{uri:segment.resolvedUri,responseType:'arraybuffer',headers:segmentXhrHeaders(segment)});var segmentRequestCallback=handleSegmentResponse(segment,finishProcessingFn);var segmentXhr=xhr(segmentRequestOptions,segmentRequestCallback);segmentXhr.addEventListener('progress',handleProgress(segment,progressFn));activeXhrs.push(segmentXhr);return function(){return abortAll(activeXhrs);};};exports.mediaSegmentRequest=mediaSegmentRequest;}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./bin-utils":2}],7:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
var _ranges=require('./ranges');var _ranges2=_interopRequireDefault(_ranges);var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var timerCancelEvents=['seeking','seeked','pause','playing','error'];var PlaybackWatcher=(function(){function PlaybackWatcher(options){var _this=this;_classCallCheck(this,PlaybackWatcher);this.tech_=options.tech;this.seekable=options.seekable;this.consecutiveUpdates=0;this.lastRecordedTime=null;this.timer_=null;this.checkCurrentTimeTimeout_=null;if(options.debug){this.logger_=_videoJs2['default'].log.bind(_videoJs2['default'],'playback-watcher ->');}
this.logger_('initialize');var waitingHandler=function waitingHandler(){return _this.waiting_();};var cancelTimerHandler=function cancelTimerHandler(){return _this.cancelTimer_();};var fixesBadSeeksHandler=function fixesBadSeeksHandler(){return _this.fixesBadSeeks_();};this.tech_.on('seekablechanged',fixesBadSeeksHandler);this.tech_.on('waiting',waitingHandler);this.tech_.on(timerCancelEvents,cancelTimerHandler);this.monitorCurrentTime_();this.dispose=function(){_this.logger_('dispose');_this.tech_.off('seekablechanged',fixesBadSeeksHandler);_this.tech_.off('waiting',waitingHandler);_this.tech_.off(timerCancelEvents,cancelTimerHandler);if(_this.checkCurrentTimeTimeout_){clearTimeout(_this.checkCurrentTimeTimeout_);}
_this.cancelTimer_();};}
_createClass(PlaybackWatcher,[{key:'monitorCurrentTime_',value:function monitorCurrentTime_(){this.checkCurrentTime_();if(this.checkCurrentTimeTimeout_){clearTimeout(this.checkCurrentTimeTimeout_);}
this.checkCurrentTimeTimeout_=setTimeout(this.monitorCurrentTime_.bind(this),250);}},{key:'checkCurrentTime_',value:function checkCurrentTime_(){if(this.tech_.seeking()&&this.fixesBadSeeks_()){this.consecutiveUpdates=0;this.lastRecordedTime=this.tech_.currentTime();return;}
if(this.tech_.paused()||this.tech_.seeking()){return;}
var currentTime=this.tech_.currentTime();if(this.consecutiveUpdates>=5&&currentTime===this.lastRecordedTime){this.consecutiveUpdates++;this.waiting_();}else if(currentTime===this.lastRecordedTime){this.consecutiveUpdates++;}else{this.consecutiveUpdates=0;this.lastRecordedTime=currentTime;}}},{key:'cancelTimer_',value:function cancelTimer_(){this.consecutiveUpdates=0;if(this.timer_){this.logger_('cancelTimer_');clearTimeout(this.timer_);}
this.timer_=null;}},{key:'fixesBadSeeks_',value:function fixesBadSeeks_(){var seekable=this.seekable();var currentTime=this.tech_.currentTime();if(this.tech_.seeking()&&this.outsideOfSeekableWindow_(seekable,currentTime)){var seekableEnd=seekable.end(seekable.length-1);this.logger_('Trying to seek outside of seekable at time '+currentTime+' with '+('seekable range '+_ranges2['default'].printableRange(seekable)+'. Seeking to ')+(seekableEnd+'.'));this.tech_.setCurrentTime(seekableEnd);return true;}
return false;}},{key:'waiting_',value:function waiting_(){var seekable=this.seekable();var currentTime=this.tech_.currentTime();if(this.tech_.seeking()&&this.fixesBadSeeks_()){return;}
if(this.tech_.seeking()||this.timer_!==null){return;}
if(this.fellOutOfLiveWindow_(seekable,currentTime)){var livePoint=seekable.end(seekable.length-1);this.logger_('Fell out of live window at time '+currentTime+'. Seeking to '+('live point (seekable end) '+livePoint));this.cancelTimer_();this.tech_.setCurrentTime(livePoint);this.tech_.trigger('liveresync');return;}
var buffered=this.tech_.buffered();var nextRange=_ranges2['default'].findNextRange(buffered,currentTime);if(this.videoUnderflow_(nextRange,buffered,currentTime)){this.cancelTimer_();this.tech_.setCurrentTime(currentTime);this.tech_.trigger('videounderflow');return;}
if(nextRange.length>0){var difference=nextRange.start(0)-currentTime;this.logger_('Stopped at '+currentTime+', setting timer for '+difference+', seeking '+('to '+nextRange.start(0)));this.timer_=setTimeout(this.skipTheGap_.bind(this),difference*1000,currentTime);}}},{key:'outsideOfSeekableWindow_',value:function outsideOfSeekableWindow_(seekable,currentTime){if(!seekable.length){return false;}
if(currentTime<seekable.start(0)-0.1||currentTime>seekable.end(seekable.length-1)+0.1){return true;}
return false;}},{key:'fellOutOfLiveWindow_',value:function fellOutOfLiveWindow_(seekable,currentTime){if(seekable.length&&seekable.start(0)>0&&currentTime<seekable.start(0)){return true;}
return false;}},{key:'videoUnderflow_',value:function videoUnderflow_(nextRange,buffered,currentTime){if(nextRange.length===0){var gap=this.gapFromVideoUnderflow_(buffered,currentTime);if(gap){this.logger_('Encountered a gap in video from '+gap.start+' to '+gap.end+'. '+('Seeking to current time '+currentTime));return true;}}
return false;}},{key:'skipTheGap_',value:function skipTheGap_(scheduledCurrentTime){var buffered=this.tech_.buffered();var currentTime=this.tech_.currentTime();var nextRange=_ranges2['default'].findNextRange(buffered,currentTime);this.cancelTimer_();if(nextRange.length===0||currentTime!==scheduledCurrentTime){return;}
this.logger_('skipTheGap_:','currentTime:',currentTime,'scheduled currentTime:',scheduledCurrentTime,'nextRange start:',nextRange.start(0));this.tech_.setCurrentTime(nextRange.start(0)+_ranges2['default'].TIME_FUDGE_FACTOR);}},{key:'gapFromVideoUnderflow_',value:function gapFromVideoUnderflow_(buffered,currentTime){var gaps=_ranges2['default'].findGaps(buffered);for(var i=0;i<gaps.length;i++){var start=gaps.start(i);var end=gaps.end(i);if(currentTime-start<4&&currentTime-start>2){return{start:start,end:end};}}
return null;}},{key:'logger_',value:function logger_(){}}]);return PlaybackWatcher;})();exports['default']=PlaybackWatcher;module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./ranges":10}],8:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _resolveUrl=require('./resolve-url');var _resolveUrl2=_interopRequireDefault(_resolveUrl);var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _playlistJs=require('./playlist.js');var _stream=require('./stream');var _stream2=_interopRequireDefault(_stream);var _m3u8Parser=require('m3u8-parser');var _m3u8Parser2=_interopRequireDefault(_m3u8Parser);var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var updateSegments=function updateSegments(original,update,offset){var result=update.slice();var length=undefined;var i=undefined;offset=offset||0;length=Math.min(original.length,update.length+offset);for(i=offset;i<length;i++){result[i-offset]=(0,_videoJs.mergeOptions)(original[i],result[i-offset]);}
return result;};var updateMaster=function updateMaster(master,media){var changed=false;var result=(0,_videoJs.mergeOptions)(master,{});var i=master.playlists.length;var playlist=undefined;var segment=undefined;var j=undefined;while(i--){playlist=result.playlists[i];if(playlist.uri===media.uri){if(playlist.segments&&media.segments&&playlist.segments.length===media.segments.length&&playlist.mediaSequence===media.mediaSequence){continue;}
result.playlists[i]=(0,_videoJs.mergeOptions)(playlist,media);result.playlists[media.uri]=result.playlists[i];if(playlist.segments){result.playlists[i].segments=updateSegments(playlist.segments,media.segments,media.mediaSequence-playlist.mediaSequence);}
j=0;if(result.playlists[i].segments){j=result.playlists[i].segments.length;}
while(j--){segment=result.playlists[i].segments[j];if(!segment.resolvedUri){segment.resolvedUri=(0,_resolveUrl2['default'])(playlist.resolvedUri,segment.uri);}
if(segment.key&&!segment.key.resolvedUri){segment.key.resolvedUri=(0,_resolveUrl2['default'])(playlist.resolvedUri,segment.key.uri);}
if(segment.map&&!segment.map.resolvedUri){segment.map.resolvedUri=(0,_resolveUrl2['default'])(playlist.resolvedUri,segment.map.uri);}}
changed=true;}}
return changed?result:null;};var PlaylistLoader=function PlaylistLoader(srcUrl,hls,withCredentials){var _this=this;var loader=this;var dispose=undefined;var mediaUpdateTimeout=undefined;var request=undefined;var playlistRequestError=undefined;var haveMetadata=undefined;PlaylistLoader.prototype.constructor.call(this);this.hls_=hls;if(!srcUrl){throw new Error('A non-empty playlist URL is required');}
playlistRequestError=function(xhr,url,startingState){loader.setBandwidth(request||xhr);request=null;if(startingState){loader.state=startingState;}
loader.error={playlist:loader.master.playlists[url],status:xhr.status,message:'HLS playlist request error at URL: '+url,responseText:xhr.responseText,code:xhr.status>=500?4:2};loader.trigger('error');};haveMetadata=function(xhr,url){var parser=undefined;var refreshDelay=undefined;var update=undefined;loader.setBandwidth(request||xhr);request=null;loader.state='HAVE_METADATA';parser=new _m3u8Parser2['default'].Parser();parser.push(xhr.responseText);parser.end();parser.manifest.uri=url;update=updateMaster(loader.master,parser.manifest);refreshDelay=(parser.manifest.targetDuration||10)*1000;loader.targetDuration=parser.manifest.targetDuration;if(update){loader.master=update;loader.media_=loader.master.playlists[parser.manifest.uri];}else{refreshDelay/=2;loader.trigger('playlistunchanged');}
if(!loader.media().endList){_globalWindow2['default'].clearTimeout(mediaUpdateTimeout);mediaUpdateTimeout=_globalWindow2['default'].setTimeout(function(){loader.trigger('mediaupdatetimeout');},refreshDelay);}
loader.trigger('loadedplaylist');};loader.state='HAVE_NOTHING';dispose=this.dispose;loader.dispose=function(){loader.stopRequest();_globalWindow2['default'].clearTimeout(mediaUpdateTimeout);dispose.call(this);};loader.stopRequest=function(){if(request){var oldRequest=request;request=null;oldRequest.onreadystatechange=null;oldRequest.abort();}};loader.enabledPlaylists_=function(){return loader.master.playlists.filter(_playlistJs.isEnabled).length;};loader.isLowestEnabledRendition_=function(){if(loader.master.playlists.length===1){return true;}
var media=loader.media();var currentBandwidth=media.attributes.BANDWIDTH||Number.MAX_VALUE;return loader.master.playlists.filter(function(playlist){var enabled=(0,_playlistJs.isEnabled)(playlist);if(!enabled){return false;}
var bandwidth=0;if(playlist&&playlist.attributes){bandwidth=playlist.attributes.BANDWIDTH;}
return bandwidth<currentBandwidth;}).length===0;};loader.isFinalRendition_=function(){return loader.master.playlists.filter(_playlistJs.isEnabled).length===1;};loader.media=function(playlist){var startingState=loader.state;var mediaChange=undefined;if(!playlist){return loader.media_;}
if(loader.state==='HAVE_NOTHING'){throw new Error('Cannot switch media playlist from '+loader.state);}
if(typeof playlist==='string'){if(!loader.master.playlists[playlist]){throw new Error('Unknown playlist URI: '+playlist);}
playlist=loader.master.playlists[playlist];}
mediaChange=!loader.media_||playlist.uri!==loader.media_.uri;if(loader.master.playlists[playlist.uri].endList){if(request){request.onreadystatechange=null;request.abort();request=null;}
loader.state='HAVE_METADATA';loader.media_=playlist;if(mediaChange){loader.trigger('mediachanging');loader.trigger('mediachange');}
return;}
if(!mediaChange){return;}
loader.state='SWITCHING_MEDIA';if(request){if((0,_resolveUrl2['default'])(loader.master.uri,playlist.uri)===request.url){return;}
request.onreadystatechange=null;request.abort();request=null;}
if(this.media_){this.trigger('mediachanging');}
request=this.hls_.xhr({uri:(0,_resolveUrl2['default'])(loader.master.uri,playlist.uri),withCredentials:withCredentials},function(error,req){if(!request){return;}
if(error){return playlistRequestError(request,playlist.uri,startingState);}
haveMetadata(req,playlist.uri);if(startingState==='HAVE_MASTER'){loader.trigger('loadedmetadata');}else{loader.trigger('mediachange');}});};loader.setBandwidth=function(xhr){loader.bandwidth=xhr.bandwidth;};loader.on('mediaupdatetimeout',function(){if(loader.state!=='HAVE_METADATA'){return;}
loader.state='HAVE_CURRENT_METADATA';request=this.hls_.xhr({uri:(0,_resolveUrl2['default'])(loader.master.uri,loader.media().uri),withCredentials:withCredentials},function(error,req){if(!request){return;}
if(error){return playlistRequestError(request,loader.media().uri,'HAVE_METADATA');}
haveMetadata(request,loader.media().uri);});});loader.on('firstplay',function(){var playlist=loader.media();if(playlist){playlist.syncInfo={mediaSequence:playlist.mediaSequence,time:0};}});loader.pause=function(){loader.stopRequest();_globalWindow2['default'].clearTimeout(mediaUpdateTimeout);if(loader.state==='HAVE_NOTHING'){loader.started=false;}};loader.load=function(isFinalRendition){var media=loader.media();_globalWindow2['default'].clearTimeout(mediaUpdateTimeout);if(isFinalRendition){var refreshDelay=media?media.targetDuration/2*1000:5*1000;mediaUpdateTimeout=_globalWindow2['default'].setTimeout(loader.load.bind(null,false),refreshDelay);return;}
if(!loader.started){loader.start();return;}
if(media&&!media.endList){loader.trigger('mediaupdatetimeout');}else{loader.trigger('loadedplaylist');}};loader.start=function(){loader.started=true;request=_this.hls_.xhr({uri:srcUrl,withCredentials:withCredentials},function(error,req){var parser=undefined;var playlist=undefined;var i=undefined;if(!request){return;}
request=null;if(error){loader.error={status:req.status,message:'HLS playlist request error at URL: '+srcUrl,responseText:req.responseText,code:2};if(loader.state==='HAVE_NOTHING'){loader.started=false;}
return loader.trigger('error');}
parser=new _m3u8Parser2['default'].Parser();parser.push(req.responseText);parser.end();loader.state='HAVE_MASTER';parser.manifest.uri=srcUrl;if(parser.manifest.playlists){loader.master=parser.manifest;i=loader.master.playlists.length;while(i--){playlist=loader.master.playlists[i];loader.master.playlists[playlist.uri]=playlist;playlist.resolvedUri=(0,_resolveUrl2['default'])(loader.master.uri,playlist.uri);}
['AUDIO','SUBTITLES'].forEach(function(mediaType){for(var groupKey in loader.master.mediaGroups[mediaType]){for(var labelKey in loader.master.mediaGroups[mediaType][groupKey]){var mediaProperties=loader.master.mediaGroups[mediaType][groupKey][labelKey];if(mediaProperties.uri){mediaProperties.resolvedUri=(0,_resolveUrl2['default'])(loader.master.uri,mediaProperties.uri);}}}});loader.trigger('loadedplaylist');if(!request){loader.media(parser.manifest.playlists[0]);}
return;}
loader.master={mediaGroups:{'AUDIO':{},'VIDEO':{},'CLOSED-CAPTIONS':{},'SUBTITLES':{}},uri:_globalWindow2['default'].location.href,playlists:[{uri:srcUrl}]};loader.master.playlists[srcUrl]=loader.master.playlists[0];loader.master.playlists[0].resolvedUri=srcUrl;haveMetadata(req,srcUrl);return loader.trigger('loadedmetadata');});};};PlaylistLoader.prototype=new _stream2['default']();exports['default']=PlaylistLoader;module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./playlist.js":9,"./resolve-url":13,"./stream":16,"global/window":30,"m3u8-parser":31}],9:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var Playlist={UNSAFE_LIVE_SEGMENTS:3};var backwardDuration=function backwardDuration(playlist,endSequence){var result=0;var i=endSequence-playlist.mediaSequence;var segment=playlist.segments[i];if(segment){if(typeof segment.start!=='undefined'){return{result:segment.start,precise:true};}
if(typeof segment.end!=='undefined'){return{result:segment.end-segment.duration,precise:true};}}
while(i--){segment=playlist.segments[i];if(typeof segment.end!=='undefined'){return{result:result+segment.end,precise:true};}
result+=segment.duration;if(typeof segment.start!=='undefined'){return{result:result+segment.start,precise:true};}}
return{result:result,precise:false};};var forwardDuration=function forwardDuration(playlist,endSequence){var result=0;var segment=undefined;var i=endSequence-playlist.mediaSequence;for(;i<playlist.segments.length;i++){segment=playlist.segments[i];if(typeof segment.start!=='undefined'){return{result:segment.start-result,precise:true};}
result+=segment.duration;if(typeof segment.end!=='undefined'){return{result:segment.end-result,precise:true};}}
return{result:-1,precise:false};};var intervalDuration=function intervalDuration(playlist,endSequence,expired){var backward=undefined;var forward=undefined;if(typeof endSequence==='undefined'){endSequence=playlist.mediaSequence+playlist.segments.length;}
if(endSequence<playlist.mediaSequence){return 0;}
backward=backwardDuration(playlist,endSequence);if(backward.precise){return backward.result;}
forward=forwardDuration(playlist,endSequence);if(forward.precise){return forward.result;}
return backward.result+expired;};var duration=function duration(playlist,endSequence,expired){if(!playlist){return 0;}
if(typeof expired!=='number'){expired=0;}
if(typeof endSequence==='undefined'){if(playlist.totalDuration){return playlist.totalDuration;}
if(!playlist.endList){return _globalWindow2['default'].Infinity;}}
return intervalDuration(playlist,endSequence,expired);};exports.duration=duration;var sumDurations=function sumDurations(playlist,startIndex,endIndex){var durations=0;if(startIndex>endIndex){var _ref=[endIndex,startIndex];startIndex=_ref[0];endIndex=_ref[1];}
if(startIndex<0){for(var i=startIndex;i<Math.min(0,endIndex);i++){durations+=playlist.targetDuration;}
startIndex=0;}
for(var i=startIndex;i<endIndex;i++){durations+=playlist.segments[i].duration;}
return durations;};exports.sumDurations=sumDurations;var getPlaylistSyncPoints=function getPlaylistSyncPoints(playlist){if(!playlist||!playlist.segments){return[null,null];}
var expiredSync=playlist.syncInfo||(playlist.endList?{time:0,mediaSequence:0}:null);var segmentSync=null;for(var i=0,l=playlist.segments.length;i<l;i++){var segment=playlist.segments[i];if(typeof segment.start!=='undefined'){segmentSync={mediaSequence:playlist.mediaSequence+i,time:segment.start};break;}}
return{expiredSync:expiredSync,segmentSync:segmentSync};};var calculateExpiredTime=function calculateExpiredTime(playlist){var _getPlaylistSyncPoints=getPlaylistSyncPoints(playlist);var expiredSync=_getPlaylistSyncPoints.expiredSync;var segmentSync=_getPlaylistSyncPoints.segmentSync;if(expiredSync&&segmentSync){var expiredDiff=expiredSync.mediaSequence-playlist.mediaSequence;var segmentDiff=segmentSync.mediaSequence-playlist.mediaSequence;var syncIndex=undefined;var syncTime=undefined;if(Math.abs(expiredDiff)>Math.abs(segmentDiff)){syncIndex=segmentDiff;syncTime=-segmentSync.time;}else{syncIndex=expiredDiff;syncTime=expiredSync.time;}
return Math.abs(syncTime+sumDurations(playlist,syncIndex,0));}
if(expiredSync){var syncIndex=expiredSync.mediaSequence-playlist.mediaSequence;return expiredSync.time+sumDurations(playlist,syncIndex,0);}
if(segmentSync){var syncIndex=segmentSync.mediaSequence-playlist.mediaSequence;return segmentSync.time-sumDurations(playlist,syncIndex,0);}
return null;};var playlistEnd=function playlistEnd(playlist,useSafeLiveEnd){if(!playlist||!playlist.segments){return null;}
if(playlist.endList){return duration(playlist);}
var expired=calculateExpiredTime(playlist);if(expired===null){return null;}
var endSequence=useSafeLiveEnd?Math.max(0,playlist.segments.length-Playlist.UNSAFE_LIVE_SEGMENTS):Math.max(0,playlist.segments.length);return intervalDuration(playlist,playlist.mediaSequence+endSequence,expired);};exports.playlistEnd=playlistEnd;var seekable=function seekable(playlist){var useSafeLiveEnd=true;var seekableStart=calculateExpiredTime(playlist);var seekableEnd=playlistEnd(playlist,useSafeLiveEnd);if(seekableEnd===null){return(0,_videoJs.createTimeRange)();}
return(0,_videoJs.createTimeRange)(seekableStart,seekableEnd);};exports.seekable=seekable;var isWholeNumber=function isWholeNumber(num){return num-Math.floor(num)===0;};var roundSignificantDigit=function roundSignificantDigit(increment,num){if(isWholeNumber(num)){return num+increment*0.1;}
var numDecimalDigits=num.toString().split('.')[1].length;for(var i=1;i<=numDecimalDigits;i++){var scale=Math.pow(10,i);var temp=num*scale;if(isWholeNumber(temp)||i===numDecimalDigits){return(temp+increment)/scale;}}};var ceilLeastSignificantDigit=roundSignificantDigit.bind(null,1);var floorLeastSignificantDigit=roundSignificantDigit.bind(null,-1);var getMediaInfoForTime_=function getMediaInfoForTime_(playlist,currentTime,startIndex,startTime){var i=undefined;var segment=undefined;var numSegments=playlist.segments.length;var time=currentTime-startTime;if(time<0){if(startIndex>0){for(i=startIndex-1;i>=0;i--){segment=playlist.segments[i];time+=floorLeastSignificantDigit(segment.duration);if(time>0){return{mediaIndex:i,startTime:startTime-sumDurations(playlist,startIndex,i)};}}}
return{mediaIndex:0,startTime:currentTime};}
if(startIndex<0){for(i=startIndex;i<0;i++){time-=playlist.targetDuration;if(time<0){return{mediaIndex:0,startTime:currentTime};}}
startIndex=0;}
for(i=startIndex;i<numSegments;i++){segment=playlist.segments[i];time-=ceilLeastSignificantDigit(segment.duration);if(time<0){return{mediaIndex:i,startTime:startTime+sumDurations(playlist,startIndex,i)};}}
return{mediaIndex:numSegments-1,startTime:currentTime};};exports.getMediaInfoForTime_=getMediaInfoForTime_;var isBlacklisted=function isBlacklisted(playlist){return playlist.excludeUntil&&playlist.excludeUntil>Date.now();};exports.isBlacklisted=isBlacklisted;var isEnabled=function isEnabled(playlist){var blacklisted=isBlacklisted(playlist);return!playlist.disabled&&!blacklisted;};exports.isEnabled=isEnabled;Playlist.duration=duration;Playlist.seekable=seekable;Playlist.getMediaInfoForTime_=getMediaInfoForTime_;Playlist.isEnabled=isEnabled;Playlist.isBlacklisted=isBlacklisted;Playlist.playlistEnd=playlistEnd;exports['default']=Playlist;}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"global/window":30}],10:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _slicedToArray=(function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i['return'])_i['return']();}finally{if(_d)throw _e;}}return _arr;}return function(arr,i){if(Array.isArray(arr)){return arr;}else if(Symbol.iterator in Object(arr)){return sliceIterator(arr,i);}else{throw new TypeError('Invalid attempt to destructure non-iterable instance');}};})();function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var TIME_FUDGE_FACTOR=1/30;var clamp=function clamp(num,_ref){var _ref2=_slicedToArray(_ref,2);var start=_ref2[0];var end=_ref2[1];return Math.min(Math.max(start,num),end);};var filterRanges=function filterRanges(timeRanges,predicate){var results=[];var i=undefined;if(timeRanges&&timeRanges.length){for(i=0;i<timeRanges.length;i++){if(predicate(timeRanges.start(i),timeRanges.end(i))){results.push([timeRanges.start(i),timeRanges.end(i)]);}}}
return _videoJs2['default'].createTimeRanges(results);};var findRange=function findRange(buffered,time){return filterRanges(buffered,function(start,end){return start-TIME_FUDGE_FACTOR<=time&&end+TIME_FUDGE_FACTOR>=time;});};var findNextRange=function findNextRange(timeRanges,time){return filterRanges(timeRanges,function(start){return start-TIME_FUDGE_FACTOR>=time;});};var findGaps=function findGaps(buffered){if(buffered.length<2){return _videoJs2['default'].createTimeRanges();}
var ranges=[];for(var i=1;i<buffered.length;i++){var start=buffered.end(i-1);var end=buffered.start(i);ranges.push([start,end]);}
return _videoJs2['default'].createTimeRanges(ranges);};var findSoleUncommonTimeRangesEnd=function findSoleUncommonTimeRangesEnd(original,update){var i=undefined;var start=undefined;var end=undefined;var result=[];var edges=[];var overlapsCurrentEnd=function overlapsCurrentEnd(span){return span[0]<=end&&span[1]>=end;};if(original){for(i=0;i<original.length;i++){start=original.start(i);end=original.end(i);edges.push([start,end]);}}
if(update){for(i=0;i<update.length;i++){start=update.start(i);end=update.end(i);if(edges.some(overlapsCurrentEnd)){continue;}
result.push(end);}}
if(result.length!==1){return null;}
return result[0];};var bufferIntersection=function bufferIntersection(bufferA,bufferB){var start=null;var end=null;var arity=0;var extents=[];var ranges=[];if(!bufferA||!bufferA.length||!bufferB||!bufferB.length){return _videoJs2['default'].createTimeRange();}
var count=bufferA.length;while(count--){extents.push({time:bufferA.start(count),type:'start'});extents.push({time:bufferA.end(count),type:'end'});}
count=bufferB.length;while(count--){extents.push({time:bufferB.start(count),type:'start'});extents.push({time:bufferB.end(count),type:'end'});}
extents.sort(function(a,b){return a.time-b.time;});for(count=0;count<extents.length;count++){if(extents[count].type==='start'){arity++;if(arity===2){start=extents[count].time;}}else if(extents[count].type==='end'){arity--;if(arity===1){end=extents[count].time;}}
if(start!==null&&end!==null){ranges.push([start,end]);start=null;end=null;}}
return _videoJs2['default'].createTimeRanges(ranges);};var calculateBufferedPercent=function calculateBufferedPercent(adjustedRange,referenceRange,currentTime,buffered){var referenceDuration=referenceRange.end(0)-referenceRange.start(0);var adjustedDuration=adjustedRange.end(0)-adjustedRange.start(0);var bufferMissingFromAdjusted=referenceDuration-adjustedDuration;var adjustedIntersection=bufferIntersection(adjustedRange,buffered);var referenceIntersection=bufferIntersection(referenceRange,buffered);var adjustedOverlap=0;var referenceOverlap=0;var count=adjustedIntersection.length;while(count--){adjustedOverlap+=adjustedIntersection.end(count)-adjustedIntersection.start(count);if(adjustedIntersection.start(count)===currentTime){adjustedOverlap+=bufferMissingFromAdjusted;}}
count=referenceIntersection.length;while(count--){referenceOverlap+=referenceIntersection.end(count)-referenceIntersection.start(count);}
return Math.max(adjustedOverlap,referenceOverlap)/referenceDuration*100;};var getSegmentBufferedPercent=function getSegmentBufferedPercent(startOfSegment,segmentDuration,currentTime,buffered){var endOfSegment=startOfSegment+segmentDuration;var originalSegmentRange=_videoJs2['default'].createTimeRanges([[startOfSegment,endOfSegment]]);var adjustedSegmentRange=_videoJs2['default'].createTimeRanges([[clamp(startOfSegment,[currentTime,endOfSegment]),endOfSegment]]);if(adjustedSegmentRange.start(0)===adjustedSegmentRange.end(0)){return 0;}
var percent=calculateBufferedPercent(adjustedSegmentRange,originalSegmentRange,currentTime,buffered);if(isNaN(percent)||percent===Infinity||percent===-Infinity){return 0;}
return percent;};var printableRange=function printableRange(range){var strArr=[];if(!range||!range.length){return'';}
for(var i=0;i<range.length;i++){strArr.push(range.start(i)+' => '+range.end(i));}
return strArr.join(', ');};exports['default']={findRange:findRange,findNextRange:findNextRange,findGaps:findGaps,findSoleUncommonTimeRangesEnd:findSoleUncommonTimeRangesEnd,getSegmentBufferedPercent:getSegmentBufferedPercent,TIME_FUDGE_FACTOR:TIME_FUDGE_FACTOR,printableRange:printableRange};module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],11:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var defaultOptions={errorInterval:30,getSource:function getSource(next){var tech=this.tech({IWillNotUseThisInPlugins:true});var sourceObj=tech.currentSource_;return next(sourceObj);}};var initPlugin=function initPlugin(player,options){var lastCalled=0;var seekTo=0;var localOptions=_videoJs2['default'].mergeOptions(defaultOptions,options);var loadedMetadataHandler=function loadedMetadataHandler(){if(seekTo){player.currentTime(seekTo);}};var setSource=function setSource(sourceObj){if(sourceObj===null||sourceObj===undefined){return;}
seekTo=player.duration()!==Infinity&&player.currentTime()||0;player.one('loadedmetadata',loadedMetadataHandler);player.src(sourceObj);player.play();};var errorHandler=function errorHandler(){if(Date.now()-lastCalled<localOptions.errorInterval*1000){return;}
if(!localOptions.getSource||typeof localOptions.getSource!=='function'){_videoJs2['default'].log.error('ERROR: reloadSourceOnError - The option getSource must be a function!');return;}
lastCalled=Date.now();return localOptions.getSource.call(player,setSource);};var cleanupEvents=function cleanupEvents(){player.off('loadedmetadata',loadedMetadataHandler);player.off('error',errorHandler);player.off('dispose',cleanupEvents);};var reinitPlugin=function reinitPlugin(newOptions){cleanupEvents();initPlugin(player,newOptions);};player.on('error',errorHandler);player.on('dispose',cleanupEvents);player.reloadSourceOnError=reinitPlugin;};var reloadSourceOnError=function reloadSourceOnError(options){initPlugin(this,options);};exports['default']=reloadSourceOnError;module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],12:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
var _playlistJs=require('./playlist.js');var enableFunction=function enableFunction(loader,playlistUri,changePlaylistFn,enable){var playlist=loader.master.playlists[playlistUri];var blacklisted=(0,_playlistJs.isBlacklisted)(playlist);var currentlyEnabled=(0,_playlistJs.isEnabled)(playlist);if(typeof enable==='undefined'){return currentlyEnabled;}
if(enable){delete playlist.disabled;}else{playlist.disabled=true;}
if(enable!==currentlyEnabled&&!blacklisted){changePlaylistFn();}
return enable;};var Representation=function Representation(hlsHandler,playlist,id){_classCallCheck(this,Representation);var fastChangeFunction=hlsHandler.masterPlaylistController_.fastQualityChange_.bind(hlsHandler.masterPlaylistController_);if(playlist.attributes){var attributes=playlist.attributes;if(attributes.RESOLUTION){var resolution=attributes.RESOLUTION;this.width=resolution.width;this.height=resolution.height;}
this.bandwidth=attributes.BANDWIDTH;}
this.id=id;this.enabled=enableFunction.bind(this,hlsHandler.playlists,playlist.uri,fastChangeFunction);};var renditionSelectionMixin=function renditionSelectionMixin(hlsHandler){var playlists=hlsHandler.playlists;hlsHandler.representations=function(){return playlists.master.playlists.filter(function(media){return!(0,_playlistJs.isBlacklisted)(media);}).map(function(e,i){return new Representation(hlsHandler,e,e.uri);});};};exports['default']=renditionSelectionMixin;module.exports=exports['default'];},{"./playlist.js":9}],13:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _urlToolkit=require('url-toolkit');var _urlToolkit2=_interopRequireDefault(_urlToolkit);var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var resolveUrl=function resolveUrl(baseURL,relativeURL){if(/^[a-z]+:/i.test(relativeURL)){return relativeURL;}
if(!/\/\//i.test(baseURL)){baseURL=_urlToolkit2['default'].buildAbsoluteURL(_globalWindow2['default'].location.href,baseURL);}
return _urlToolkit2['default'].buildAbsoluteURL(baseURL,relativeURL);};exports['default']=resolveUrl;module.exports=exports['default'];},{"global/window":30,"url-toolkit":61}],14:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();var _get=function get(_x3,_x4,_x5){var _again=true;_function:while(_again){var object=_x3,property=_x4,receiver=_x5;_again=false;if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{_x3=parent;_x4=property;_x5=receiver;_again=true;desc=parent=undefined;continue _function;}}else if('value'in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}}};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var _playlist=require('./playlist');var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var _sourceUpdater=require('./source-updater');var _sourceUpdater2=_interopRequireDefault(_sourceUpdater);var _config=require('./config');var _config2=_interopRequireDefault(_config);var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var _videojsContribMediaSourcesEs5RemoveCuesFromTrackJs=require('videojs-contrib-media-sources/es5/remove-cues-from-track.js');var _videojsContribMediaSourcesEs5RemoveCuesFromTrackJs2=_interopRequireDefault(_videojsContribMediaSourcesEs5RemoveCuesFromTrackJs);var _binUtils=require('./bin-utils');var _mediaSegmentRequest=require('./media-segment-request');var CHECK_BUFFER_DELAY=500;var detectEndOfStream=function detectEndOfStream(playlist,mediaSource,segmentIndex){if(!playlist||!mediaSource){return false;}
var segments=playlist.segments;var appendedLastSegment=segmentIndex===segments.length;return playlist.endList&&mediaSource.readyState==='open'&&appendedLastSegment;};var SegmentLoader=(function(_videojs$EventTarget){_inherits(SegmentLoader,_videojs$EventTarget);function SegmentLoader(options){var _this=this;_classCallCheck(this,SegmentLoader);_get(Object.getPrototypeOf(SegmentLoader.prototype),'constructor',this).call(this);if(!options){throw new TypeError('Initialization options are required');}
if(typeof options.currentTime!=='function'){throw new TypeError('No currentTime getter specified');}
if(!options.mediaSource){throw new TypeError('No MediaSource specified');}
var settings=_videoJs2['default'].mergeOptions(_videoJs2['default'].options.hls,options);this.state='INIT';this.bandwidth=settings.bandwidth;this.throughput={rate:0,count:0};this.roundTrip=NaN;this.resetStats_();this.mediaIndex=null;this.hasPlayed_=settings.hasPlayed;this.currentTime_=settings.currentTime;this.seekable_=settings.seekable;this.seeking_=settings.seeking;this.duration_=settings.duration;this.mediaSource_=settings.mediaSource;this.hls_=settings.hls;this.loaderType_=settings.loaderType;this.segmentMetadataTrack_=settings.segmentMetadataTrack;this.checkBufferTimeout_=null;this.error_=void 0;this.currentTimeline_=-1;this.pendingSegment_=null;this.mimeType_=null;this.sourceUpdater_=null;this.xhrOptions_=null;this.activeInitSegmentId_=null;this.initSegments_={};this.decrypter_=settings.decrypter;this.syncController_=settings.syncController;this.syncPoint_={segmentIndex:0,time:0};this.syncController_.on('syncinfoupdate',function(){return _this.trigger('syncinfoupdate');});this.fetchAtBuffer_=false;if(settings.debug){this.logger_=_videoJs2['default'].log.bind(_videoJs2['default'],'segment-loader',this.loaderType_,'->');}}
_createClass(SegmentLoader,[{key:'resetStats_',value:function resetStats_(){this.mediaBytesTransferred=0;this.mediaRequests=0;this.mediaRequestsAborted=0;this.mediaRequestsTimedout=0;this.mediaRequestsErrored=0;this.mediaTransferDuration=0;this.mediaSecondsLoaded=0;}},{key:'dispose',value:function dispose(){this.state='DISPOSED';this.abort_();if(this.sourceUpdater_){this.sourceUpdater_.dispose();}
this.resetStats_();}},{key:'abort',value:function abort(){if(this.state!=='WAITING'){if(this.pendingSegment_){this.pendingSegment_=null;}
return;}
this.abort_();if(!this.paused()){this.state='READY';this.monitorBuffer_();}}},{key:'abort_',value:function abort_(){if(this.pendingSegment_){this.pendingSegment_.abortRequests();}
this.pendingSegment_=null;}},{key:'error',value:function error(_error){if(typeof _error!=='undefined'){this.error_=_error;}
this.pendingSegment_=null;return this.error_;}},{key:'buffered_',value:function buffered_(){if(!this.sourceUpdater_){return _videoJs2['default'].createTimeRanges();}
return this.sourceUpdater_.buffered();}},{key:'initSegment',value:function initSegment(map){var set=arguments.length<=1||arguments[1]===undefined?false:arguments[1];if(!map){return null;}
var id=(0,_binUtils.initSegmentId)(map);var storedMap=this.initSegments_[id];if(set&&!storedMap&&map.bytes){this.initSegments_[id]=storedMap={resolvedUri:map.resolvedUri,byterange:map.byterange,bytes:map.bytes};}
return storedMap||map;}},{key:'couldBeginLoading_',value:function couldBeginLoading_(){return this.playlist_&&(this.sourceUpdater_||this.mimeType_&&this.state==='INIT')&&!this.paused();}},{key:'load',value:function load(){this.monitorBuffer_();if(!this.playlist_){return;}
this.syncController_.setDateTimeMapping(this.playlist_);if(this.state==='INIT'&&this.couldBeginLoading_()){return this.init_();}
if(!this.couldBeginLoading_()||this.state!=='READY'&&this.state!=='INIT'){return;}
this.state='READY';}},{key:'init_',value:function init_(){this.state='READY';this.sourceUpdater_=new _sourceUpdater2['default'](this.mediaSource_,this.mimeType_);this.resetEverything();return this.monitorBuffer_();}},{key:'playlist',value:function playlist(newPlaylist){var options=arguments.length<=1||arguments[1]===undefined?{}:arguments[1];if(!newPlaylist){return;}
var oldPlaylist=this.playlist_;var segmentInfo=this.pendingSegment_;this.playlist_=newPlaylist;this.xhrOptions_=options;if(!this.hasPlayed_()){newPlaylist.syncInfo={mediaSequence:newPlaylist.mediaSequence,time:0};}
this.trigger('syncinfoupdate');if(this.state==='INIT'&&this.couldBeginLoading_()){return this.init_();}
if(!oldPlaylist||oldPlaylist.uri!==newPlaylist.uri){if(this.mediaIndex!==null){this.resyncLoader();}
return;}
var mediaSequenceDiff=newPlaylist.mediaSequence-oldPlaylist.mediaSequence;this.logger_('mediaSequenceDiff',mediaSequenceDiff);if(this.mediaIndex!==null){this.mediaIndex-=mediaSequenceDiff;}
if(segmentInfo){segmentInfo.mediaIndex-=mediaSequenceDiff;if(segmentInfo.mediaIndex>=0){segmentInfo.segment=newPlaylist.segments[segmentInfo.mediaIndex];}}
this.syncController_.saveExpiredSegmentInfo(oldPlaylist,newPlaylist);}},{key:'pause',value:function pause(){if(this.checkBufferTimeout_){_globalWindow2['default'].clearTimeout(this.checkBufferTimeout_);this.checkBufferTimeout_=null;}}},{key:'paused',value:function paused(){return this.checkBufferTimeout_===null;}},{key:'mimeType',value:function mimeType(_mimeType){if(this.mimeType_){return;}
this.mimeType_=_mimeType;if(this.state==='INIT'&&this.couldBeginLoading_()){this.init_();}}},{key:'resetEverything',value:function resetEverything(){this.resetLoader();this.remove(0,Infinity);}},{key:'resetLoader',value:function resetLoader(){this.fetchAtBuffer_=false;this.resyncLoader();}},{key:'resyncLoader',value:function resyncLoader(){this.mediaIndex=null;this.syncPoint_=null;}},{key:'remove',value:function remove(start,end){if(this.sourceUpdater_){this.sourceUpdater_.remove(start,end);}
(0,_videojsContribMediaSourcesEs5RemoveCuesFromTrackJs2['default'])(start,end,this.segmentMetadataTrack_);}},{key:'monitorBuffer_',value:function monitorBuffer_(){if(this.checkBufferTimeout_){_globalWindow2['default'].clearTimeout(this.checkBufferTimeout_);}
this.checkBufferTimeout_=_globalWindow2['default'].setTimeout(this.monitorBufferTick_.bind(this),1);}},{key:'monitorBufferTick_',value:function monitorBufferTick_(){if(this.state==='READY'){this.fillBuffer_();}
if(this.checkBufferTimeout_){_globalWindow2['default'].clearTimeout(this.checkBufferTimeout_);}
this.checkBufferTimeout_=_globalWindow2['default'].setTimeout(this.monitorBufferTick_.bind(this),CHECK_BUFFER_DELAY);}},{key:'fillBuffer_',value:function fillBuffer_(){if(this.sourceUpdater_.updating()){return;}
if(!this.syncPoint_){this.syncPoint_=this.syncController_.getSyncPoint(this.playlist_,this.duration_(),this.currentTimeline_,this.currentTime_());}
var segmentInfo=this.checkBuffer_(this.buffered_(),this.playlist_,this.mediaIndex,this.hasPlayed_(),this.currentTime_(),this.syncPoint_);if(!segmentInfo){return;}
var isEndOfStream=detectEndOfStream(this.playlist_,this.mediaSource_,segmentInfo.mediaIndex);if(isEndOfStream){this.mediaSource_.endOfStream();return;}
if(segmentInfo.mediaIndex===this.playlist_.segments.length-1&&this.mediaSource_.readyState==='ended'&&!this.seeking_()){return;}
if(segmentInfo.timeline!==this.currentTimeline_||segmentInfo.startOfSegment!==null&&segmentInfo.startOfSegment<this.sourceUpdater_.timestampOffset()){this.syncController_.reset();segmentInfo.timestampOffset=segmentInfo.startOfSegment;}
this.loadSegment_(segmentInfo);}},{key:'checkBuffer_',value:function checkBuffer_(buffered,playlist,mediaIndex,hasPlayed,currentTime,syncPoint){var lastBufferedEnd=0;var startOfSegment=undefined;if(buffered.length){lastBufferedEnd=buffered.end(buffered.length-1);}
var bufferedTime=Math.max(0,lastBufferedEnd-currentTime);if(!playlist.segments.length){return null;}
if(bufferedTime>=_config2['default'].GOAL_BUFFER_LENGTH){return null;}
if(!hasPlayed&&bufferedTime>=1){return null;}
this.logger_('checkBuffer_','mediaIndex:',mediaIndex,'hasPlayed:',hasPlayed,'currentTime:',currentTime,'syncPoint:',syncPoint,'fetchAtBuffer:',this.fetchAtBuffer_,'bufferedTime:',bufferedTime);if(syncPoint===null){mediaIndex=this.getSyncSegmentCandidate_(playlist);this.logger_('getSync','mediaIndex:',mediaIndex);return this.generateSegmentInfo_(playlist,mediaIndex,null,true);}
if(mediaIndex!==null){this.logger_('walkForward','mediaIndex:',mediaIndex+1);var segment=playlist.segments[mediaIndex];if(segment&&segment.end){startOfSegment=segment.end;}else{startOfSegment=lastBufferedEnd;}
return this.generateSegmentInfo_(playlist,mediaIndex+1,startOfSegment,false);}
if(this.fetchAtBuffer_){var mediaSourceInfo=(0,_playlist.getMediaInfoForTime_)(playlist,lastBufferedEnd,syncPoint.segmentIndex,syncPoint.time);mediaIndex=mediaSourceInfo.mediaIndex;startOfSegment=mediaSourceInfo.startTime;}else{var mediaSourceInfo=(0,_playlist.getMediaInfoForTime_)(playlist,currentTime,syncPoint.segmentIndex,syncPoint.time);mediaIndex=mediaSourceInfo.mediaIndex;startOfSegment=mediaSourceInfo.startTime;}
this.logger_('getMediaIndexForTime','mediaIndex:',mediaIndex,'startOfSegment:',startOfSegment);return this.generateSegmentInfo_(playlist,mediaIndex,startOfSegment,false);}},{key:'getSyncSegmentCandidate_',value:function getSyncSegmentCandidate_(playlist){var _this2=this;if(this.currentTimeline_===-1){return 0;}
var segmentIndexArray=playlist.segments.map(function(s,i){return{timeline:s.timeline,segmentIndex:i};}).filter(function(s){return s.timeline===_this2.currentTimeline_;});if(segmentIndexArray.length){return segmentIndexArray[Math.min(segmentIndexArray.length-1,1)].segmentIndex;}
return Math.max(playlist.segments.length-1,0);}},{key:'generateSegmentInfo_',value:function generateSegmentInfo_(playlist,mediaIndex,startOfSegment,isSyncRequest){if(mediaIndex<0||mediaIndex>=playlist.segments.length){return null;}
var segment=playlist.segments[mediaIndex];return{requestId:'segment-loader-'+Math.random(),uri:segment.resolvedUri,mediaIndex:mediaIndex,isSyncRequest:isSyncRequest,startOfSegment:startOfSegment,playlist:playlist,bytes:null,encryptedBytes:null,timestampOffset:null,timeline:segment.timeline,duration:segment.duration,segment:segment};}},{key:'loadSegment_',value:function loadSegment_(segmentInfo){var _this3=this;this.state='WAITING';this.pendingSegment_=segmentInfo;this.trimBackBuffer_(segmentInfo);segmentInfo.abortRequests=(0,_mediaSegmentRequest.mediaSegmentRequest)(this.hls_.xhr,this.xhrOptions_,this.decrypter_,this.createSimplifiedSegmentObj_(segmentInfo),function(event,segment){if(!_this3.pendingSegment_||segment.requestId!==_this3.pendingSegment_.requestId){return;}
_this3.trigger('progress');},this.segmentRequestFinished_.bind(this));}},{key:'trimBackBuffer_',value:function trimBackBuffer_(segmentInfo){var seekable=this.seekable_();var currentTime=this.currentTime_();var removeToTime=0;if(seekable.length&&seekable.start(0)>0&&seekable.start(0)<currentTime){removeToTime=seekable.start(0);}else{removeToTime=currentTime-60;}
if(removeToTime>0){this.remove(0,removeToTime);}}},{key:'createSimplifiedSegmentObj_',value:function createSimplifiedSegmentObj_(segmentInfo){var segment=segmentInfo.segment;var simpleSegment={resolvedUri:segment.resolvedUri,byterange:segment.byterange,requestId:segmentInfo.requestId};if(segment.key){var iv=segment.key.iv||new Uint32Array([0,0,0,segmentInfo.mediaIndex+segmentInfo.playlist.mediaSequence]);simpleSegment.key={resolvedUri:segment.key.resolvedUri,iv:iv};}
if(segment.map){simpleSegment.map=this.initSegment(segment.map);}
return simpleSegment;}},{key:'segmentRequestFinished_',value:function segmentRequestFinished_(error,simpleSegment){this.mediaRequests+=1;if(simpleSegment.stats){this.mediaBytesTransferred+=simpleSegment.stats.bytesReceived;this.mediaTransferDuration+=simpleSegment.stats.roundTripTime;}
if(!this.pendingSegment_){this.mediaRequestsAborted+=1;return;}
if(simpleSegment.requestId!==this.pendingSegment_.requestId){return;}
if(error){this.pendingSegment_=null;if(error.code===_mediaSegmentRequest.REQUEST_ERRORS.ABORTED){this.mediaRequestsAborted+=1;return;}
this.state='READY';this.pause();if(error.code===_mediaSegmentRequest.REQUEST_ERRORS.TIMEOUT){this.mediaRequestsTimedout+=1;this.bandwidth=1;this.roundTrip=NaN;this.trigger('bandwidthupdate');return;}
this.mediaRequestsErrored+=1;this.error(error);this.trigger('error');return;}
this.bandwidth=simpleSegment.stats.bandwidth;this.roundTrip=simpleSegment.stats.roundTripTime;if(simpleSegment.map){simpleSegment.map=this.initSegment(simpleSegment.map,true);}
this.processSegmentResponse_(simpleSegment);}},{key:'processSegmentResponse_',value:function processSegmentResponse_(simpleSegment){var segmentInfo=this.pendingSegment_;segmentInfo.bytes=simpleSegment.bytes;if(simpleSegment.map){segmentInfo.segment.map.bytes=simpleSegment.map.bytes;}
segmentInfo.endOfAllRequests=simpleSegment.endOfAllRequests;this.handleSegment_();}},{key:'handleSegment_',value:function handleSegment_(){var _this4=this;if(!this.pendingSegment_){this.state='READY';return;}
this.state='APPENDING';var segmentInfo=this.pendingSegment_;var segment=segmentInfo.segment;this.syncController_.probeSegmentInfo(segmentInfo);if(segmentInfo.isSyncRequest){this.trigger('syncinfoupdate');this.pendingSegment_=null;this.state='READY';return;}
if(segmentInfo.timestampOffset!==null&&segmentInfo.timestampOffset!==this.sourceUpdater_.timestampOffset()){this.sourceUpdater_.timestampOffset(segmentInfo.timestampOffset);}
if(segment.map){(function(){var initId=(0,_binUtils.initSegmentId)(segment.map);if(!_this4.activeInitSegmentId_||_this4.activeInitSegmentId_!==initId){var initSegment=_this4.initSegment(segment.map);_this4.sourceUpdater_.appendBuffer(initSegment.bytes,function(){_this4.activeInitSegmentId_=initId;});}})();}
segmentInfo.byteLength=segmentInfo.bytes.byteLength;if(typeof segment.start==='number'&&typeof segment.end==='number'){this.mediaSecondsLoaded+=segment.end-segment.start;}else{this.mediaSecondsLoaded+=segment.duration;}
this.sourceUpdater_.appendBuffer(segmentInfo.bytes,this.handleUpdateEnd_.bind(this));}},{key:'handleUpdateEnd_',value:function handleUpdateEnd_(){this.logger_('handleUpdateEnd_','segmentInfo:',this.pendingSegment_);if(!this.pendingSegment_){this.state='READY';if(!this.paused()){this.monitorBuffer_();}
return;}
var segmentInfo=this.pendingSegment_;var segment=segmentInfo.segment;var isWalkingForward=this.mediaIndex!==null;this.pendingSegment_=null;this.recordThroughput_(segmentInfo);this.addSegmentMetadataCue_(segmentInfo);this.state='READY';this.mediaIndex=segmentInfo.mediaIndex;this.fetchAtBuffer_=true;this.currentTimeline_=segmentInfo.timeline;this.trigger('syncinfoupdate');if(segment.end&&this.currentTime_()-segment.end>segmentInfo.playlist.targetDuration*3){this.resetEverything();return;}
if(isWalkingForward){this.trigger('bandwidthupdate');}
this.trigger('progress');var isEndOfStream=detectEndOfStream(segmentInfo.playlist,this.mediaSource_,segmentInfo.mediaIndex+1);if(isEndOfStream){this.mediaSource_.endOfStream();}
if(!this.paused()){this.monitorBuffer_();}}},{key:'recordThroughput_',value:function recordThroughput_(segmentInfo){var rate=this.throughput.rate;var segmentProcessingTime=Date.now()-segmentInfo.endOfAllRequests+1;var segmentProcessingThroughput=Math.floor(segmentInfo.byteLength/segmentProcessingTime*8*1000);this.throughput.rate+=(segmentProcessingThroughput-rate)/++this.throughput.count;}},{key:'logger_',value:function logger_(){}},{key:'addSegmentMetadataCue_',value:function addSegmentMetadataCue_(segmentInfo){if(!this.segmentMetadataTrack_){return;}
var segment=segmentInfo.segment;var start=segment.start;var end=segment.end;(0,_videojsContribMediaSourcesEs5RemoveCuesFromTrackJs2['default'])(start,end,this.segmentMetadataTrack_);var Cue=_globalWindow2['default'].WebKitDataCue||_globalWindow2['default'].VTTCue;var value={uri:segmentInfo.uri,timeline:segmentInfo.timeline,playlist:segmentInfo.playlist.uri,start:start,end:end};var data=JSON.stringify(value);var cue=new Cue(start,end,data);cue.value=value;this.segmentMetadataTrack_.addCue(cue);}}]);return SegmentLoader;})(_videoJs2['default'].EventTarget);exports['default']=SegmentLoader;module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./bin-utils":2,"./config":3,"./media-segment-request":6,"./playlist":9,"./source-updater":15,"global/window":30,"videojs-contrib-media-sources/es5/remove-cues-from-track.js":71}],15:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var SourceUpdater=(function(){function SourceUpdater(mediaSource,mimeType){var _this=this;_classCallCheck(this,SourceUpdater);var createSourceBuffer=function createSourceBuffer(){_this.sourceBuffer_=mediaSource.addSourceBuffer(mimeType);_this.onUpdateendCallback_=function(){var pendingCallback=_this.pendingCallback_;_this.pendingCallback_=null;if(pendingCallback){pendingCallback();}
_this.runCallback_();};_this.sourceBuffer_.addEventListener('updateend',_this.onUpdateendCallback_);_this.runCallback_();};this.callbacks_=[];this.pendingCallback_=null;this.timestampOffset_=0;this.mediaSource=mediaSource;if(mediaSource.readyState==='closed'){mediaSource.addEventListener('sourceopen',createSourceBuffer);}else{createSourceBuffer();}}
_createClass(SourceUpdater,[{key:'abort',value:function abort(done){var _this2=this;this.queueCallback_(function(){_this2.sourceBuffer_.abort();},done);}},{key:'appendBuffer',value:function appendBuffer(bytes,done){var _this3=this;this.queueCallback_(function(){_this3.sourceBuffer_.appendBuffer(bytes);},done);}},{key:'buffered',value:function buffered(){if(!this.sourceBuffer_){return _videoJs2['default'].createTimeRanges();}
return this.sourceBuffer_.buffered;}},{key:'duration',value:function duration(_duration){var _this4=this;this.queueCallback_(function(){_this4.sourceBuffer_.duration=_duration;});}},{key:'remove',value:function remove(start,end){var _this5=this;this.queueCallback_(function(){_this5.sourceBuffer_.remove(start,end);});}},{key:'updating',value:function updating(){return!this.sourceBuffer_||this.sourceBuffer_.updating||this.pendingCallback_;}},{key:'timestampOffset',value:function timestampOffset(offset){var _this6=this;if(typeof offset!=='undefined'){this.queueCallback_(function(){_this6.sourceBuffer_.timestampOffset=offset;});this.timestampOffset_=offset;}
return this.timestampOffset_;}},{key:'queueCallback_',value:function queueCallback_(callback,done){this.callbacks_.push([callback.bind(this),done]);this.runCallback_();}},{key:'runCallback_',value:function runCallback_(){var callbacks=undefined;if(!this.updating()&&this.callbacks_.length){callbacks=this.callbacks_.shift();this.pendingCallback_=callbacks[1];callbacks[0]();}}},{key:'dispose',value:function dispose(){this.sourceBuffer_.removeEventListener('updateend',this.onUpdateendCallback_);if(this.sourceBuffer_&&this.mediaSource.readyState==='open'){this.sourceBuffer_.abort();}}}]);return SourceUpdater;})();exports['default']=SourceUpdater;module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],16:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
var Stream=(function(){function Stream(){_classCallCheck(this,Stream);this.listeners={};}
_createClass(Stream,[{key:'on',value:function on(type,listener){if(!this.listeners[type]){this.listeners[type]=[];}
this.listeners[type].push(listener);}},{key:'off',value:function off(type,listener){var index=undefined;if(!this.listeners[type]){return false;}
index=this.listeners[type].indexOf(listener);this.listeners[type].splice(index,1);return index>-1;}},{key:'trigger',value:function trigger(type){var callbacks=undefined;var i=undefined;var length=undefined;var args=undefined;callbacks=this.listeners[type];if(!callbacks){return;}
if(arguments.length===2){length=callbacks.length;for(i=0;i<length;++i){callbacks[i].call(this,arguments[1]);}}else{args=Array.prototype.slice.call(arguments,1);length=callbacks.length;for(i=0;i<length;++i){callbacks[i].apply(this,args);}}}},{key:'dispose',value:function dispose(){this.listeners={};}},{key:'pipe',value:function pipe(destination){this.on('data',function(data){destination.push(data);});}}]);return Stream;})();exports['default']=Stream;module.exports=exports['default'];},{}],17:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();var _get=function get(_x,_x2,_x3){var _again=true;_function:while(_again){var object=_x,property=_x2,receiver=_x3;_again=false;if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{_x=parent;_x2=property;_x3=receiver;_again=true;desc=parent=undefined;continue _function;}}else if('value'in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}}};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var _muxJsLibMp4Probe=require('mux.js/lib/mp4/probe');var _muxJsLibMp4Probe2=_interopRequireDefault(_muxJsLibMp4Probe);var _muxJsLibToolsTsInspectorJs=require('mux.js/lib/tools/ts-inspector.js');var _playlist=require('./playlist');var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var syncPointStrategies=[{name:'VOD',run:function run(syncController,playlist,duration,currentTimeline,currentTime){if(duration!==Infinity){var syncPoint={time:0,segmentIndex:0};return syncPoint;}
return null;}},{name:'ProgramDateTime',run:function run(syncController,playlist,duration,currentTimeline,currentTime){if(syncController.datetimeToDisplayTime&&playlist.dateTimeObject){var playlistTime=playlist.dateTimeObject.getTime()/1000;var playlistStart=playlistTime+syncController.datetimeToDisplayTime;var syncPoint={time:playlistStart,segmentIndex:0};return syncPoint;}
return null;}},{name:'Segment',run:function run(syncController,playlist,duration,currentTimeline,currentTime){var segments=playlist.segments;var syncPoint=null;var lastDistance=null;currentTime=currentTime||0;for(var i=0;i<segments.length;i++){var segment=segments[i];if(segment.timeline===currentTimeline&&typeof segment.start!=='undefined'){var distance=Math.abs(currentTime-segment.start);if(lastDistance!==null&&lastDistance<distance){break;}
if(!syncPoint||lastDistance===null||lastDistance>=distance){lastDistance=distance;syncPoint={time:segment.start,segmentIndex:i};}}}
return syncPoint;}},{name:'Discontinuity',run:function run(syncController,playlist,duration,currentTimeline,currentTime){var syncPoint=null;currentTime=currentTime||0;if(playlist.discontinuityStarts.length){var lastDistance=null;for(var i=0;i<playlist.discontinuityStarts.length;i++){var segmentIndex=playlist.discontinuityStarts[i];var discontinuity=playlist.discontinuitySequence+i+1;var discontinuitySync=syncController.discontinuities[discontinuity];if(discontinuitySync){var distance=Math.abs(currentTime-discontinuitySync.time);if(lastDistance!==null&&lastDistance<distance){break;}
if(!syncPoint||lastDistance===null||lastDistance>=distance){lastDistance=distance;syncPoint={time:discontinuitySync.time,segmentIndex:segmentIndex};}}}}
return syncPoint;}},{name:'Playlist',run:function run(syncController,playlist,duration,currentTimeline,currentTime){if(playlist.syncInfo){var syncPoint={time:playlist.syncInfo.time,segmentIndex:playlist.syncInfo.mediaSequence-playlist.mediaSequence};return syncPoint;}
return null;}}];exports.syncPointStrategies=syncPointStrategies;var SyncController=(function(_videojs$EventTarget){_inherits(SyncController,_videojs$EventTarget);function SyncController(){_classCallCheck(this,SyncController);_get(Object.getPrototypeOf(SyncController.prototype),'constructor',this).call(this);this.inspectCache_=undefined;this.timelines=[];this.discontinuities=[];this.datetimeToDisplayTime=null;if(_videoJs2['default'].options.hls&&_videoJs2['default'].options.hls.debug){this.logger_=_videoJs2['default'].log.bind(_videoJs2['default'],'sync-controller ->');}}
_createClass(SyncController,[{key:'getSyncPoint',value:function getSyncPoint(playlist,duration,currentTimeline,currentTime){var syncPoints=[];for(var i=0;i<syncPointStrategies.length;i++){var strategy=syncPointStrategies[i];var syncPoint=strategy.run(this,playlist,duration,currentTimeline,currentTime);if(syncPoint){syncPoint.strategy=strategy.name;syncPoints.push({strategy:strategy.name,syncPoint:syncPoint});this.logger_('syncPoint found via <'+strategy.name+'>:',syncPoint);}}
if(!syncPoints.length){return null;}
var bestSyncPoint=syncPoints[0].syncPoint;var bestDistance=Math.abs(syncPoints[0].syncPoint.time-currentTime);var bestStrategy=syncPoints[0].strategy;for(var i=1;i<syncPoints.length;i++){var newDistance=Math.abs(syncPoints[i].syncPoint.time-currentTime);if(newDistance<bestDistance){bestDistance=newDistance;bestSyncPoint=syncPoints[i].syncPoint;bestStrategy=syncPoints[i].strategy;}}
this.logger_('syncPoint with strategy <'+bestStrategy+'> chosen: ',bestSyncPoint);return bestSyncPoint;}},{key:'saveExpiredSegmentInfo',value:function saveExpiredSegmentInfo(oldPlaylist,newPlaylist){var mediaSequenceDiff=newPlaylist.mediaSequence-oldPlaylist.mediaSequence;for(var i=mediaSequenceDiff-1;i>=0;i--){var lastRemovedSegment=oldPlaylist.segments[i];if(lastRemovedSegment&&typeof lastRemovedSegment.start!=='undefined'){newPlaylist.syncInfo={mediaSequence:oldPlaylist.mediaSequence+i,time:lastRemovedSegment.start};this.logger_('playlist sync:',newPlaylist.syncInfo);this.trigger('syncinfoupdate');break;}}}},{key:'setDateTimeMapping',value:function setDateTimeMapping(playlist){if(!this.datetimeToDisplayTime&&playlist.dateTimeObject){var playlistTimestamp=playlist.dateTimeObject.getTime()/1000;this.datetimeToDisplayTime=-playlistTimestamp;}}},{key:'reset',value:function reset(){this.inspectCache_=undefined;}},{key:'probeSegmentInfo',value:function probeSegmentInfo(segmentInfo){var segment=segmentInfo.segment;var timingInfo=undefined;if(segment.map){timingInfo=this.probeMp4Segment_(segmentInfo);}else{timingInfo=this.probeTsSegment_(segmentInfo);}
if(timingInfo){if(this.calculateSegmentTimeMapping_(segmentInfo,timingInfo)){this.saveDiscontinuitySyncInfo_(segmentInfo);}}}},{key:'probeMp4Segment_',value:function probeMp4Segment_(segmentInfo){var segment=segmentInfo.segment;var timescales=_muxJsLibMp4Probe2['default'].timescale(segment.map.bytes);var startTime=_muxJsLibMp4Probe2['default'].startTime(timescales,segmentInfo.bytes);if(segmentInfo.timestampOffset!==null){segmentInfo.timestampOffset-=startTime;}
return{start:startTime,end:startTime+segment.duration};}},{key:'probeTsSegment_',value:function probeTsSegment_(segmentInfo){var timeInfo=(0,_muxJsLibToolsTsInspectorJs.inspect)(segmentInfo.bytes,this.inspectCache_);var segmentStartTime=undefined;var segmentEndTime=undefined;if(!timeInfo){return null;}
if(timeInfo.video&&timeInfo.video.length===2){this.inspectCache_=timeInfo.video[1].dts;segmentStartTime=timeInfo.video[0].dtsTime;segmentEndTime=timeInfo.video[1].dtsTime;}else if(timeInfo.audio&&timeInfo.audio.length===2){this.inspectCache_=timeInfo.audio[1].dts;segmentStartTime=timeInfo.audio[0].dtsTime;segmentEndTime=timeInfo.audio[1].dtsTime;}
return{start:segmentStartTime,end:segmentEndTime};}},{key:'timestampOffsetForTimeline',value:function timestampOffsetForTimeline(timeline){if(typeof this.timelines[timeline]==='undefined'){return null;}
return this.timelines[timeline].time;}},{key:'calculateSegmentTimeMapping_',value:function calculateSegmentTimeMapping_(segmentInfo,timingInfo){var segment=segmentInfo.segment;var mappingObj=this.timelines[segmentInfo.timeline];if(segmentInfo.timestampOffset!==null){this.logger_('tsO:',segmentInfo.timestampOffset);mappingObj={time:segmentInfo.startOfSegment,mapping:segmentInfo.startOfSegment-timingInfo.start};this.timelines[segmentInfo.timeline]=mappingObj;this.trigger('timestampoffset');segment.start=segmentInfo.startOfSegment;segment.end=timingInfo.end+mappingObj.mapping;}else if(mappingObj){segment.start=timingInfo.start+mappingObj.mapping;segment.end=timingInfo.end+mappingObj.mapping;}else{return false;}
return true;}},{key:'saveDiscontinuitySyncInfo_',value:function saveDiscontinuitySyncInfo_(segmentInfo){var playlist=segmentInfo.playlist;var segment=segmentInfo.segment;if(segment.discontinuity){this.discontinuities[segment.timeline]={time:segment.start,accuracy:0};}else if(playlist.discontinuityStarts.length){for(var i=0;i<playlist.discontinuityStarts.length;i++){var segmentIndex=playlist.discontinuityStarts[i];var discontinuity=playlist.discontinuitySequence+i+1;var mediaIndexDiff=segmentIndex-segmentInfo.mediaIndex;var accuracy=Math.abs(mediaIndexDiff);if(!this.discontinuities[discontinuity]||this.discontinuities[discontinuity].accuracy>accuracy){if(mediaIndexDiff<0){this.discontinuities[discontinuity]={time:segment.start-(0,_playlist.sumDurations)(playlist,segmentInfo.mediaIndex,segmentIndex),accuracy:accuracy};}else{this.discontinuities[discontinuity]={time:segment.end+(0,_playlist.sumDurations)(playlist,segmentInfo.mediaIndex+1,segmentIndex),accuracy:accuracy};}}}}}},{key:'logger_',value:function logger_(){}}]);return SyncController;})(_videoJs2['default'].EventTarget);exports['default']=SyncController;}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./playlist":9,"mux.js/lib/mp4/probe":55,"mux.js/lib/tools/ts-inspector.js":57}],18:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();var _get=function get(_x2,_x3,_x4){var _again=true;_function:while(_again){var object=_x2,property=_x3,receiver=_x4;_again=false;if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{_x2=parent;_x3=property;_x4=receiver;_again=true;desc=parent=undefined;continue _function;}}else if('value'in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}}};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var _segmentLoader=require('./segment-loader');var _segmentLoader2=_interopRequireDefault(_segmentLoader);var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var _videojsContribMediaSourcesEs5RemoveCuesFromTrackJs=require('videojs-contrib-media-sources/es5/remove-cues-from-track.js');var _videojsContribMediaSourcesEs5RemoveCuesFromTrackJs2=_interopRequireDefault(_videojsContribMediaSourcesEs5RemoveCuesFromTrackJs);var _binUtils=require('./bin-utils');var VTT_LINE_TERMINATORS=new Uint8Array('\n\n'.split('').map(function(char){return char.charCodeAt(0);}));var uintToString=function uintToString(uintArray){return String.fromCharCode.apply(null,uintArray);};var VTTSegmentLoader=(function(_SegmentLoader){_inherits(VTTSegmentLoader,_SegmentLoader);function VTTSegmentLoader(options){_classCallCheck(this,VTTSegmentLoader);_get(Object.getPrototypeOf(VTTSegmentLoader.prototype),'constructor',this).call(this,options);this.mediaSource_=null;this.subtitlesTrack_=null;}
_createClass(VTTSegmentLoader,[{key:'buffered_',value:function buffered_(){if(!this.subtitlesTrack_||!this.subtitlesTrack_.cues.length){return _videoJs2['default'].createTimeRanges();}
var cues=this.subtitlesTrack_.cues;var start=cues[0].startTime;var end=cues[cues.length-1].startTime;return _videoJs2['default'].createTimeRanges([[start,end]]);}},{key:'initSegment',value:function initSegment(map){var set=arguments.length<=1||arguments[1]===undefined?false:arguments[1];if(!map){return null;}
var id=(0,_binUtils.initSegmentId)(map);var storedMap=this.initSegments_[id];if(set&&!storedMap&&map.bytes){var combinedByteLength=VTT_LINE_TERMINATORS.byteLength+map.bytes.byteLength;var combinedSegment=new Uint8Array(combinedByteLength);combinedSegment.set(map.bytes);combinedSegment.set(VTT_LINE_TERMINATORS,map.bytes.byteLength);this.initSegments_[id]=storedMap={resolvedUri:map.resolvedUri,byterange:map.byterange,bytes:combinedSegment};}
return storedMap||map;}},{key:'couldBeginLoading_',value:function couldBeginLoading_(){return this.playlist_&&this.subtitlesTrack_&&!this.paused();}},{key:'init_',value:function init_(){this.state='READY';this.resetEverything();return this.monitorBuffer_();}},{key:'track',value:function track(_track){this.subtitlesTrack_=_track;if(this.state==='INIT'&&this.couldBeginLoading_()){this.init_();}}},{key:'remove',value:function remove(start,end){(0,_videojsContribMediaSourcesEs5RemoveCuesFromTrackJs2['default'])(start,end,this.subtitlesTrack_);}},{key:'fillBuffer_',value:function fillBuffer_(){var _this=this;if(!this.syncPoint_){this.syncPoint_=this.syncController_.getSyncPoint(this.playlist_,this.duration_(),this.currentTimeline_,this.currentTime_());}
var segmentInfo=this.checkBuffer_(this.buffered_(),this.playlist_,this.mediaIndex,this.hasPlayed_(),this.currentTime_(),this.syncPoint_);segmentInfo=this.skipEmptySegments_(segmentInfo);if(!segmentInfo){return;}
if(this.syncController_.timestampOffsetForTimeline(segmentInfo.timeline)===null){var checkTimestampOffset=function checkTimestampOffset(){_this.state='READY';if(!_this.paused()){_this.monitorBuffer_();}};this.syncController_.one('timestampoffset',checkTimestampOffset);this.state='WAITING_ON_TIMELINE';return;}
this.loadSegment_(segmentInfo);}},{key:'skipEmptySegments_',value:function skipEmptySegments_(segmentInfo){while(segmentInfo&&segmentInfo.segment.empty){segmentInfo=this.generateSegmentInfo_(segmentInfo.playlist,segmentInfo.mediaIndex+1,segmentInfo.startOfSegment+segmentInfo.duration,segmentInfo.isSyncRequest);}
return segmentInfo;}},{key:'handleSegment_',value:function handleSegment_(){var _this2=this;if(!this.pendingSegment_){this.state='READY';return;}
this.state='APPENDING';var segmentInfo=this.pendingSegment_;var segment=segmentInfo.segment;if(typeof _globalWindow2['default'].WebVTT!=='function'&&this.subtitlesTrack_&&this.subtitlesTrack_.tech_){var _ret=(function(){var loadHandler=function loadHandler(){_this2.handleSegment_();};_this2.state='WAITING_ON_VTTJS';_this2.subtitlesTrack_.tech_.one('vttjsloaded',loadHandler);_this2.subtitlesTrack_.tech_.one('vttjserror',function(){_this2.subtitlesTrack_.tech_.off('vttjsloaded',loadHandler);_this2.error({message:'Error loading vtt.js'});_this2.state='READY';_this2.pause();_this2.trigger('error');});return{v:undefined};})();if(typeof _ret==='object')return _ret.v;}
segment.requested=true;try{this.parseVTTCues_(segmentInfo);}catch(e){this.error({message:e.message});this.state='READY';this.pause();return this.trigger('error');}
this.updateTimeMapping_(segmentInfo,this.syncController_.timelines[segmentInfo.timeline],this.playlist_);if(segmentInfo.isSyncRequest){this.trigger('syncinfoupdate');this.pendingSegment_=null;this.state='READY';return;}
segmentInfo.byteLength=segmentInfo.bytes.byteLength;this.mediaSecondsLoaded+=segment.duration;segmentInfo.cues.forEach(function(cue){_this2.subtitlesTrack_.addCue(cue);});this.handleUpdateEnd_();}},{key:'parseVTTCues_',value:function parseVTTCues_(segmentInfo){var decoder=undefined;var decodeBytesToString=false;if(typeof _globalWindow2['default'].TextDecoder==='function'){decoder=new _globalWindow2['default'].TextDecoder('utf8');}else{decoder=_globalWindow2['default'].WebVTT.StringDecoder();decodeBytesToString=true;}
var parser=new _globalWindow2['default'].WebVTT.Parser(_globalWindow2['default'],_globalWindow2['default'].vttjs,decoder);segmentInfo.cues=[];segmentInfo.timestampmap={MPEGTS:0,LOCAL:0};parser.oncue=segmentInfo.cues.push.bind(segmentInfo.cues);parser.ontimestampmap=function(map){return segmentInfo.timestampmap=map;};parser.onparsingerror=function(error){_videoJs2['default'].log.warn('Error encountered when parsing cues: '+error.message);};if(segmentInfo.segment.map){var mapData=segmentInfo.segment.map.bytes;if(decodeBytesToString){mapData=uintToString(mapData);}
parser.parse(mapData);}
var segmentData=segmentInfo.bytes;if(decodeBytesToString){segmentData=uintToString(segmentData);}
parser.parse(segmentData);parser.flush();}},{key:'updateTimeMapping_',value:function updateTimeMapping_(segmentInfo,mappingObj,playlist){var segment=segmentInfo.segment;if(!mappingObj){return;}
if(!segmentInfo.cues.length){segment.empty=true;return;}
var timestampmap=segmentInfo.timestampmap;var diff=timestampmap.MPEGTS/90000-timestampmap.LOCAL+mappingObj.mapping;segmentInfo.cues.forEach(function(cue){cue.startTime+=diff;cue.endTime+=diff;});if(!playlist.syncInfo){var firstStart=segmentInfo.cues[0].startTime;var lastStart=segmentInfo.cues[segmentInfo.cues.length-1].startTime;playlist.syncInfo={mediaSequence:playlist.mediaSequence+segmentInfo.mediaIndex,time:Math.min(firstStart,lastStart-segment.duration)};}}}]);return VTTSegmentLoader;})(_segmentLoader2['default']);exports['default']=VTTSegmentLoader;module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./bin-utils":2,"./segment-loader":14,"global/window":30,"videojs-contrib-media-sources/es5/remove-cues-from-track.js":71}],19:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var xhrFactory=function xhrFactory(){var xhr=function XhrFunction(options,callback){options=(0,_videoJs.mergeOptions)({timeout:45e3},options);var beforeRequest=XhrFunction.beforeRequest||_videoJs2['default'].Hls.xhr.beforeRequest;if(beforeRequest&&typeof beforeRequest==='function'){var newOptions=beforeRequest(options);if(newOptions){options=newOptions;}}
var request=(0,_videoJs.xhr)(options,function(error,response){var reqResponse=request.response;if(!error&&reqResponse){request.responseTime=Date.now();request.roundTripTime=request.responseTime-request.requestTime;request.bytesReceived=reqResponse.byteLength||reqResponse.length;if(!request.bandwidth){request.bandwidth=Math.floor(request.bytesReceived/request.roundTripTime*8*1000);}}
if(error&&error.code==='ETIMEDOUT'){request.timedout=true;}
if(!error&&!request.aborted&&response.statusCode!==200&&response.statusCode!==206&&response.statusCode!==0){error=new Error('XHR Failed with a response of: '+(request&&(reqResponse||request.responseText)));}
callback(error,request);});var originalAbort=request.abort;request.abort=function(){request.aborted=true;return originalAbort.apply(request,arguments);};request.uri=options.uri;request.requestTime=Date.now();return request;};return xhr;};exports['default']=xhrFactory;module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],20:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
var precompute=function precompute(){var tables=[[[],[],[],[],[]],[[],[],[],[],[]]];var encTable=tables[0];var decTable=tables[1];var sbox=encTable[4];var sboxInv=decTable[4];var i=undefined;var x=undefined;var xInv=undefined;var d=[];var th=[];var x2=undefined;var x4=undefined;var x8=undefined;var s=undefined;var tEnc=undefined;var tDec=undefined;for(i=0;i<256;i++){th[(d[i]=i<<1^(i>>7)*283)^i]=i;}
for(x=xInv=0;!sbox[x];x^=x2||1,xInv=th[xInv]||1){s=xInv^xInv<<1^xInv<<2^xInv<<3^xInv<<4;s=s>>8^s&255^99;sbox[x]=s;sboxInv[s]=x;x8=d[x4=d[x2=d[x]]];tDec=x8*0x1010101^x4*0x10001^x2*0x101^x*0x1010100;tEnc=d[s]*0x101^s*0x1010100;for(i=0;i<4;i++){encTable[i][x]=tEnc=tEnc<<24^tEnc>>>8;decTable[i][s]=tDec=tDec<<24^tDec>>>8;}}
for(i=0;i<5;i++){encTable[i]=encTable[i].slice(0);decTable[i]=decTable[i].slice(0);}
return tables;};var aesTables=null;var AES=(function(){function AES(key){_classCallCheck(this,AES);if(!aesTables){aesTables=precompute();}
this._tables=[[aesTables[0][0].slice(),aesTables[0][1].slice(),aesTables[0][2].slice(),aesTables[0][3].slice(),aesTables[0][4].slice()],[aesTables[1][0].slice(),aesTables[1][1].slice(),aesTables[1][2].slice(),aesTables[1][3].slice(),aesTables[1][4].slice()]];var i=undefined;var j=undefined;var tmp=undefined;var encKey=undefined;var decKey=undefined;var sbox=this._tables[0][4];var decTable=this._tables[1];var keyLen=key.length;var rcon=1;if(keyLen!==4&&keyLen!==6&&keyLen!==8){throw new Error('Invalid aes key size');}
encKey=key.slice(0);decKey=[];this._key=[encKey,decKey];for(i=keyLen;i<4*keyLen+28;i++){tmp=encKey[i-1];if(i%keyLen===0||keyLen===8&&i%keyLen===4){tmp=sbox[tmp>>>24]<<24^sbox[tmp>>16&255]<<16^sbox[tmp>>8&255]<<8^sbox[tmp&255];if(i%keyLen===0){tmp=tmp<<8^tmp>>>24^rcon<<24;rcon=rcon<<1^(rcon>>7)*283;}}
encKey[i]=encKey[i-keyLen]^tmp;}
for(j=0;i;j++,i--){tmp=encKey[j&3?i:i-4];if(i<=4||j<4){decKey[j]=tmp;}else{decKey[j]=decTable[0][sbox[tmp>>>24]]^decTable[1][sbox[tmp>>16&255]]^decTable[2][sbox[tmp>>8&255]]^decTable[3][sbox[tmp&255]];}}}
_createClass(AES,[{key:'decrypt',value:function decrypt(encrypted0,encrypted1,encrypted2,encrypted3,out,offset){var key=this._key[1];var a=encrypted0^key[0];var b=encrypted3^key[1];var c=encrypted2^key[2];var d=encrypted1^key[3];var a2=undefined;var b2=undefined;var c2=undefined;var nInnerRounds=key.length/4-2;var i=undefined;var kIndex=4;var table=this._tables[1];var table0=table[0];var table1=table[1];var table2=table[2];var table3=table[3];var sbox=table[4];for(i=0;i<nInnerRounds;i++){a2=table0[a>>>24]^table1[b>>16&255]^table2[c>>8&255]^table3[d&255]^key[kIndex];b2=table0[b>>>24]^table1[c>>16&255]^table2[d>>8&255]^table3[a&255]^key[kIndex+1];c2=table0[c>>>24]^table1[d>>16&255]^table2[a>>8&255]^table3[b&255]^key[kIndex+2];d=table0[d>>>24]^table1[a>>16&255]^table2[b>>8&255]^table3[c&255]^key[kIndex+3];kIndex+=4;a=a2;b=b2;c=c2;}
for(i=0;i<4;i++){out[(3&-i)+offset]=sbox[a>>>24]<<24^sbox[b>>16&255]<<16^sbox[c>>8&255]<<8^sbox[d&255]^key[kIndex++];a2=a;a=b;b=c;c=d;d=a2;}}}]);return AES;})();exports['default']=AES;module.exports=exports['default'];},{}],21:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();var _get=function get(_x,_x2,_x3){var _again=true;_function:while(_again){var object=_x,property=_x2,receiver=_x3;_again=false;if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{_x=parent;_x2=property;_x3=receiver;_again=true;desc=parent=undefined;continue _function;}}else if('value'in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}}};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var _stream=require('./stream');var _stream2=_interopRequireDefault(_stream);var AsyncStream=(function(_Stream){_inherits(AsyncStream,_Stream);function AsyncStream(){_classCallCheck(this,AsyncStream);_get(Object.getPrototypeOf(AsyncStream.prototype),'constructor',this).call(this,_stream2['default']);this.jobs=[];this.delay=1;this.timeout_=null;}
_createClass(AsyncStream,[{key:'processJob_',value:function processJob_(){this.jobs.shift()();if(this.jobs.length){this.timeout_=setTimeout(this.processJob_.bind(this),this.delay);}else{this.timeout_=null;}}},{key:'push',value:function push(job){this.jobs.push(job);if(!this.timeout_){this.timeout_=setTimeout(this.processJob_.bind(this),this.delay);}}}]);return AsyncStream;})(_stream2['default']);exports['default']=AsyncStream;module.exports=exports['default'];},{"./stream":24}],22:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
var _aes=require('./aes');var _aes2=_interopRequireDefault(_aes);var _asyncStream=require('./async-stream');var _asyncStream2=_interopRequireDefault(_asyncStream);var _pkcs7=require('pkcs7');var ntoh=function ntoh(word){return word<<24|(word&0xff00)<<8|(word&0xff0000)>>8|word>>>24;};var decrypt=function decrypt(encrypted,key,initVector){var encrypted32=new Int32Array(encrypted.buffer,encrypted.byteOffset,encrypted.byteLength>>2);var decipher=new _aes2['default'](Array.prototype.slice.call(key));var decrypted=new Uint8Array(encrypted.byteLength);var decrypted32=new Int32Array(decrypted.buffer);var init0=undefined;var init1=undefined;var init2=undefined;var init3=undefined;var encrypted0=undefined;var encrypted1=undefined;var encrypted2=undefined;var encrypted3=undefined;var wordIx=undefined;init0=initVector[0];init1=initVector[1];init2=initVector[2];init3=initVector[3];for(wordIx=0;wordIx<encrypted32.length;wordIx+=4){encrypted0=ntoh(encrypted32[wordIx]);encrypted1=ntoh(encrypted32[wordIx+1]);encrypted2=ntoh(encrypted32[wordIx+2]);encrypted3=ntoh(encrypted32[wordIx+3]);decipher.decrypt(encrypted0,encrypted1,encrypted2,encrypted3,decrypted32,wordIx);decrypted32[wordIx]=ntoh(decrypted32[wordIx]^init0);decrypted32[wordIx+1]=ntoh(decrypted32[wordIx+1]^init1);decrypted32[wordIx+2]=ntoh(decrypted32[wordIx+2]^init2);decrypted32[wordIx+3]=ntoh(decrypted32[wordIx+3]^init3);init0=encrypted0;init1=encrypted1;init2=encrypted2;init3=encrypted3;}
return decrypted;};exports.decrypt=decrypt;var Decrypter=(function(){function Decrypter(encrypted,key,initVector,done){_classCallCheck(this,Decrypter);var step=Decrypter.STEP;var encrypted32=new Int32Array(encrypted.buffer);var decrypted=new Uint8Array(encrypted.byteLength);var i=0;this.asyncStream_=new _asyncStream2['default']();this.asyncStream_.push(this.decryptChunk_(encrypted32.subarray(i,i+step),key,initVector,decrypted));for(i=step;i<encrypted32.length;i+=step){initVector=new Uint32Array([ntoh(encrypted32[i-4]),ntoh(encrypted32[i-3]),ntoh(encrypted32[i-2]),ntoh(encrypted32[i-1])]);this.asyncStream_.push(this.decryptChunk_(encrypted32.subarray(i,i+step),key,initVector,decrypted));}
this.asyncStream_.push(function(){done(null,(0,_pkcs7.unpad)(decrypted));});}
_createClass(Decrypter,[{key:'decryptChunk_',value:function decryptChunk_(encrypted,key,initVector,decrypted){return function(){var bytes=decrypt(encrypted,key,initVector);decrypted.set(bytes,encrypted.byteOffset);};}}],[{key:'STEP',get:function get(){return 32000;}}]);return Decrypter;})();exports.Decrypter=Decrypter;exports['default']={Decrypter:Decrypter,decrypt:decrypt};},{"./aes":20,"./async-stream":21,"pkcs7":26}],23:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _decrypter=require('./decrypter');var _asyncStream=require('./async-stream');var _asyncStream2=_interopRequireDefault(_asyncStream);exports['default']={decrypt:_decrypter.decrypt,Decrypter:_decrypter.Decrypter,AsyncStream:_asyncStream2['default']};module.exports=exports['default'];},{"./async-stream":21,"./decrypter":22}],24:[function(require,module,exports){arguments[4][16][0].apply(exports,arguments)},{"dup":16}],25:[function(require,module,exports){'use strict';var PADDING;module.exports=function pad(plaintext){var padding=PADDING[(plaintext.byteLength%16)||0],result=new Uint8Array(plaintext.byteLength+padding.length);result.set(plaintext);result.set(padding,plaintext.byteLength);return result;};PADDING=[[16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16],[15,15,15,15,15,15,15,15,15,15,15,15,15,15,15],[14,14,14,14,14,14,14,14,14,14,14,14,14,14],[13,13,13,13,13,13,13,13,13,13,13,13,13],[12,12,12,12,12,12,12,12,12,12,12,12],[11,11,11,11,11,11,11,11,11,11,11],[10,10,10,10,10,10,10,10,10,10],[9,9,9,9,9,9,9,9,9],[8,8,8,8,8,8,8,8],[7,7,7,7,7,7,7],[6,6,6,6,6,6],[5,5,5,5,5],[4,4,4,4],[3,3,3],[2,2],[1]];},{}],26:[function(require,module,exports){'use strict';exports.pad=require('./pad.js');exports.unpad=require('./unpad.js');},{"./pad.js":25,"./unpad.js":27}],27:[function(require,module,exports){'use strict';module.exports=function unpad(padded){return padded.subarray(0,padded.byteLength-padded[padded.byteLength-1]);};},{}],28:[function(require,module,exports){},{}],29:[function(require,module,exports){(function(global){var topLevel=typeof global!=='undefined'?global:typeof window!=='undefined'?window:{}
var minDoc=require('min-document');if(typeof document!=='undefined'){module.exports=document;}else{var doccy=topLevel['__GLOBAL_DOCUMENT_CACHE@4'];if(!doccy){doccy=topLevel['__GLOBAL_DOCUMENT_CACHE@4']=minDoc;}
module.exports=doccy;}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"min-document":28}],30:[function(require,module,exports){(function(global){if(typeof window!=="undefined"){module.exports=window;}else if(typeof global!=="undefined"){module.exports=global;}else if(typeof self!=="undefined"){module.exports=self;}else{module.exports={};}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],31:[function(require,module,exports){'use strict';var _lineStream=require('./line-stream');var _lineStream2=_interopRequireDefault(_lineStream);var _parseStream=require('./parse-stream');var _parseStream2=_interopRequireDefault(_parseStream);var _parser=require('./parser');var _parser2=_interopRequireDefault(_parser);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
module.exports={LineStream:_lineStream2['default'],ParseStream:_parseStream2['default'],Parser:_parser2['default']};},{"./line-stream":32,"./parse-stream":33,"./parser":34}],32:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _stream=require('./stream');var _stream2=_interopRequireDefault(_stream);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}
function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}
function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var LineStream=function(_Stream){_inherits(LineStream,_Stream);function LineStream(){_classCallCheck(this,LineStream);var _this=_possibleConstructorReturn(this,(LineStream.__proto__||Object.getPrototypeOf(LineStream)).call(this));_this.buffer='';return _this;}
_createClass(LineStream,[{key:'push',value:function push(data){var nextNewline=void 0;this.buffer+=data;nextNewline=this.buffer.indexOf('\n');for(;nextNewline>-1;nextNewline=this.buffer.indexOf('\n')){this.trigger('data',this.buffer.substring(0,nextNewline));this.buffer=this.buffer.substring(nextNewline+1);}}}]);return LineStream;}(_stream2['default']);exports['default']=LineStream;},{"./stream":35}],33:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});var _slicedToArray=function(){function sliceIterator(arr,i){var _arr=[];var _n=true;var _d=false;var _e=undefined;try{for(var _i=arr[Symbol.iterator](),_s;!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break;}}catch(err){_d=true;_e=err;}finally{try{if(!_n&&_i["return"])_i["return"]();}finally{if(_d)throw _e;}}return _arr;}return function(arr,i){if(Array.isArray(arr)){return arr;}else if(Symbol.iterator in Object(arr)){return sliceIterator(arr,i);}else{throw new TypeError("Invalid attempt to destructure non-iterable instance");}};}();var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _stream=require('./stream');var _stream2=_interopRequireDefault(_stream);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}
function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}
function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var attributeSeparator=function attributeSeparator(){var key='[^=]*';var value='"[^"]*"|[^,]*';var keyvalue='(?:'+key+')=(?:'+value+')';return new RegExp('(?:^|,)('+keyvalue+')');};var parseAttributes=function parseAttributes(attributes){var attrs=attributes.split(attributeSeparator());var result={};var i=attrs.length;var attr=void 0;while(i--){if(attrs[i]===''){continue;}
attr=/([^=]*)=(.*)/.exec(attrs[i]).slice(1);attr[0]=attr[0].replace(/^\s+|\s+$/g,'');attr[1]=attr[1].replace(/^\s+|\s+$/g,'');attr[1]=attr[1].replace(/^['"](.*)['"]$/g,'$1');result[attr[0]]=attr[1];}
return result;};var ParseStream=function(_Stream){_inherits(ParseStream,_Stream);function ParseStream(){_classCallCheck(this,ParseStream);return _possibleConstructorReturn(this,(ParseStream.__proto__||Object.getPrototypeOf(ParseStream)).call(this));}
_createClass(ParseStream,[{key:'push',value:function push(line){var match=void 0;var event=void 0;line=line.replace(/^[\u0000\s]+|[\u0000\s]+$/g,'');if(line.length===0){return;}
if(line[0]!=='#'){this.trigger('data',{type:'uri',uri:line});return;}
if(line.indexOf('#EXT')!==0){this.trigger('data',{type:'comment',text:line.slice(1)});return;}
line=line.replace('\r','');match=/^#EXTM3U/.exec(line);if(match){this.trigger('data',{type:'tag',tagType:'m3u'});return;}
match=/^#EXTINF:?([0-9\.]*)?,?(.*)?$/.exec(line);if(match){event={type:'tag',tagType:'inf'};if(match[1]){event.duration=parseFloat(match[1]);}
if(match[2]){event.title=match[2];}
this.trigger('data',event);return;}
match=/^#EXT-X-TARGETDURATION:?([0-9.]*)?/.exec(line);if(match){event={type:'tag',tagType:'targetduration'};if(match[1]){event.duration=parseInt(match[1],10);}
this.trigger('data',event);return;}
match=/^#ZEN-TOTAL-DURATION:?([0-9.]*)?/.exec(line);if(match){event={type:'tag',tagType:'totalduration'};if(match[1]){event.duration=parseInt(match[1],10);}
this.trigger('data',event);return;}
match=/^#EXT-X-VERSION:?([0-9.]*)?/.exec(line);if(match){event={type:'tag',tagType:'version'};if(match[1]){event.version=parseInt(match[1],10);}
this.trigger('data',event);return;}
match=/^#EXT-X-MEDIA-SEQUENCE:?(\-?[0-9.]*)?/.exec(line);if(match){event={type:'tag',tagType:'media-sequence'};if(match[1]){event.number=parseInt(match[1],10);}
this.trigger('data',event);return;}
match=/^#EXT-X-DISCONTINUITY-SEQUENCE:?(\-?[0-9.]*)?/.exec(line);if(match){event={type:'tag',tagType:'discontinuity-sequence'};if(match[1]){event.number=parseInt(match[1],10);}
this.trigger('data',event);return;}
match=/^#EXT-X-PLAYLIST-TYPE:?(.*)?$/.exec(line);if(match){event={type:'tag',tagType:'playlist-type'};if(match[1]){event.playlistType=match[1];}
this.trigger('data',event);return;}
match=/^#EXT-X-BYTERANGE:?([0-9.]*)?@?([0-9.]*)?/.exec(line);if(match){event={type:'tag',tagType:'byterange'};if(match[1]){event.length=parseInt(match[1],10);}
if(match[2]){event.offset=parseInt(match[2],10);}
this.trigger('data',event);return;}
match=/^#EXT-X-ALLOW-CACHE:?(YES|NO)?/.exec(line);if(match){event={type:'tag',tagType:'allow-cache'};if(match[1]){event.allowed=!/NO/.test(match[1]);}
this.trigger('data',event);return;}
match=/^#EXT-X-MAP:?(.*)$/.exec(line);if(match){event={type:'tag',tagType:'map'};if(match[1]){var attributes=parseAttributes(match[1]);if(attributes.URI){event.uri=attributes.URI;}
if(attributes.BYTERANGE){var _attributes$BYTERANGE=attributes.BYTERANGE.split('@'),_attributes$BYTERANGE2=_slicedToArray(_attributes$BYTERANGE,2),length=_attributes$BYTERANGE2[0],offset=_attributes$BYTERANGE2[1];event.byterange={};if(length){event.byterange.length=parseInt(length,10);}
if(offset){event.byterange.offset=parseInt(offset,10);}}}
this.trigger('data',event);return;}
match=/^#EXT-X-STREAM-INF:?(.*)$/.exec(line);if(match){event={type:'tag',tagType:'stream-inf'};if(match[1]){event.attributes=parseAttributes(match[1]);if(event.attributes.RESOLUTION){var split=event.attributes.RESOLUTION.split('x');var resolution={};if(split[0]){resolution.width=parseInt(split[0],10);}
if(split[1]){resolution.height=parseInt(split[1],10);}
event.attributes.RESOLUTION=resolution;}
if(event.attributes.BANDWIDTH){event.attributes.BANDWIDTH=parseInt(event.attributes.BANDWIDTH,10);}
if(event.attributes['PROGRAM-ID']){event.attributes['PROGRAM-ID']=parseInt(event.attributes['PROGRAM-ID'],10);}}
this.trigger('data',event);return;}
match=/^#EXT-X-MEDIA:?(.*)$/.exec(line);if(match){event={type:'tag',tagType:'media'};if(match[1]){event.attributes=parseAttributes(match[1]);}
this.trigger('data',event);return;}
match=/^#EXT-X-ENDLIST/.exec(line);if(match){this.trigger('data',{type:'tag',tagType:'endlist'});return;}
match=/^#EXT-X-DISCONTINUITY/.exec(line);if(match){this.trigger('data',{type:'tag',tagType:'discontinuity'});return;}
match=/^#EXT-X-PROGRAM-DATE-TIME:?(.*)$/.exec(line);if(match){event={type:'tag',tagType:'program-date-time'};if(match[1]){event.dateTimeString=match[1];event.dateTimeObject=new Date(match[1]);}
this.trigger('data',event);return;}
match=/^#EXT-X-KEY:?(.*)$/.exec(line);if(match){event={type:'tag',tagType:'key'};if(match[1]){event.attributes=parseAttributes(match[1]);if(event.attributes.IV){if(event.attributes.IV.substring(0,2).toLowerCase()==='0x'){event.attributes.IV=event.attributes.IV.substring(2);}
event.attributes.IV=event.attributes.IV.match(/.{8}/g);event.attributes.IV[0]=parseInt(event.attributes.IV[0],16);event.attributes.IV[1]=parseInt(event.attributes.IV[1],16);event.attributes.IV[2]=parseInt(event.attributes.IV[2],16);event.attributes.IV[3]=parseInt(event.attributes.IV[3],16);event.attributes.IV=new Uint32Array(event.attributes.IV);}}
this.trigger('data',event);return;}
match=/^#EXT-X-CUE-OUT-CONT:?(.*)?$/.exec(line);if(match){event={type:'tag',tagType:'cue-out-cont'};if(match[1]){event.data=match[1];}else{event.data='';}
this.trigger('data',event);return;}
match=/^#EXT-X-CUE-OUT:?(.*)?$/.exec(line);if(match){event={type:'tag',tagType:'cue-out'};if(match[1]){event.data=match[1];}else{event.data='';}
this.trigger('data',event);return;}
match=/^#EXT-X-CUE-IN:?(.*)?$/.exec(line);if(match){event={type:'tag',tagType:'cue-in'};if(match[1]){event.data=match[1];}else{event.data='';}
this.trigger('data',event);return;}
this.trigger('data',{type:'tag',data:line.slice(4)});}}]);return ParseStream;}(_stream2['default']);exports['default']=ParseStream;},{"./stream":35}],34:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key];}}}return target;};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();var _stream=require('./stream');var _stream2=_interopRequireDefault(_stream);var _lineStream=require('./line-stream');var _lineStream2=_interopRequireDefault(_lineStream);var _parseStream=require('./parse-stream');var _parseStream2=_interopRequireDefault(_parseStream);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}
function _possibleConstructorReturn(self,call){if(!self){throw new ReferenceError("this hasn't been initialised - super() hasn't been called");}return call&&(typeof call==="object"||typeof call==="function")?call:self;}
function _inherits(subClass,superClass){if(typeof superClass!=="function"&&superClass!==null){throw new TypeError("Super expression must either be null or a function, not "+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var Parser=function(_Stream){_inherits(Parser,_Stream);function Parser(){_classCallCheck(this,Parser);var _this=_possibleConstructorReturn(this,(Parser.__proto__||Object.getPrototypeOf(Parser)).call(this));_this.lineStream=new _lineStream2['default']();_this.parseStream=new _parseStream2['default']();_this.lineStream.pipe(_this.parseStream);var self=_this;var uris=[];var currentUri={};var currentMap=void 0;var _key=void 0;var noop=function noop(){};var defaultMediaGroups={'AUDIO':{},'VIDEO':{},'CLOSED-CAPTIONS':{},'SUBTITLES':{}};var currentTimeline=0;_this.manifest={allowCache:true,discontinuityStarts:[],segments:[]};_this.parseStream.on('data',function(entry){var mediaGroup=void 0;var rendition=void 0;({tag:function tag(){(({'allow-cache':function allowCache(){this.manifest.allowCache=entry.allowed;if(!('allowed'in entry)){this.trigger('info',{message:'defaulting allowCache to YES'});this.manifest.allowCache=true;}},byterange:function byterange(){var byterange={};if('length'in entry){currentUri.byterange=byterange;byterange.length=entry.length;if(!('offset'in entry)){this.trigger('info',{message:'defaulting offset to zero'});entry.offset=0;}}
if('offset'in entry){currentUri.byterange=byterange;byterange.offset=entry.offset;}},endlist:function endlist(){this.manifest.endList=true;},inf:function inf(){if(!('mediaSequence'in this.manifest)){this.manifest.mediaSequence=0;this.trigger('info',{message:'defaulting media sequence to zero'});}
if(!('discontinuitySequence'in this.manifest)){this.manifest.discontinuitySequence=0;this.trigger('info',{message:'defaulting discontinuity sequence to zero'});}
if(entry.duration>0){currentUri.duration=entry.duration;}
if(entry.duration===0){currentUri.duration=0.01;this.trigger('info',{message:'updating zero segment duration to a small value'});}
this.manifest.segments=uris;},key:function key(){if(!entry.attributes){this.trigger('warn',{message:'ignoring key declaration without attribute list'});return;}
if(entry.attributes.METHOD==='NONE'){_key=null;return;}
if(!entry.attributes.URI){this.trigger('warn',{message:'ignoring key declaration without URI'});return;}
if(!entry.attributes.METHOD){this.trigger('warn',{message:'defaulting key method to AES-128'});}
_key={method:entry.attributes.METHOD||'AES-128',uri:entry.attributes.URI};if(typeof entry.attributes.IV!=='undefined'){_key.iv=entry.attributes.IV;}},'media-sequence':function mediaSequence(){if(!isFinite(entry.number)){this.trigger('warn',{message:'ignoring invalid media sequence: '+entry.number});return;}
this.manifest.mediaSequence=entry.number;},'discontinuity-sequence':function discontinuitySequence(){if(!isFinite(entry.number)){this.trigger('warn',{message:'ignoring invalid discontinuity sequence: '+entry.number});return;}
this.manifest.discontinuitySequence=entry.number;currentTimeline=entry.number;},'playlist-type':function playlistType(){if(!/VOD|EVENT/.test(entry.playlistType)){this.trigger('warn',{message:'ignoring unknown playlist type: '+entry.playlist});return;}
this.manifest.playlistType=entry.playlistType;},map:function map(){currentMap={};if(entry.uri){currentMap.uri=entry.uri;}
if(entry.byterange){currentMap.byterange=entry.byterange;}},'stream-inf':function streamInf(){this.manifest.playlists=uris;this.manifest.mediaGroups=this.manifest.mediaGroups||defaultMediaGroups;if(!entry.attributes){this.trigger('warn',{message:'ignoring empty stream-inf attributes'});return;}
if(!currentUri.attributes){currentUri.attributes={};}
_extends(currentUri.attributes,entry.attributes);},media:function media(){this.manifest.mediaGroups=this.manifest.mediaGroups||defaultMediaGroups;if(!(entry.attributes&&entry.attributes.TYPE&&entry.attributes['GROUP-ID']&&entry.attributes.NAME)){this.trigger('warn',{message:'ignoring incomplete or missing media group'});return;}
var mediaGroupType=this.manifest.mediaGroups[entry.attributes.TYPE];mediaGroupType[entry.attributes['GROUP-ID']]=mediaGroupType[entry.attributes['GROUP-ID']]||{};mediaGroup=mediaGroupType[entry.attributes['GROUP-ID']];rendition={'default':/yes/i.test(entry.attributes.DEFAULT)};if(rendition['default']){rendition.autoselect=true;}else{rendition.autoselect=/yes/i.test(entry.attributes.AUTOSELECT);}
if(entry.attributes.LANGUAGE){rendition.language=entry.attributes.LANGUAGE;}
if(entry.attributes.URI){rendition.uri=entry.attributes.URI;}
if(entry.attributes['INSTREAM-ID']){rendition.instreamId=entry.attributes['INSTREAM-ID'];}
if(entry.attributes.CHARACTERISTICS){rendition.characteristics=entry.attributes.CHARACTERISTICS;}
if(entry.attributes.FORCED){rendition.forced=/yes/i.test(entry.attributes.FORCED);}
mediaGroup[entry.attributes.NAME]=rendition;},discontinuity:function discontinuity(){currentTimeline+=1;currentUri.discontinuity=true;this.manifest.discontinuityStarts.push(uris.length);},'program-date-time':function programDateTime(){this.manifest.dateTimeString=entry.dateTimeString;this.manifest.dateTimeObject=entry.dateTimeObject;},targetduration:function targetduration(){if(!isFinite(entry.duration)||entry.duration<0){this.trigger('warn',{message:'ignoring invalid target duration: '+entry.duration});return;}
this.manifest.targetDuration=entry.duration;},totalduration:function totalduration(){if(!isFinite(entry.duration)||entry.duration<0){this.trigger('warn',{message:'ignoring invalid total duration: '+entry.duration});return;}
this.manifest.totalDuration=entry.duration;},'cue-out':function cueOut(){currentUri.cueOut=entry.data;},'cue-out-cont':function cueOutCont(){currentUri.cueOutCont=entry.data;},'cue-in':function cueIn(){currentUri.cueIn=entry.data;}})[entry.tagType]||noop).call(self);},uri:function uri(){currentUri.uri=entry.uri;uris.push(currentUri);if(this.manifest.targetDuration&&!('duration'in currentUri)){this.trigger('warn',{message:'defaulting segment duration to the target duration'});currentUri.duration=this.manifest.targetDuration;}
if(_key){currentUri.key=_key;}
currentUri.timeline=currentTimeline;if(currentMap){currentUri.map=currentMap;}
currentUri={};},comment:function comment(){}})[entry.type].call(self);});return _this;}
_createClass(Parser,[{key:'push',value:function push(chunk){this.lineStream.push(chunk);}},{key:'end',value:function end(){this.lineStream.push('\n');}}]);return Parser;}(_stream2['default']);exports['default']=Parser;},{"./line-stream":32,"./parse-stream":33,"./stream":35}],35:[function(require,module,exports){'use strict';Object.defineProperty(exports,"__esModule",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}
var Stream=function(){function Stream(){_classCallCheck(this,Stream);this.listeners={};}
_createClass(Stream,[{key:'on',value:function on(type,listener){if(!this.listeners[type]){this.listeners[type]=[];}
this.listeners[type].push(listener);}},{key:'off',value:function off(type,listener){if(!this.listeners[type]){return false;}
var index=this.listeners[type].indexOf(listener);this.listeners[type].splice(index,1);return index>-1;}},{key:'trigger',value:function trigger(type){var callbacks=this.listeners[type];var i=void 0;var length=void 0;var args=void 0;if(!callbacks){return;}
if(arguments.length===2){length=callbacks.length;for(i=0;i<length;++i){callbacks[i].call(this,arguments[1]);}}else{args=Array.prototype.slice.call(arguments,1);length=callbacks.length;for(i=0;i<length;++i){callbacks[i].apply(this,args);}}}},{key:'dispose',value:function dispose(){this.listeners={};}},{key:'pipe',value:function pipe(destination){this.on('data',function(data){destination.push(data);});}}]);return Stream;}();exports['default']=Stream;},{}],36:[function(require,module,exports){'use strict';var Stream=require('../utils/stream.js');var AacStream;AacStream=function(){var
everything=new Uint8Array(),timeStamp=0;AacStream.prototype.init.call(this);this.setTimestamp=function(timestamp){timeStamp=timestamp;};this.parseId3TagSize=function(header,byteIndex){var
returnSize=(header[byteIndex+6]<<21)|(header[byteIndex+7]<<14)|(header[byteIndex+8]<<7)|(header[byteIndex+9]),flags=header[byteIndex+5],footerPresent=(flags&16)>>4;if(footerPresent){return returnSize+20;}
return returnSize+10;};this.parseAdtsSize=function(header,byteIndex){var
lowThree=(header[byteIndex+5]&0xE0)>>5,middle=header[byteIndex+4]<<3,highTwo=header[byteIndex+3]&0x3<<11;return(highTwo|middle)|lowThree;};this.push=function(bytes){var
frameSize=0,byteIndex=0,bytesLeft,chunk,packet,tempLength;if(everything.length){tempLength=everything.length;everything=new Uint8Array(bytes.byteLength+tempLength);everything.set(everything.subarray(0,tempLength));everything.set(bytes,tempLength);}else{everything=bytes;}
while(everything.length-byteIndex>=3){if((everything[byteIndex]==='I'.charCodeAt(0))&&(everything[byteIndex+1]==='D'.charCodeAt(0))&&(everything[byteIndex+2]==='3'.charCodeAt(0))){if(everything.length-byteIndex<10){break;}
frameSize=this.parseId3TagSize(everything,byteIndex);if(frameSize>everything.length){break;}
chunk={type:'timed-metadata',data:everything.subarray(byteIndex,byteIndex+frameSize)};this.trigger('data',chunk);byteIndex+=frameSize;continue;}else if((everything[byteIndex]&0xff===0xff)&&((everything[byteIndex+1]&0xf0)===0xf0)){if(everything.length-byteIndex<7){break;}
frameSize=this.parseAdtsSize(everything,byteIndex);if(frameSize>everything.length){break;}
packet={type:'audio',data:everything.subarray(byteIndex,byteIndex+frameSize),pts:timeStamp,dts:timeStamp};this.trigger('data',packet);byteIndex+=frameSize;continue;}
byteIndex++;}
bytesLeft=everything.length-byteIndex;if(bytesLeft>0){everything=everything.subarray(byteIndex);}else{everything=new Uint8Array();}};};AacStream.prototype=new Stream();module.exports=AacStream;},{"../utils/stream.js":60}],37:[function(require,module,exports){'use strict';var ADTS_SAMPLING_FREQUENCIES=[96000,88200,64000,48000,44100,32000,24000,22050,16000,12000,11025,8000,7350];var parseSyncSafeInteger=function(data){return(data[0]<<21)|(data[1]<<14)|(data[2]<<7)|(data[3]);};var percentEncode=function(bytes,start,end){var i,result='';for(i=start;i<end;i++){result+='%'+('00'+bytes[i].toString(16)).slice(-2);}
return result;};var parseIso88591=function(bytes,start,end){return unescape(percentEncode(bytes,start,end));};var parseId3TagSize=function(header,byteIndex){var
returnSize=(header[byteIndex+6]<<21)|(header[byteIndex+7]<<14)|(header[byteIndex+8]<<7)|(header[byteIndex+9]),flags=header[byteIndex+5],footerPresent=(flags&16)>>4;if(footerPresent){return returnSize+20;}
return returnSize+10;};var parseAdtsSize=function(header,byteIndex){var
lowThree=(header[byteIndex+5]&0xE0)>>5,middle=header[byteIndex+4]<<3,highTwo=header[byteIndex+3]&0x3<<11;return(highTwo|middle)|lowThree;};var parseType=function(header,byteIndex){if((header[byteIndex]==='I'.charCodeAt(0))&&(header[byteIndex+1]==='D'.charCodeAt(0))&&(header[byteIndex+2]==='3'.charCodeAt(0))){return'timed-metadata';}else if((header[byteIndex]&0xff===0xff)&&((header[byteIndex+1]&0xf0)===0xf0)){return'audio';}
return null;};var parseSampleRate=function(packet){var i=0;while(i+5<packet.length){if(packet[i]!==0xFF||(packet[i+1]&0xF6)!==0xF0){i++;continue;}
return ADTS_SAMPLING_FREQUENCIES[(packet[i+2]&0x3c)>>>2];}
return null;};var parseAacTimestamp=function(packet){var frameStart,frameSize,frame,frameHeader;frameStart=10;if(packet[5]&0x40){frameStart+=4;frameStart+=parseSyncSafeInteger(packet.subarray(10,14));}
do{frameSize=parseSyncSafeInteger(packet.subarray(frameStart+4,frameStart+8));if(frameSize<1){return null;}
frameHeader=String.fromCharCode(packet[frameStart],packet[frameStart+1],packet[frameStart+2],packet[frameStart+3]);if(frameHeader==='PRIV'){frame=packet.subarray(frameStart+10,frameStart+frameSize+10);for(var i=0;i<frame.byteLength;i++){if(frame[i]===0){var owner=parseIso88591(frame,0,i);if(owner==='com.apple.streaming.transportStreamTimestamp'){var d=frame.subarray(i+1);var size=((d[3]&0x01)<<30)|(d[4]<<22)|(d[5]<<14)|(d[6]<<6)|(d[7]>>>2);size*=4;size+=d[7]&0x03;return size;}
break;}}}
frameStart+=10;frameStart+=frameSize;}while(frameStart<packet.byteLength);return null;};module.exports={parseId3TagSize:parseId3TagSize,parseAdtsSize:parseAdtsSize,parseType:parseType,parseSampleRate:parseSampleRate,parseAacTimestamp:parseAacTimestamp};},{}],38:[function(require,module,exports){'use strict';var Stream=require('../utils/stream.js');var AdtsStream;var
ADTS_SAMPLING_FREQUENCIES=[96000,88200,64000,48000,44100,32000,24000,22050,16000,12000,11025,8000,7350];AdtsStream=function(){var buffer;AdtsStream.prototype.init.call(this);this.push=function(packet){var
i=0,frameNum=0,frameLength,protectionSkipBytes,frameEnd,oldBuffer,sampleCount,adtsFrameDuration;if(packet.type!=='audio'){return;}
if(buffer){oldBuffer=buffer;buffer=new Uint8Array(oldBuffer.byteLength+packet.data.byteLength);buffer.set(oldBuffer);buffer.set(packet.data,oldBuffer.byteLength);}else{buffer=packet.data;}
while(i+5<buffer.length){if(buffer[i]!==0xFF||(buffer[i+1]&0xF6)!==0xF0){i++;continue;}
protectionSkipBytes=(~buffer[i+1]&0x01)*2;frameLength=((buffer[i+3]&0x03)<<11)|(buffer[i+4]<<3)|((buffer[i+5]&0xe0)>>5);sampleCount=((buffer[i+6]&0x03)+1)*1024;adtsFrameDuration=(sampleCount*90000)/ADTS_SAMPLING_FREQUENCIES[(buffer[i+2]&0x3c)>>>2];frameEnd=i+frameLength;if(buffer.byteLength<frameEnd){return;}
this.trigger('data',{pts:packet.pts+(frameNum*adtsFrameDuration),dts:packet.dts+(frameNum*adtsFrameDuration),sampleCount:sampleCount,audioobjecttype:((buffer[i+2]>>>6)&0x03)+1,channelcount:((buffer[i+2]&1)<<2)|((buffer[i+3]&0xc0)>>>6),samplerate:ADTS_SAMPLING_FREQUENCIES[(buffer[i+2]&0x3c)>>>2],samplingfrequencyindex:(buffer[i+2]&0x3c)>>>2,samplesize:16,data:buffer.subarray(i+7+protectionSkipBytes,frameEnd)});if(buffer.byteLength===frameEnd){buffer=undefined;return;}
frameNum++;buffer=buffer.subarray(frameEnd);}};this.flush=function(){this.trigger('done');};};AdtsStream.prototype=new Stream();module.exports=AdtsStream;},{"../utils/stream.js":60}],39:[function(require,module,exports){'use strict';var Stream=require('../utils/stream.js');var ExpGolomb=require('../utils/exp-golomb.js');var H264Stream,NalByteStream;var PROFILES_WITH_OPTIONAL_SPS_DATA;NalByteStream=function(){var
syncPoint=0,i,buffer;NalByteStream.prototype.init.call(this);this.push=function(data){var swapBuffer;if(!buffer){buffer=data.data;}else{swapBuffer=new Uint8Array(buffer.byteLength+data.data.byteLength);swapBuffer.set(buffer);swapBuffer.set(data.data,buffer.byteLength);buffer=swapBuffer;}
for(;syncPoint<buffer.byteLength-3;syncPoint++){if(buffer[syncPoint+2]===1){i=syncPoint+5;break;}}
while(i<buffer.byteLength){switch(buffer[i]){case 0:if(buffer[i-1]!==0){i+=2;break;}else if(buffer[i-2]!==0){i++;break;}
if(syncPoint+3!==i-2){this.trigger('data',buffer.subarray(syncPoint+3,i-2));}
do{i++;}while(buffer[i]!==1&&i<buffer.length);syncPoint=i-2;i+=3;break;case 1:if(buffer[i-1]!==0||buffer[i-2]!==0){i+=3;break;}
this.trigger('data',buffer.subarray(syncPoint+3,i-2));syncPoint=i-2;i+=3;break;default:i+=3;break;}}
buffer=buffer.subarray(syncPoint);i-=syncPoint;syncPoint=0;};this.flush=function(){if(buffer&&buffer.byteLength>3){this.trigger('data',buffer.subarray(syncPoint+3));}
buffer=null;syncPoint=0;this.trigger('done');};};NalByteStream.prototype=new Stream();PROFILES_WITH_OPTIONAL_SPS_DATA={100:true,110:true,122:true,244:true,44:true,83:true,86:true,118:true,128:true,138:true,139:true,134:true};H264Stream=function(){var
nalByteStream=new NalByteStream(),self,trackId,currentPts,currentDts,discardEmulationPreventionBytes,readSequenceParameterSet,skipScalingList;H264Stream.prototype.init.call(this);self=this;this.push=function(packet){if(packet.type!=='video'){return;}
trackId=packet.trackId;currentPts=packet.pts;currentDts=packet.dts;nalByteStream.push(packet);};nalByteStream.on('data',function(data){var
event={trackId:trackId,pts:currentPts,dts:currentDts,data:data};switch(data[0]&0x1f){case 0x05:event.nalUnitType='slice_layer_without_partitioning_rbsp_idr';break;case 0x06:event.nalUnitType='sei_rbsp';event.escapedRBSP=discardEmulationPreventionBytes(data.subarray(1));break;case 0x07:event.nalUnitType='seq_parameter_set_rbsp';event.escapedRBSP=discardEmulationPreventionBytes(data.subarray(1));event.config=readSequenceParameterSet(event.escapedRBSP);break;case 0x08:event.nalUnitType='pic_parameter_set_rbsp';break;case 0x09:event.nalUnitType='access_unit_delimiter_rbsp';break;default:break;}
self.trigger('data',event);});nalByteStream.on('done',function(){self.trigger('done');});this.flush=function(){nalByteStream.flush();};skipScalingList=function(count,expGolombDecoder){var
lastScale=8,nextScale=8,j,deltaScale;for(j=0;j<count;j++){if(nextScale!==0){deltaScale=expGolombDecoder.readExpGolomb();nextScale=(lastScale+deltaScale+256)%256;}
lastScale=(nextScale===0)?lastScale:nextScale;}};discardEmulationPreventionBytes=function(data){var
length=data.byteLength,emulationPreventionBytesPositions=[],i=1,newLength,newData;while(i<length-2){if(data[i]===0&&data[i+1]===0&&data[i+2]===0x03){emulationPreventionBytesPositions.push(i+2);i+=2;}else{i++;}}
if(emulationPreventionBytesPositions.length===0){return data;}
newLength=length-emulationPreventionBytesPositions.length;newData=new Uint8Array(newLength);var sourceIndex=0;for(i=0;i<newLength;sourceIndex++,i++){if(sourceIndex===emulationPreventionBytesPositions[0]){sourceIndex++;emulationPreventionBytesPositions.shift();}
newData[i]=data[sourceIndex];}
return newData;};readSequenceParameterSet=function(data){var
frameCropLeftOffset=0,frameCropRightOffset=0,frameCropTopOffset=0,frameCropBottomOffset=0,sarScale=1,expGolombDecoder,profileIdc,levelIdc,profileCompatibility,chromaFormatIdc,picOrderCntType,numRefFramesInPicOrderCntCycle,picWidthInMbsMinus1,picHeightInMapUnitsMinus1,frameMbsOnlyFlag,scalingListCount,sarRatio,aspectRatioIdc,i;expGolombDecoder=new ExpGolomb(data);profileIdc=expGolombDecoder.readUnsignedByte();profileCompatibility=expGolombDecoder.readUnsignedByte();levelIdc=expGolombDecoder.readUnsignedByte();expGolombDecoder.skipUnsignedExpGolomb();if(PROFILES_WITH_OPTIONAL_SPS_DATA[profileIdc]){chromaFormatIdc=expGolombDecoder.readUnsignedExpGolomb();if(chromaFormatIdc===3){expGolombDecoder.skipBits(1);}
expGolombDecoder.skipUnsignedExpGolomb();expGolombDecoder.skipUnsignedExpGolomb();expGolombDecoder.skipBits(1);if(expGolombDecoder.readBoolean()){scalingListCount=(chromaFormatIdc!==3)?8:12;for(i=0;i<scalingListCount;i++){if(expGolombDecoder.readBoolean()){if(i<6){skipScalingList(16,expGolombDecoder);}else{skipScalingList(64,expGolombDecoder);}}}}}
expGolombDecoder.skipUnsignedExpGolomb();picOrderCntType=expGolombDecoder.readUnsignedExpGolomb();if(picOrderCntType===0){expGolombDecoder.readUnsignedExpGolomb();}else if(picOrderCntType===1){expGolombDecoder.skipBits(1);expGolombDecoder.skipExpGolomb();expGolombDecoder.skipExpGolomb();numRefFramesInPicOrderCntCycle=expGolombDecoder.readUnsignedExpGolomb();for(i=0;i<numRefFramesInPicOrderCntCycle;i++){expGolombDecoder.skipExpGolomb();}}
expGolombDecoder.skipUnsignedExpGolomb();expGolombDecoder.skipBits(1);picWidthInMbsMinus1=expGolombDecoder.readUnsignedExpGolomb();picHeightInMapUnitsMinus1=expGolombDecoder.readUnsignedExpGolomb();frameMbsOnlyFlag=expGolombDecoder.readBits(1);if(frameMbsOnlyFlag===0){expGolombDecoder.skipBits(1);}
expGolombDecoder.skipBits(1);if(expGolombDecoder.readBoolean()){frameCropLeftOffset=expGolombDecoder.readUnsignedExpGolomb();frameCropRightOffset=expGolombDecoder.readUnsignedExpGolomb();frameCropTopOffset=expGolombDecoder.readUnsignedExpGolomb();frameCropBottomOffset=expGolombDecoder.readUnsignedExpGolomb();}
if(expGolombDecoder.readBoolean()){if(expGolombDecoder.readBoolean()){aspectRatioIdc=expGolombDecoder.readUnsignedByte();switch(aspectRatioIdc){case 1:sarRatio=[1,1];break;case 2:sarRatio=[12,11];break;case 3:sarRatio=[10,11];break;case 4:sarRatio=[16,11];break;case 5:sarRatio=[40,33];break;case 6:sarRatio=[24,11];break;case 7:sarRatio=[20,11];break;case 8:sarRatio=[32,11];break;case 9:sarRatio=[80,33];break;case 10:sarRatio=[18,11];break;case 11:sarRatio=[15,11];break;case 12:sarRatio=[64,33];break;case 13:sarRatio=[160,99];break;case 14:sarRatio=[4,3];break;case 15:sarRatio=[3,2];break;case 16:sarRatio=[2,1];break;case 255:{sarRatio=[expGolombDecoder.readUnsignedByte()<<8|expGolombDecoder.readUnsignedByte(),expGolombDecoder.readUnsignedByte()<<8|expGolombDecoder.readUnsignedByte()];break;}}
if(sarRatio){sarScale=sarRatio[0]/sarRatio[1];}}}
return{profileIdc:profileIdc,levelIdc:levelIdc,profileCompatibility:profileCompatibility,width:Math.ceil((((picWidthInMbsMinus1+1)*16)-frameCropLeftOffset*2-frameCropRightOffset*2)*sarScale),height:((2-frameMbsOnlyFlag)*(picHeightInMapUnitsMinus1+1)*16)-(frameCropTopOffset*2)-(frameCropBottomOffset*2)};};};H264Stream.prototype=new Stream();module.exports={H264Stream:H264Stream,NalByteStream:NalByteStream};},{"../utils/exp-golomb.js":59,"../utils/stream.js":60}],40:[function(require,module,exports){var highPrefix=[33,16,5,32,164,27];var lowPrefix=[33,65,108,84,1,2,4,8,168,2,4,8,17,191,252];var zeroFill=function(count){var a=[];while(count--){a.push(0);}
return a;};var makeTable=function(metaTable){return Object.keys(metaTable).reduce(function(obj,key){obj[key]=new Uint8Array(metaTable[key].reduce(function(arr,part){return arr.concat(part);},[]));return obj;},{});};var coneOfSilence={96000:[highPrefix,[227,64],zeroFill(154),[56]],88200:[highPrefix,[231],zeroFill(170),[56]],64000:[highPrefix,[248,192],zeroFill(240),[56]],48000:[highPrefix,[255,192],zeroFill(268),[55,148,128],zeroFill(54),[112]],44100:[highPrefix,[255,192],zeroFill(268),[55,163,128],zeroFill(84),[112]],32000:[highPrefix,[255,192],zeroFill(268),[55,234],zeroFill(226),[112]],24000:[highPrefix,[255,192],zeroFill(268),[55,255,128],zeroFill(268),[111,112],zeroFill(126),[224]],16000:[highPrefix,[255,192],zeroFill(268),[55,255,128],zeroFill(268),[111,255],zeroFill(269),[223,108],zeroFill(195),[1,192]],12000:[lowPrefix,zeroFill(268),[3,127,248],zeroFill(268),[6,255,240],zeroFill(268),[13,255,224],zeroFill(268),[27,253,128],zeroFill(259),[56]],11025:[lowPrefix,zeroFill(268),[3,127,248],zeroFill(268),[6,255,240],zeroFill(268),[13,255,224],zeroFill(268),[27,255,192],zeroFill(268),[55,175,128],zeroFill(108),[112]],8000:[lowPrefix,zeroFill(268),[3,121,16],zeroFill(47),[7]]};module.exports=makeTable(coneOfSilence);},{}],41:[function(require,module,exports){'use strict';var Stream=require('../utils/stream.js');var CoalesceStream=function(options){this.numberOfTracks=0;this.metadataStream=options.metadataStream;this.videoTags=[];this.audioTags=[];this.videoTrack=null;this.audioTrack=null;this.pendingCaptions=[];this.pendingMetadata=[];this.pendingTracks=0;this.processedTracks=0;CoalesceStream.prototype.init.call(this);this.push=function(output){if(output.text){return this.pendingCaptions.push(output);}
if(output.frames){return this.pendingMetadata.push(output);}
if(output.track.type==='video'){this.videoTrack=output.track;this.videoTags=output.tags;this.pendingTracks++;}
if(output.track.type==='audio'){this.audioTrack=output.track;this.audioTags=output.tags;this.pendingTracks++;}};};CoalesceStream.prototype=new Stream();CoalesceStream.prototype.flush=function(flushSource){var
id3,caption,i,timelineStartPts,event={tags:{},captions:[],metadata:[]};if(this.pendingTracks<this.numberOfTracks){if(flushSource!=='VideoSegmentStream'&&flushSource!=='AudioSegmentStream'){return;}else if(this.pendingTracks===0){this.processedTracks++;if(this.processedTracks<this.numberOfTracks){return;}}}
this.processedTracks+=this.pendingTracks;this.pendingTracks=0;if(this.processedTracks<this.numberOfTracks){return;}
if(this.videoTrack){timelineStartPts=this.videoTrack.timelineStartInfo.pts;}else if(this.audioTrack){timelineStartPts=this.audioTrack.timelineStartInfo.pts;}
event.tags.videoTags=this.videoTags;event.tags.audioTags=this.audioTags;for(i=0;i<this.pendingCaptions.length;i++){caption=this.pendingCaptions[i];caption.startTime=caption.startPts-timelineStartPts;caption.startTime/=90e3;caption.endTime=caption.endPts-timelineStartPts;caption.endTime/=90e3;event.captions.push(caption);}
for(i=0;i<this.pendingMetadata.length;i++){id3=this.pendingMetadata[i];id3.cueTime=id3.pts-timelineStartPts;id3.cueTime/=90e3;event.metadata.push(id3);}
event.metadata.dispatchType=this.metadataStream.dispatchType;this.videoTrack=null;this.audioTrack=null;this.videoTags=[];this.audioTags=[];this.pendingCaptions.length=0;this.pendingMetadata.length=0;this.pendingTracks=0;this.processedTracks=0;this.trigger('data',event);this.trigger('done');};module.exports=CoalesceStream;},{"../utils/stream.js":60}],42:[function(require,module,exports){'use strict';var FlvTag=require('./flv-tag.js');var getFlvHeader=function(duration,audio,video){var
headBytes=new Uint8Array(3+1+1+4),head=new DataView(headBytes.buffer),metadata,result,metadataLength;duration=duration||0;audio=audio===undefined?true:audio;video=video===undefined?true:video;head.setUint8(0,0x46);head.setUint8(1,0x4c);head.setUint8(2,0x56);head.setUint8(3,0x01);head.setUint8(4,(audio?0x04:0x00)|(video?0x01:0x00));head.setUint32(5,headBytes.byteLength);if(duration<=0){result=new Uint8Array(headBytes.byteLength+4);result.set(headBytes);result.set([0,0,0,0],headBytes.byteLength);return result;}
metadata=new FlvTag(FlvTag.METADATA_TAG);metadata.pts=metadata.dts=0;metadata.writeMetaDataDouble('duration',duration);metadataLength=metadata.finalize().length;result=new Uint8Array(headBytes.byteLength+metadataLength);result.set(headBytes);result.set(head.byteLength,metadataLength);return result;};module.exports=getFlvHeader;},{"./flv-tag.js":43}],43:[function(require,module,exports){'use strict';var FlvTag;FlvTag=function(type,extraData){var
adHoc=0,bufferStartSize=16384,prepareWrite=function(flv,count){var
bytes,minLength=flv.position+count;if(minLength<flv.bytes.byteLength){return;}
bytes=new Uint8Array(minLength*2);bytes.set(flv.bytes.subarray(0,flv.position),0);flv.bytes=bytes;flv.view=new DataView(flv.bytes.buffer);},widthBytes=FlvTag.widthBytes||new Uint8Array('width'.length),heightBytes=FlvTag.heightBytes||new Uint8Array('height'.length),videocodecidBytes=FlvTag.videocodecidBytes||new Uint8Array('videocodecid'.length),i;if(!FlvTag.widthBytes){for(i=0;i<'width'.length;i++){widthBytes[i]='width'.charCodeAt(i);}
for(i=0;i<'height'.length;i++){heightBytes[i]='height'.charCodeAt(i);}
for(i=0;i<'videocodecid'.length;i++){videocodecidBytes[i]='videocodecid'.charCodeAt(i);}
FlvTag.widthBytes=widthBytes;FlvTag.heightBytes=heightBytes;FlvTag.videocodecidBytes=videocodecidBytes;}
this.keyFrame=false;switch(type){case FlvTag.VIDEO_TAG:this.length=16;bufferStartSize*=6;break;case FlvTag.AUDIO_TAG:this.length=13;this.keyFrame=true;break;case FlvTag.METADATA_TAG:this.length=29;this.keyFrame=true;break;default:throw new Error('Unknown FLV tag type');}
this.bytes=new Uint8Array(bufferStartSize);this.view=new DataView(this.bytes.buffer);this.bytes[0]=type;this.position=this.length;this.keyFrame=extraData;this.pts=0;this.dts=0;this.writeBytes=function(bytes,offset,length){var
start=offset||0,end;length=length||bytes.byteLength;end=start+length;prepareWrite(this,length);this.bytes.set(bytes.subarray(start,end),this.position);this.position+=length;this.length=Math.max(this.length,this.position);};this.writeByte=function(byte){prepareWrite(this,1);this.bytes[this.position]=byte;this.position++;this.length=Math.max(this.length,this.position);};this.writeShort=function(short){prepareWrite(this,2);this.view.setUint16(this.position,short);this.position+=2;this.length=Math.max(this.length,this.position);};this.negIndex=function(pos){return this.bytes[this.length-pos];};this.nalUnitSize=function(){if(adHoc===0){return 0;}
return this.length-(adHoc+4);};this.startNalUnit=function(){if(adHoc>0){throw new Error('Attempted to create new NAL wihout closing the old one');}
adHoc=this.length;this.length+=4;this.position=this.length;};this.endNalUnit=function(nalContainer){var
nalStart,nalLength;if(this.length===adHoc+4){this.length-=4;}else if(adHoc>0){nalStart=adHoc+4;nalLength=this.length-nalStart;this.position=adHoc;this.view.setUint32(this.position,nalLength);this.position=this.length;if(nalContainer){nalContainer.push(this.bytes.subarray(nalStart,nalStart+nalLength));}}
adHoc=0;};this.writeMetaDataDouble=function(key,val){var i;prepareWrite(this,2+key.length+9);this.view.setUint16(this.position,key.length);this.position+=2;if(key==='width'){this.bytes.set(widthBytes,this.position);this.position+=5;}else if(key==='height'){this.bytes.set(heightBytes,this.position);this.position+=6;}else if(key==='videocodecid'){this.bytes.set(videocodecidBytes,this.position);this.position+=12;}else{for(i=0;i<key.length;i++){this.bytes[this.position]=key.charCodeAt(i);this.position++;}}
this.position++;this.view.setFloat64(this.position,val);this.position+=8;this.length=Math.max(this.length,this.position);++adHoc;};this.writeMetaDataBoolean=function(key,val){var i;prepareWrite(this,2);this.view.setUint16(this.position,key.length);this.position+=2;for(i=0;i<key.length;i++){prepareWrite(this,1);this.bytes[this.position]=key.charCodeAt(i);this.position++;}
prepareWrite(this,2);this.view.setUint8(this.position,0x01);this.position++;this.view.setUint8(this.position,val?0x01:0x00);this.position++;this.length=Math.max(this.length,this.position);++adHoc;};this.finalize=function(){var
dtsDelta,len;switch(this.bytes[0]){case FlvTag.VIDEO_TAG:this.bytes[11]=((this.keyFrame||extraData)?0x10:0x20)|0x07;this.bytes[12]=extraData?0x00:0x01;dtsDelta=this.pts-this.dts;this.bytes[13]=(dtsDelta&0x00FF0000)>>>16;this.bytes[14]=(dtsDelta&0x0000FF00)>>>8;this.bytes[15]=(dtsDelta&0x000000FF)>>>0;break;case FlvTag.AUDIO_TAG:this.bytes[11]=0xAF;this.bytes[12]=extraData?0x00:0x01;break;case FlvTag.METADATA_TAG:this.position=11;this.view.setUint8(this.position,0x02);this.position++;this.view.setUint16(this.position,0x0A);this.position+=2;this.bytes.set([0x6f,0x6e,0x4d,0x65,0x74,0x61,0x44,0x61,0x74,0x61],this.position);this.position+=10;this.bytes[this.position]=0x08;this.position++;this.view.setUint32(this.position,adHoc);this.position=this.length;this.bytes.set([0,0,9],this.position);this.position+=3;this.length=this.position;break;}
len=this.length-11;this.bytes[1]=(len&0x00FF0000)>>>16;this.bytes[2]=(len&0x0000FF00)>>>8;this.bytes[3]=(len&0x000000FF)>>>0;this.bytes[4]=(this.dts&0x00FF0000)>>>16;this.bytes[5]=(this.dts&0x0000FF00)>>>8;this.bytes[6]=(this.dts&0x000000FF)>>>0;this.bytes[7]=(this.dts&0xFF000000)>>>24;this.bytes[8]=0;this.bytes[9]=0;this.bytes[10]=0;prepareWrite(this,4);this.view.setUint32(this.length,this.length);this.length+=4;this.position+=4;this.bytes=this.bytes.subarray(0,this.length);this.frameTime=FlvTag.frameTime(this.bytes);return this;};};FlvTag.AUDIO_TAG=0x08;FlvTag.VIDEO_TAG=0x09;FlvTag.METADATA_TAG=0x12;FlvTag.isAudioFrame=function(tag){return FlvTag.AUDIO_TAG===tag[0];};FlvTag.isVideoFrame=function(tag){return FlvTag.VIDEO_TAG===tag[0];};FlvTag.isMetaData=function(tag){return FlvTag.METADATA_TAG===tag[0];};FlvTag.isKeyFrame=function(tag){if(FlvTag.isVideoFrame(tag)){return tag[11]===0x17;}
if(FlvTag.isAudioFrame(tag)){return true;}
if(FlvTag.isMetaData(tag)){return true;}
return false;};FlvTag.frameTime=function(tag){var pts=tag[4]<<16;pts|=tag[5]<<8;pts|=tag[6]<<0;pts|=tag[7]<<24;return pts;};module.exports=FlvTag;},{}],44:[function(require,module,exports){module.exports={tag:require('./flv-tag'),Transmuxer:require('./transmuxer'),getFlvHeader:require('./flv-header')};},{"./flv-header":42,"./flv-tag":43,"./transmuxer":46}],45:[function(require,module,exports){'use strict';var TagList=function(){var self=this;this.list=[];this.push=function(tag){this.list.push({bytes:tag.bytes,dts:tag.dts,pts:tag.pts,keyFrame:tag.keyFrame,metaDataTag:tag.metaDataTag});};Object.defineProperty(this,'length',{get:function(){return self.list.length;}});};module.exports=TagList;},{}],46:[function(require,module,exports){'use strict';var Stream=require('../utils/stream.js');var FlvTag=require('./flv-tag.js');var m2ts=require('../m2ts/m2ts.js');var AdtsStream=require('../codecs/adts.js');var H264Stream=require('../codecs/h264').H264Stream;var CoalesceStream=require('./coalesce-stream.js');var TagList=require('./tag-list.js');var
Transmuxer,VideoSegmentStream,AudioSegmentStream,collectTimelineInfo,metaDataTag,extraDataTag;collectTimelineInfo=function(track,data){if(typeof data.pts==='number'){if(track.timelineStartInfo.pts===undefined){track.timelineStartInfo.pts=data.pts;}else{track.timelineStartInfo.pts=Math.min(track.timelineStartInfo.pts,data.pts);}}
if(typeof data.dts==='number'){if(track.timelineStartInfo.dts===undefined){track.timelineStartInfo.dts=data.dts;}else{track.timelineStartInfo.dts=Math.min(track.timelineStartInfo.dts,data.dts);}}};metaDataTag=function(track,pts){var
tag=new FlvTag(FlvTag.METADATA_TAG);tag.dts=pts;tag.pts=pts;tag.writeMetaDataDouble('videocodecid',7);tag.writeMetaDataDouble('width',track.width);tag.writeMetaDataDouble('height',track.height);return tag;};extraDataTag=function(track,pts){var
i,tag=new FlvTag(FlvTag.VIDEO_TAG,true);tag.dts=pts;tag.pts=pts;tag.writeByte(0x01);tag.writeByte(track.profileIdc);tag.writeByte(track.profileCompatibility);tag.writeByte(track.levelIdc);tag.writeByte(0xFC|0x03);tag.writeByte(0xE0|0x01);tag.writeShort(track.sps[0].length);tag.writeBytes(track.sps[0]);tag.writeByte(track.pps.length);for(i=0;i<track.pps.length;++i){tag.writeShort(track.pps[i].length);tag.writeBytes(track.pps[i]);}
return tag;};AudioSegmentStream=function(track){var
adtsFrames=[],oldExtraData;AudioSegmentStream.prototype.init.call(this);this.push=function(data){collectTimelineInfo(track,data);if(track&&track.channelcount===undefined){track.audioobjecttype=data.audioobjecttype;track.channelcount=data.channelcount;track.samplerate=data.samplerate;track.samplingfrequencyindex=data.samplingfrequencyindex;track.samplesize=data.samplesize;track.extraData=(track.audioobjecttype<<11)|(track.samplingfrequencyindex<<7)|(track.channelcount<<3);}
data.pts=Math.round(data.pts/90);data.dts=Math.round(data.dts/90);adtsFrames.push(data);};this.flush=function(){var currentFrame,adtsFrame,lastMetaPts,tags=new TagList();if(adtsFrames.length===0){this.trigger('done','AudioSegmentStream');return;}
lastMetaPts=-Infinity;while(adtsFrames.length){currentFrame=adtsFrames.shift();if(track.extraData!==oldExtraData||currentFrame.pts-lastMetaPts>=1000){adtsFrame=new FlvTag(FlvTag.METADATA_TAG);adtsFrame.pts=currentFrame.pts;adtsFrame.dts=currentFrame.dts;adtsFrame.writeMetaDataDouble('audiocodecid',10);adtsFrame.writeMetaDataBoolean('stereo',track.channelcount===2);adtsFrame.writeMetaDataDouble('audiosamplerate',track.samplerate);adtsFrame.writeMetaDataDouble('audiosamplesize',16);tags.push(adtsFrame.finalize());oldExtraData=track.extraData;adtsFrame=new FlvTag(FlvTag.AUDIO_TAG,true);adtsFrame.pts=currentFrame.pts;adtsFrame.dts=currentFrame.dts;adtsFrame.view.setUint16(adtsFrame.position,track.extraData);adtsFrame.position+=2;adtsFrame.length=Math.max(adtsFrame.length,adtsFrame.position);tags.push(adtsFrame.finalize());lastMetaPts=currentFrame.pts;}
adtsFrame=new FlvTag(FlvTag.AUDIO_TAG);adtsFrame.pts=currentFrame.pts;adtsFrame.dts=currentFrame.dts;adtsFrame.writeBytes(currentFrame.data);tags.push(adtsFrame.finalize());}
oldExtraData=null;this.trigger('data',{track:track,tags:tags.list});this.trigger('done','AudioSegmentStream');};};AudioSegmentStream.prototype=new Stream();VideoSegmentStream=function(track){var
nalUnits=[],config,h264Frame;VideoSegmentStream.prototype.init.call(this);this.finishFrame=function(tags,frame){if(!frame){return;}
if(config&&track&&track.newMetadata&&(frame.keyFrame||tags.length===0)){var metaTag=metaDataTag(config,frame.dts).finalize();var extraTag=extraDataTag(track,frame.dts).finalize();metaTag.metaDataTag=extraTag.metaDataTag=true;tags.push(metaTag);tags.push(extraTag);track.newMetadata=false;}
frame.endNalUnit();tags.push(frame.finalize());h264Frame=null;};this.push=function(data){collectTimelineInfo(track,data);data.pts=Math.round(data.pts/90);data.dts=Math.round(data.dts/90);nalUnits.push(data);};this.flush=function(){var
currentNal,tags=new TagList();while(nalUnits.length){if(nalUnits[0].nalUnitType==='access_unit_delimiter_rbsp'){break;}
nalUnits.shift();}
if(nalUnits.length===0){this.trigger('done','VideoSegmentStream');return;}
while(nalUnits.length){currentNal=nalUnits.shift();if(currentNal.nalUnitType==='seq_parameter_set_rbsp'){track.newMetadata=true;config=currentNal.config;track.width=config.width;track.height=config.height;track.sps=[currentNal.data];track.profileIdc=config.profileIdc;track.levelIdc=config.levelIdc;track.profileCompatibility=config.profileCompatibility;h264Frame.endNalUnit();}else if(currentNal.nalUnitType==='pic_parameter_set_rbsp'){track.newMetadata=true;track.pps=[currentNal.data];h264Frame.endNalUnit();}else if(currentNal.nalUnitType==='access_unit_delimiter_rbsp'){if(h264Frame){this.finishFrame(tags,h264Frame);}
h264Frame=new FlvTag(FlvTag.VIDEO_TAG);h264Frame.pts=currentNal.pts;h264Frame.dts=currentNal.dts;}else{if(currentNal.nalUnitType==='slice_layer_without_partitioning_rbsp_idr'){h264Frame.keyFrame=true;}
h264Frame.endNalUnit();}
h264Frame.startNalUnit();h264Frame.writeBytes(currentNal.data);}
if(h264Frame){this.finishFrame(tags,h264Frame);}
this.trigger('data',{track:track,tags:tags.list});this.trigger('done','VideoSegmentStream');};};VideoSegmentStream.prototype=new Stream();Transmuxer=function(options){var
self=this,packetStream,parseStream,elementaryStream,videoTimestampRolloverStream,audioTimestampRolloverStream,timedMetadataTimestampRolloverStream,adtsStream,h264Stream,videoSegmentStream,audioSegmentStream,captionStream,coalesceStream;Transmuxer.prototype.init.call(this);options=options||{};this.metadataStream=new m2ts.MetadataStream();options.metadataStream=this.metadataStream;packetStream=new m2ts.TransportPacketStream();parseStream=new m2ts.TransportParseStream();elementaryStream=new m2ts.ElementaryStream();videoTimestampRolloverStream=new m2ts.TimestampRolloverStream('video');audioTimestampRolloverStream=new m2ts.TimestampRolloverStream('audio');timedMetadataTimestampRolloverStream=new m2ts.TimestampRolloverStream('timed-metadata');adtsStream=new AdtsStream();h264Stream=new H264Stream();coalesceStream=new CoalesceStream(options);packetStream.pipe(parseStream).pipe(elementaryStream);elementaryStream.pipe(videoTimestampRolloverStream).pipe(h264Stream);elementaryStream.pipe(audioTimestampRolloverStream).pipe(adtsStream);elementaryStream.pipe(timedMetadataTimestampRolloverStream).pipe(this.metadataStream).pipe(coalesceStream);captionStream=new m2ts.CaptionStream();h264Stream.pipe(captionStream).pipe(coalesceStream);elementaryStream.on('data',function(data){var i,videoTrack,audioTrack;if(data.type==='metadata'){i=data.tracks.length;while(i--){if(data.tracks[i].type==='video'){videoTrack=data.tracks[i];}else if(data.tracks[i].type==='audio'){audioTrack=data.tracks[i];}}
if(videoTrack&&!videoSegmentStream){coalesceStream.numberOfTracks++;videoSegmentStream=new VideoSegmentStream(videoTrack);h264Stream.pipe(videoSegmentStream).pipe(coalesceStream);}
if(audioTrack&&!audioSegmentStream){coalesceStream.numberOfTracks++;audioSegmentStream=new AudioSegmentStream(audioTrack);adtsStream.pipe(audioSegmentStream).pipe(coalesceStream);}}});this.push=function(data){packetStream.push(data);};this.flush=function(){packetStream.flush();};coalesceStream.on('data',function(event){self.trigger('data',event);});coalesceStream.on('done',function(){self.trigger('done');});};Transmuxer.prototype=new Stream();module.exports=Transmuxer;},{"../codecs/adts.js":38,"../codecs/h264":39,"../m2ts/m2ts.js":48,"../utils/stream.js":60,"./coalesce-stream.js":41,"./flv-tag.js":43,"./tag-list.js":45}],47:[function(require,module,exports){'use strict';var USER_DATA_REGISTERED_ITU_T_T35=4,RBSP_TRAILING_BITS=128,Stream=require('../utils/stream');var parseSei=function(bytes){var
i=0,result={payloadType:-1,payloadSize:0},payloadType=0,payloadSize=0;while(i<bytes.byteLength){if(bytes[i]===RBSP_TRAILING_BITS){break;}
while(bytes[i]===0xFF){payloadType+=255;i++;}
payloadType+=bytes[i++];while(bytes[i]===0xFF){payloadSize+=255;i++;}
payloadSize+=bytes[i++];if(!result.payload&&payloadType===USER_DATA_REGISTERED_ITU_T_T35){result.payloadType=payloadType;result.payloadSize=payloadSize;result.payload=bytes.subarray(i,i+payloadSize);break;}
i+=payloadSize;payloadType=0;payloadSize=0;}
return result;};var parseUserData=function(sei){if(sei.payload[0]!==181){return null;}
if(((sei.payload[1]<<8)|sei.payload[2])!==49){return null;}
if(String.fromCharCode(sei.payload[3],sei.payload[4],sei.payload[5],sei.payload[6])!=='GA94'){return null;}
if(sei.payload[7]!==0x03){return null;}
return sei.payload.subarray(8,sei.payload.length-1);};var parseCaptionPackets=function(pts,userData){var results=[],i,count,offset,data;if(!(userData[0]&0x40)){return results;}
count=userData[0]&0x1f;for(i=0;i<count;i++){offset=i*3;data={type:userData[offset+2]&0x03,pts:pts};if(userData[offset+2]&0x04){data.ccData=(userData[offset+3]<<8)|userData[offset+4];results.push(data);}}
return results;};var CaptionStream=function(){CaptionStream.prototype.init.call(this);this.captionPackets_=[];this.field1_=new Cea608Stream();this.field1_.on('data',this.trigger.bind(this,'data'));this.field1_.on('done',this.trigger.bind(this,'done'));};CaptionStream.prototype=new Stream();CaptionStream.prototype.push=function(event){var sei,userData;if(event.nalUnitType!=='sei_rbsp'){return;}
sei=parseSei(event.escapedRBSP);if(sei.payloadType!==USER_DATA_REGISTERED_ITU_T_T35){return;}
userData=parseUserData(sei);if(!userData){return;}
this.captionPackets_=this.captionPackets_.concat(parseCaptionPackets(event.pts,userData));};CaptionStream.prototype.flush=function(){if(!this.captionPackets_.length){this.field1_.flush();return;}
this.captionPackets_.forEach(function(elem,idx){elem.presortIndex=idx;});this.captionPackets_.sort(function(a,b){if(a.pts===b.pts){return a.presortIndex-b.presortIndex;}
return a.pts-b.pts;});this.captionPackets_.forEach(this.field1_.push,this.field1_);this.captionPackets_.length=0;this.field1_.flush();return;};var BASIC_CHARACTER_TRANSLATION={0x2a:0xe1,0x5c:0xe9,0x5e:0xed,0x5f:0xf3,0x60:0xfa,0x7b:0xe7,0x7c:0xf7,0x7d:0xd1,0x7e:0xf1,0x7f:0x2588};var getCharFromCode=function(code){if(code===null){return'';}
code=BASIC_CHARACTER_TRANSLATION[code]||code;return String.fromCharCode(code);};var PADDING=0x0000,RESUME_CAPTION_LOADING=0x1420,END_OF_CAPTION=0x142f,ROLL_UP_2_ROWS=0x1425,ROLL_UP_3_ROWS=0x1426,ROLL_UP_4_ROWS=0x1427,CARRIAGE_RETURN=0x142d,BACKSPACE=0x1421,ERASE_DISPLAYED_MEMORY=0x142c,ERASE_NON_DISPLAYED_MEMORY=0x142e;var BOTTOM_ROW=14;var createDisplayBuffer=function(){var result=[],i=BOTTOM_ROW+1;while(i--){result.push('');}
return result;};var Cea608Stream=function(){Cea608Stream.prototype.init.call(this);this.mode_='popOn';this.topRow_=0;this.startPts_=0;this.displayed_=createDisplayBuffer();this.nonDisplayed_=createDisplayBuffer();this.lastControlCode_=null;this.push=function(packet){if(packet.type!==0){return;}
var data,swap,char0,char1;data=packet.ccData&0x7f7f;if(data===this.lastControlCode_){this.lastControlCode_=null;return;}
if((data&0xf000)===0x1000){this.lastControlCode_=data;}else{this.lastControlCode_=null;}
switch(data){case PADDING:break;case RESUME_CAPTION_LOADING:this.mode_='popOn';break;case END_OF_CAPTION:this.flushDisplayed(packet.pts);swap=this.displayed_;this.displayed_=this.nonDisplayed_;this.nonDisplayed_=swap;this.startPts_=packet.pts;break;case ROLL_UP_2_ROWS:this.topRow_=BOTTOM_ROW-1;this.mode_='rollUp';break;case ROLL_UP_3_ROWS:this.topRow_=BOTTOM_ROW-2;this.mode_='rollUp';break;case ROLL_UP_4_ROWS:this.topRow_=BOTTOM_ROW-3;this.mode_='rollUp';break;case CARRIAGE_RETURN:this.flushDisplayed(packet.pts);this.shiftRowsUp_();this.startPts_=packet.pts;break;case BACKSPACE:if(this.mode_==='popOn'){this.nonDisplayed_[BOTTOM_ROW]=this.nonDisplayed_[BOTTOM_ROW].slice(0,-1);}else{this.displayed_[BOTTOM_ROW]=this.displayed_[BOTTOM_ROW].slice(0,-1);}
break;case ERASE_DISPLAYED_MEMORY:this.flushDisplayed(packet.pts);this.displayed_=createDisplayBuffer();break;case ERASE_NON_DISPLAYED_MEMORY:this.nonDisplayed_=createDisplayBuffer();break;default:char0=data>>>8;char1=data&0xff;if(char0>=0x10&&char0<=0x17&&char1>=0x40&&char1<=0x7F&&(char0!==0x10||char1<0x60)){char0=0x20;char1=null;}
if((char0===0x11||char0===0x19)&&(char1>=0x30&&char1<=0x3F)){char0=0x266A;char1='';}
if((char0&0xf0)===0x10){return;}
if(char0===0x00){char0=null;}
if(char1===0x00){char1=null;}
this[this.mode_](packet.pts,char0,char1);break;}};};Cea608Stream.prototype=new Stream();Cea608Stream.prototype.flushDisplayed=function(pts){var content=this.displayed_.map(function(row){return row.trim();}).filter(function(row){return row.length;}).join('\n');if(content.length){this.trigger('data',{startPts:this.startPts_,endPts:pts,text:content});}};Cea608Stream.prototype.popOn=function(pts,char0,char1){var baseRow=this.nonDisplayed_[BOTTOM_ROW];baseRow+=getCharFromCode(char0);baseRow+=getCharFromCode(char1);this.nonDisplayed_[BOTTOM_ROW]=baseRow;};Cea608Stream.prototype.rollUp=function(pts,char0,char1){var baseRow=this.displayed_[BOTTOM_ROW];if(baseRow===''){this.flushDisplayed(pts);this.startPts_=pts;}
baseRow+=getCharFromCode(char0);baseRow+=getCharFromCode(char1);this.displayed_[BOTTOM_ROW]=baseRow;};Cea608Stream.prototype.shiftRowsUp_=function(){var i;for(i=0;i<this.topRow_;i++){this.displayed_[i]='';}
for(i=this.topRow_;i<BOTTOM_ROW;i++){this.displayed_[i]=this.displayed_[i+1];}
this.displayed_[BOTTOM_ROW]='';};module.exports={CaptionStream:CaptionStream,Cea608Stream:Cea608Stream};},{"../utils/stream":60}],48:[function(require,module,exports){'use strict';var Stream=require('../utils/stream.js'),CaptionStream=require('./caption-stream'),StreamTypes=require('./stream-types'),TimestampRolloverStream=require('./timestamp-rollover-stream').TimestampRolloverStream;var m2tsStreamTypes=require('./stream-types.js');var TransportPacketStream,TransportParseStream,ElementaryStream;var
MP2T_PACKET_LENGTH=188,SYNC_BYTE=0x47;TransportPacketStream=function(){var
buffer=new Uint8Array(MP2T_PACKET_LENGTH),bytesInBuffer=0;TransportPacketStream.prototype.init.call(this);this.push=function(bytes){var
startIndex=0,endIndex=MP2T_PACKET_LENGTH,everything;if(bytesInBuffer){everything=new Uint8Array(bytes.byteLength+bytesInBuffer);everything.set(buffer.subarray(0,bytesInBuffer));everything.set(bytes,bytesInBuffer);bytesInBuffer=0;}else{everything=bytes;}
while(endIndex<everything.byteLength){if(everything[startIndex]===SYNC_BYTE&&everything[endIndex]===SYNC_BYTE){this.trigger('data',everything.subarray(startIndex,endIndex));startIndex+=MP2T_PACKET_LENGTH;endIndex+=MP2T_PACKET_LENGTH;continue;}
startIndex++;endIndex++;}
if(startIndex<everything.byteLength){buffer.set(everything.subarray(startIndex),0);bytesInBuffer=everything.byteLength-startIndex;}};this.flush=function(){if(bytesInBuffer===MP2T_PACKET_LENGTH&&buffer[0]===SYNC_BYTE){this.trigger('data',buffer);bytesInBuffer=0;}
this.trigger('done');};};TransportPacketStream.prototype=new Stream();TransportParseStream=function(){var parsePsi,parsePat,parsePmt,self;TransportParseStream.prototype.init.call(this);self=this;this.packetsWaitingForPmt=[];this.programMapTable=undefined;parsePsi=function(payload,psi){var offset=0;if(psi.payloadUnitStartIndicator){offset+=payload[offset]+1;}
if(psi.type==='pat'){parsePat(payload.subarray(offset),psi);}else{parsePmt(payload.subarray(offset),psi);}};parsePat=function(payload,pat){pat.section_number=payload[7];pat.last_section_number=payload[8];self.pmtPid=(payload[10]&0x1F)<<8|payload[11];pat.pmtPid=self.pmtPid;};parsePmt=function(payload,pmt){var sectionLength,tableEnd,programInfoLength,offset;if(!(payload[5]&0x01)){return;}
self.programMapTable={};sectionLength=(payload[1]&0x0f)<<8|payload[2];tableEnd=3+sectionLength-4;programInfoLength=(payload[10]&0x0f)<<8|payload[11];offset=12+programInfoLength;while(offset<tableEnd){self.programMapTable[(payload[offset+1]&0x1F)<<8|payload[offset+2]]=payload[offset];offset+=((payload[offset+3]&0x0F)<<8|payload[offset+4])+5;}
pmt.programMapTable=self.programMapTable;while(self.packetsWaitingForPmt.length){self.processPes_.apply(self,self.packetsWaitingForPmt.shift());}};this.push=function(packet){var
result={},offset=4;result.payloadUnitStartIndicator=!!(packet[1]&0x40);result.pid=packet[1]&0x1f;result.pid<<=8;result.pid|=packet[2];if(((packet[3]&0x30)>>>4)>0x01){offset+=packet[offset]+1;}
if(result.pid===0){result.type='pat';parsePsi(packet.subarray(offset),result);this.trigger('data',result);}else if(result.pid===this.pmtPid){result.type='pmt';parsePsi(packet.subarray(offset),result);this.trigger('data',result);}else if(this.programMapTable===undefined){this.packetsWaitingForPmt.push([packet,offset,result]);}else{this.processPes_(packet,offset,result);}};this.processPes_=function(packet,offset,result){result.streamType=this.programMapTable[result.pid];result.type='pes';result.data=packet.subarray(offset);this.trigger('data',result);};};TransportParseStream.prototype=new Stream();TransportParseStream.STREAM_TYPES={h264:0x1b,adts:0x0f};ElementaryStream=function(){var
self=this,video={data:[],size:0},audio={data:[],size:0},timedMetadata={data:[],size:0},parsePes=function(payload,pes){var ptsDtsFlags;pes.dataAlignmentIndicator=(payload[6]&0x04)!==0;ptsDtsFlags=payload[7];if(ptsDtsFlags&0xC0){pes.pts=(payload[9]&0x0E)<<27|(payload[10]&0xFF)<<20|(payload[11]&0xFE)<<12|(payload[12]&0xFF)<<5|(payload[13]&0xFE)>>>3;pes.pts*=4;pes.pts+=(payload[13]&0x06)>>>1;pes.dts=pes.pts;if(ptsDtsFlags&0x40){pes.dts=(payload[14]&0x0E)<<27|(payload[15]&0xFF)<<20|(payload[16]&0xFE)<<12|(payload[17]&0xFF)<<5|(payload[18]&0xFE)>>>3;pes.dts*=4;pes.dts+=(payload[18]&0x06)>>>1;}}
pes.data=payload.subarray(9+payload[8]);},flushStream=function(stream,type){var
packetData=new Uint8Array(stream.size),event={type:type},i=0,fragment;if(!stream.data.length){return;}
event.trackId=stream.data[0].pid;while(stream.data.length){fragment=stream.data.shift();packetData.set(fragment.data,i);i+=fragment.data.byteLength;}
parsePes(packetData,event);stream.size=0;self.trigger('data',event);};ElementaryStream.prototype.init.call(this);this.push=function(data){({pat:function(){},pes:function(){var stream,streamType;switch(data.streamType){case StreamTypes.H264_STREAM_TYPE:case m2tsStreamTypes.H264_STREAM_TYPE:stream=video;streamType='video';break;case StreamTypes.ADTS_STREAM_TYPE:stream=audio;streamType='audio';break;case StreamTypes.METADATA_STREAM_TYPE:stream=timedMetadata;streamType='timed-metadata';break;default:return;}
if(data.payloadUnitStartIndicator){flushStream(stream,streamType);}
stream.data.push(data);stream.size+=data.data.byteLength;},pmt:function(){var
event={type:'metadata',tracks:[]},programMapTable=data.programMapTable,k,track;for(k in programMapTable){if(programMapTable.hasOwnProperty(k)){track={timelineStartInfo:{baseMediaDecodeTime:0}};track.id=+k;if(programMapTable[k]===m2tsStreamTypes.H264_STREAM_TYPE){track.codec='avc';track.type='video';}else if(programMapTable[k]===m2tsStreamTypes.ADTS_STREAM_TYPE){track.codec='adts';track.type='audio';}
event.tracks.push(track);}}
self.trigger('data',event);}})[data.type]();};this.flush=function(){flushStream(video,'video');flushStream(audio,'audio');flushStream(timedMetadata,'timed-metadata');this.trigger('done');};};ElementaryStream.prototype=new Stream();var m2ts={PAT_PID:0x0000,MP2T_PACKET_LENGTH:MP2T_PACKET_LENGTH,TransportPacketStream:TransportPacketStream,TransportParseStream:TransportParseStream,ElementaryStream:ElementaryStream,TimestampRolloverStream:TimestampRolloverStream,CaptionStream:CaptionStream.CaptionStream,Cea608Stream:CaptionStream.Cea608Stream,MetadataStream:require('./metadata-stream')};for(var type in StreamTypes){if(StreamTypes.hasOwnProperty(type)){m2ts[type]=StreamTypes[type];}}
module.exports=m2ts;},{"../utils/stream.js":60,"./caption-stream":47,"./metadata-stream":49,"./stream-types":51,"./stream-types.js":51,"./timestamp-rollover-stream":52}],49:[function(require,module,exports){'use strict';var
Stream=require('../utils/stream'),StreamTypes=require('./stream-types'),percentEncode=function(bytes,start,end){var i,result='';for(i=start;i<end;i++){result+='%'+('00'+bytes[i].toString(16)).slice(-2);}
return result;},parseUtf8=function(bytes,start,end){return decodeURIComponent(percentEncode(bytes,start,end));},parseIso88591=function(bytes,start,end){return unescape(percentEncode(bytes,start,end));},parseSyncSafeInteger=function(data){return(data[0]<<21)|(data[1]<<14)|(data[2]<<7)|(data[3]);},tagParsers={TXXX:function(tag){var i;if(tag.data[0]!==3){return;}
for(i=1;i<tag.data.length;i++){if(tag.data[i]===0){tag.description=parseUtf8(tag.data,1,i);tag.value=parseUtf8(tag.data,i+1,tag.data.length-1);break;}}
tag.data=tag.value;},WXXX:function(tag){var i;if(tag.data[0]!==3){return;}
for(i=1;i<tag.data.length;i++){if(tag.data[i]===0){tag.description=parseUtf8(tag.data,1,i);tag.url=parseUtf8(tag.data,i+1,tag.data.length);break;}}},PRIV:function(tag){var i;for(i=0;i<tag.data.length;i++){if(tag.data[i]===0){tag.owner=parseIso88591(tag.data,0,i);break;}}
tag.privateData=tag.data.subarray(i+1);tag.data=tag.privateData;}},MetadataStream;MetadataStream=function(options){var
settings={debug:!!(options&&options.debug),descriptor:options&&options.descriptor},tagSize=0,buffer=[],bufferSize=0,i;MetadataStream.prototype.init.call(this);this.dispatchType=StreamTypes.METADATA_STREAM_TYPE.toString(16);if(settings.descriptor){for(i=0;i<settings.descriptor.length;i++){this.dispatchType+=('00'+settings.descriptor[i].toString(16)).slice(-2);}}
this.push=function(chunk){var tag,frameStart,frameSize,frame,i,frameHeader;if(chunk.type!=='timed-metadata'){return;}
if(chunk.dataAlignmentIndicator){bufferSize=0;buffer.length=0;}
if(buffer.length===0&&(chunk.data.length<10||chunk.data[0]!=='I'.charCodeAt(0)||chunk.data[1]!=='D'.charCodeAt(0)||chunk.data[2]!=='3'.charCodeAt(0))){if(settings.debug){console.log('Skipping unrecognized metadata packet');}
return;}
buffer.push(chunk);bufferSize+=chunk.data.byteLength;if(buffer.length===1){tagSize=parseSyncSafeInteger(chunk.data.subarray(6,10));tagSize+=10;}
if(bufferSize<tagSize){return;}
tag={data:new Uint8Array(tagSize),frames:[],pts:buffer[0].pts,dts:buffer[0].dts};for(i=0;i<tagSize;){tag.data.set(buffer[0].data.subarray(0,tagSize-i),i);i+=buffer[0].data.byteLength;bufferSize-=buffer[0].data.byteLength;buffer.shift();}
frameStart=10;if(tag.data[5]&0x40){frameStart+=4;frameStart+=parseSyncSafeInteger(tag.data.subarray(10,14));tagSize-=parseSyncSafeInteger(tag.data.subarray(16,20));}
do{frameSize=parseSyncSafeInteger(tag.data.subarray(frameStart+4,frameStart+8));if(frameSize<1){return console.log('Malformed ID3 frame encountered. Skipping metadata parsing.');}
frameHeader=String.fromCharCode(tag.data[frameStart],tag.data[frameStart+1],tag.data[frameStart+2],tag.data[frameStart+3]);frame={id:frameHeader,data:tag.data.subarray(frameStart+10,frameStart+frameSize+10)};frame.key=frame.id;if(tagParsers[frame.id]){tagParsers[frame.id](frame);if(frame.owner==='com.apple.streaming.transportStreamTimestamp'){var
d=frame.data,size=((d[3]&0x01)<<30)|(d[4]<<22)|(d[5]<<14)|(d[6]<<6)|(d[7]>>>2);size*=4;size+=d[7]&0x03;frame.timeStamp=size;if(tag.pts===undefined&&tag.dts===undefined){tag.pts=frame.timeStamp;tag.dts=frame.timeStamp;}
this.trigger('timestamp',frame);}}
tag.frames.push(frame);frameStart+=10;frameStart+=frameSize;}while(frameStart<tagSize);this.trigger('data',tag);};};MetadataStream.prototype=new Stream();module.exports=MetadataStream;},{"../utils/stream":60,"./stream-types":51}],50:[function(require,module,exports){'use strict';var StreamTypes=require('./stream-types.js');var parsePid=function(packet){var pid=packet[1]&0x1f;pid<<=8;pid|=packet[2];return pid;};var parsePayloadUnitStartIndicator=function(packet){return!!(packet[1]&0x40);};var parseAdaptionField=function(packet){var offset=0;if(((packet[3]&0x30)>>>4)>0x01){offset+=packet[4]+1;}
return offset;};var parseType=function(packet,pmtPid){var pid=parsePid(packet);if(pid===0){return'pat';}else if(pid===pmtPid){return'pmt';}else if(pmtPid){return'pes';}
return null;};var parsePat=function(packet){var pusi=parsePayloadUnitStartIndicator(packet);var offset=4+parseAdaptionField(packet);if(pusi){offset+=packet[offset]+1;}
return(packet[offset+10]&0x1f)<<8|packet[offset+11];};var parsePmt=function(packet){var programMapTable={};var pusi=parsePayloadUnitStartIndicator(packet);var payloadOffset=4+parseAdaptionField(packet);if(pusi){payloadOffset+=packet[payloadOffset]+1;}
if(!(packet[payloadOffset+5]&0x01)){return;}
var sectionLength,tableEnd,programInfoLength;sectionLength=(packet[payloadOffset+1]&0x0f)<<8|packet[payloadOffset+2];tableEnd=3+sectionLength-4;programInfoLength=(packet[payloadOffset+10]&0x0f)<<8|packet[payloadOffset+11];var offset=12+programInfoLength;while(offset<tableEnd){var i=payloadOffset+offset;programMapTable[(packet[i+1]&0x1F)<<8|packet[i+2]]=packet[i];offset+=((packet[i+3]&0x0F)<<8|packet[i+4])+5;}
return programMapTable;};var parsePesType=function(packet,programMapTable){var pid=parsePid(packet);var type=programMapTable[pid];switch(type){case StreamTypes.H264_STREAM_TYPE:return'video';case StreamTypes.ADTS_STREAM_TYPE:return'audio';case StreamTypes.METADATA_STREAM_TYPE:return'timed-metadata';default:return null;}};var parsePesTime=function(packet){var pusi=parsePayloadUnitStartIndicator(packet);if(!pusi){return null;}
var offset=4+parseAdaptionField(packet);var pes={};var ptsDtsFlags;ptsDtsFlags=packet[offset+7];if(ptsDtsFlags&0xC0){pes.pts=(packet[offset+9]&0x0E)<<27|(packet[offset+10]&0xFF)<<20|(packet[offset+11]&0xFE)<<12|(packet[offset+12]&0xFF)<<5|(packet[offset+13]&0xFE)>>>3;pes.pts*=4;pes.pts+=(packet[offset+13]&0x06)>>>1;pes.dts=pes.pts;if(ptsDtsFlags&0x40){pes.dts=(packet[offset+14]&0x0E)<<27|(packet[offset+15]&0xFF)<<20|(packet[offset+16]&0xFE)<<12|(packet[offset+17]&0xFF)<<5|(packet[offset+18]&0xFE)>>>3;pes.dts*=4;pes.dts+=(packet[offset+18]&0x06)>>>1;}}
return pes;};var parseNalUnitType=function(type){switch(type){case 0x05:return'slice_layer_without_partitioning_rbsp_idr';case 0x06:return'sei_rbsp';case 0x07:return'seq_parameter_set_rbsp';case 0x08:return'pic_parameter_set_rbsp';case 0x09:return'access_unit_delimiter_rbsp';default:return null;}};var videoPacketContainsKeyFrame=function(packet){var offset=4+parseAdaptionField(packet);var frameBuffer=packet.subarray(offset);var frameI=0;var frameSyncPoint=0;var foundKeyFrame=false;var nalType;for(;frameSyncPoint<frameBuffer.byteLength-3;frameSyncPoint++){if(frameBuffer[frameSyncPoint+2]===1){frameI=frameSyncPoint+5;break;}}
while(frameI<frameBuffer.byteLength){switch(frameBuffer[frameI]){case 0:if(frameBuffer[frameI-1]!==0){frameI+=2;break;}else if(frameBuffer[frameI-2]!==0){frameI++;break;}
if(frameSyncPoint+3!==frameI-2){nalType=parseNalUnitType(frameBuffer[frameSyncPoint+3]&0x1f);if(nalType==='slice_layer_without_partitioning_rbsp_idr'){foundKeyFrame=true;}}
do{frameI++;}while(frameBuffer[frameI]!==1&&frameI<frameBuffer.length);frameSyncPoint=frameI-2;frameI+=3;break;case 1:if(frameBuffer[frameI-1]!==0||frameBuffer[frameI-2]!==0){frameI+=3;break;}
nalType=parseNalUnitType(frameBuffer[frameSyncPoint+3]&0x1f);if(nalType==='slice_layer_without_partitioning_rbsp_idr'){foundKeyFrame=true;}
frameSyncPoint=frameI-2;frameI+=3;break;default:frameI+=3;break;}}
frameBuffer=frameBuffer.subarray(frameSyncPoint);frameI-=frameSyncPoint;frameSyncPoint=0;if(frameBuffer&&frameBuffer.byteLength>3){nalType=parseNalUnitType(frameBuffer[frameSyncPoint+3]&0x1f);if(nalType==='slice_layer_without_partitioning_rbsp_idr'){foundKeyFrame=true;}}
return foundKeyFrame;};module.exports={parseType:parseType,parsePat:parsePat,parsePmt:parsePmt,parsePayloadUnitStartIndicator:parsePayloadUnitStartIndicator,parsePesType:parsePesType,parsePesTime:parsePesTime,videoPacketContainsKeyFrame:videoPacketContainsKeyFrame};},{"./stream-types.js":51}],51:[function(require,module,exports){'use strict';module.exports={H264_STREAM_TYPE:0x1B,ADTS_STREAM_TYPE:0x0F,METADATA_STREAM_TYPE:0x15};},{}],52:[function(require,module,exports){'use strict';var Stream=require('../utils/stream');var MAX_TS=8589934592;var RO_THRESH=4294967296;var handleRollover=function(value,reference){var direction=1;if(value>reference){direction=-1;}
while(Math.abs(reference-value)>RO_THRESH){value+=(direction*MAX_TS);}
return value;};var TimestampRolloverStream=function(type){var lastDTS,referenceDTS;TimestampRolloverStream.prototype.init.call(this);this.type_=type;this.push=function(data){if(data.type!==this.type_){return;}
if(referenceDTS===undefined){referenceDTS=data.dts;}
data.dts=handleRollover(data.dts,referenceDTS);data.pts=handleRollover(data.pts,referenceDTS);lastDTS=data.dts;this.trigger('data',data);};this.flush=function(){referenceDTS=lastDTS;this.trigger('done');};this.discontinuity=function(){referenceDTS=void 0;lastDTS=void 0;};};TimestampRolloverStream.prototype=new Stream();module.exports={TimestampRolloverStream:TimestampRolloverStream,handleRollover:handleRollover};},{"../utils/stream":60}],53:[function(require,module,exports){module.exports={generator:require('./mp4-generator'),Transmuxer:require('./transmuxer').Transmuxer,AudioSegmentStream:require('./transmuxer').AudioSegmentStream,VideoSegmentStream:require('./transmuxer').VideoSegmentStream};},{"./mp4-generator":54,"./transmuxer":56}],54:[function(require,module,exports){'use strict';var UINT32_MAX=Math.pow(2,32)-1;var box,dinf,esds,ftyp,mdat,mfhd,minf,moof,moov,mvex,mvhd,trak,tkhd,mdia,mdhd,hdlr,sdtp,stbl,stsd,traf,trex,trun,types,MAJOR_BRAND,MINOR_VERSION,AVC1_BRAND,VIDEO_HDLR,AUDIO_HDLR,HDLR_TYPES,VMHD,SMHD,DREF,STCO,STSC,STSZ,STTS;(function(){var i;types={avc1:[],avcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],mvex:[],mvhd:[],sdtp:[],smhd:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],styp:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[]};if(typeof Uint8Array==='undefined'){return;}
for(i in types){if(types.hasOwnProperty(i)){types[i]=[i.charCodeAt(0),i.charCodeAt(1),i.charCodeAt(2),i.charCodeAt(3)];}}
MAJOR_BRAND=new Uint8Array(['i'.charCodeAt(0),'s'.charCodeAt(0),'o'.charCodeAt(0),'m'.charCodeAt(0)]);AVC1_BRAND=new Uint8Array(['a'.charCodeAt(0),'v'.charCodeAt(0),'c'.charCodeAt(0),'1'.charCodeAt(0)]);MINOR_VERSION=new Uint8Array([0,0,0,1]);VIDEO_HDLR=new Uint8Array([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x69,0x64,0x65,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x56,0x69,0x64,0x65,0x6f,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x00]);AUDIO_HDLR=new Uint8Array([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x6f,0x75,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x53,0x6f,0x75,0x6e,0x64,0x48,0x61,0x6e,0x64,0x6c,0x65,0x72,0x00]);HDLR_TYPES={video:VIDEO_HDLR,audio:AUDIO_HDLR};DREF=new Uint8Array([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0c,0x75,0x72,0x6c,0x20,0x00,0x00,0x00,0x01]);SMHD=new Uint8Array([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]);STCO=new Uint8Array([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]);STSC=STCO;STSZ=new Uint8Array([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]);STTS=STCO;VMHD=new Uint8Array([0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]);}());box=function(type){var
payload=[],size=0,i,result,view;for(i=1;i<arguments.length;i++){payload.push(arguments[i]);}
i=payload.length;while(i--){size+=payload[i].byteLength;}
result=new Uint8Array(size+8);view=new DataView(result.buffer,result.byteOffset,result.byteLength);view.setUint32(0,result.byteLength);result.set(type,4);for(i=0,size=8;i<payload.length;i++){result.set(payload[i],size);size+=payload[i].byteLength;}
return result;};dinf=function(){return box(types.dinf,box(types.dref,DREF));};esds=function(track){return box(types.esds,new Uint8Array([0x00,0x00,0x00,0x00,0x03,0x19,0x00,0x00,0x00,0x04,0x11,0x40,0x15,0x00,0x06,0x00,0x00,0x00,0xda,0xc0,0x00,0x00,0xda,0xc0,0x05,0x02,(track.audioobjecttype<<3)|(track.samplingfrequencyindex>>>1),(track.samplingfrequencyindex<<7)|(track.channelcount<<3),0x06,0x01,0x02]));};ftyp=function(){return box(types.ftyp,MAJOR_BRAND,MINOR_VERSION,MAJOR_BRAND,AVC1_BRAND);};hdlr=function(type){return box(types.hdlr,HDLR_TYPES[type]);};mdat=function(data){return box(types.mdat,data);};mdhd=function(track){var result=new Uint8Array([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x01,0x5f,0x90,(track.duration>>>24)&0xFF,(track.duration>>>16)&0xFF,(track.duration>>>8)&0xFF,track.duration&0xFF,0x55,0xc4,0x00,0x00]);if(track.samplerate){result[12]=(track.samplerate>>>24)&0xFF;result[13]=(track.samplerate>>>16)&0xFF;result[14]=(track.samplerate>>>8)&0xFF;result[15]=(track.samplerate)&0xFF;}
return box(types.mdhd,result);};mdia=function(track){return box(types.mdia,mdhd(track),hdlr(track.type),minf(track));};mfhd=function(sequenceNumber){return box(types.mfhd,new Uint8Array([0x00,0x00,0x00,0x00,(sequenceNumber&0xFF000000)>>24,(sequenceNumber&0xFF0000)>>16,(sequenceNumber&0xFF00)>>8,sequenceNumber&0xFF]));};minf=function(track){return box(types.minf,track.type==='video'?box(types.vmhd,VMHD):box(types.smhd,SMHD),dinf(),stbl(track));};moof=function(sequenceNumber,tracks){var
trackFragments=[],i=tracks.length;while(i--){trackFragments[i]=traf(tracks[i]);}
return box.apply(null,[types.moof,mfhd(sequenceNumber)].concat(trackFragments));};moov=function(tracks){var
i=tracks.length,boxes=[];while(i--){boxes[i]=trak(tracks[i]);}
return box.apply(null,[types.moov,mvhd(0xffffffff)].concat(boxes).concat(mvex(tracks)));};mvex=function(tracks){var
i=tracks.length,boxes=[];while(i--){boxes[i]=trex(tracks[i]);}
return box.apply(null,[types.mvex].concat(boxes));};mvhd=function(duration){var
bytes=new Uint8Array([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x01,0x5f,0x90,(duration&0xFF000000)>>24,(duration&0xFF0000)>>16,(duration&0xFF00)>>8,duration&0xFF,0x00,0x01,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff]);return box(types.mvhd,bytes);};sdtp=function(track){var
samples=track.samples||[],bytes=new Uint8Array(4+samples.length),flags,i;for(i=0;i<samples.length;i++){flags=samples[i].flags;bytes[i+4]=(flags.dependsOn<<4)|(flags.isDependedOn<<2)|(flags.hasRedundancy);}
return box(types.sdtp,bytes);};stbl=function(track){return box(types.stbl,stsd(track),box(types.stts,STTS),box(types.stsc,STSC),box(types.stsz,STSZ),box(types.stco,STCO));};(function(){var videoSample,audioSample;stsd=function(track){return box(types.stsd,new Uint8Array([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01]),track.type==='video'?videoSample(track):audioSample(track));};videoSample=function(track){var
sps=track.sps||[],pps=track.pps||[],sequenceParameterSets=[],pictureParameterSets=[],i;for(i=0;i<sps.length;i++){sequenceParameterSets.push((sps[i].byteLength&0xFF00)>>>8);sequenceParameterSets.push((sps[i].byteLength&0xFF));sequenceParameterSets=sequenceParameterSets.concat(Array.prototype.slice.call(sps[i]));}
for(i=0;i<pps.length;i++){pictureParameterSets.push((pps[i].byteLength&0xFF00)>>>8);pictureParameterSets.push((pps[i].byteLength&0xFF));pictureParameterSets=pictureParameterSets.concat(Array.prototype.slice.call(pps[i]));}
return box(types.avc1,new Uint8Array([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,(track.width&0xff00)>>8,track.width&0xff,(track.height&0xff00)>>8,track.height&0xff,0x00,0x48,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x13,0x76,0x69,0x64,0x65,0x6f,0x6a,0x73,0x2d,0x63,0x6f,0x6e,0x74,0x72,0x69,0x62,0x2d,0x68,0x6c,0x73,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x11,0x11]),box(types.avcC,new Uint8Array([0x01,track.profileIdc,track.profileCompatibility,track.levelIdc,0xff].concat([sps.length]).concat(sequenceParameterSets).concat([pps.length]).concat(pictureParameterSets))),box(types.btrt,new Uint8Array([0x00,0x1c,0x9c,0x80,0x00,0x2d,0xc6,0xc0,0x00,0x2d,0xc6,0xc0])));};audioSample=function(track){return box(types.mp4a,new Uint8Array([0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,(track.channelcount&0xff00)>>8,(track.channelcount&0xff),(track.samplesize&0xff00)>>8,(track.samplesize&0xff),0x00,0x00,0x00,0x00,(track.samplerate&0xff00)>>8,(track.samplerate&0xff),0x00,0x00]),esds(track));};}());tkhd=function(track){var result=new Uint8Array([0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,(track.id&0xFF000000)>>24,(track.id&0xFF0000)>>16,(track.id&0xFF00)>>8,track.id&0xFF,0x00,0x00,0x00,0x00,(track.duration&0xFF000000)>>24,(track.duration&0xFF0000)>>16,(track.duration&0xFF00)>>8,track.duration&0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,(track.width&0xFF00)>>8,track.width&0xFF,0x00,0x00,(track.height&0xFF00)>>8,track.height&0xFF,0x00,0x00]);return box(types.tkhd,result);};traf=function(track){var trackFragmentHeader,trackFragmentDecodeTime,trackFragmentRun,sampleDependencyTable,dataOffset,upperWordBaseMediaDecodeTime,lowerWordBaseMediaDecodeTime;trackFragmentHeader=box(types.tfhd,new Uint8Array([0x00,0x00,0x00,0x3a,(track.id&0xFF000000)>>24,(track.id&0xFF0000)>>16,(track.id&0xFF00)>>8,(track.id&0xFF),0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]));upperWordBaseMediaDecodeTime=Math.floor(track.baseMediaDecodeTime/(UINT32_MAX+1));lowerWordBaseMediaDecodeTime=Math.floor(track.baseMediaDecodeTime%(UINT32_MAX+1));trackFragmentDecodeTime=box(types.tfdt,new Uint8Array([0x01,0x00,0x00,0x00,(upperWordBaseMediaDecodeTime>>>24)&0xFF,(upperWordBaseMediaDecodeTime>>>16)&0xFF,(upperWordBaseMediaDecodeTime>>>8)&0xFF,upperWordBaseMediaDecodeTime&0xFF,(lowerWordBaseMediaDecodeTime>>>24)&0xFF,(lowerWordBaseMediaDecodeTime>>>16)&0xFF,(lowerWordBaseMediaDecodeTime>>>8)&0xFF,lowerWordBaseMediaDecodeTime&0xFF]));dataOffset=(32+
20+
8+
16+
8+
8);if(track.type==='audio'){trackFragmentRun=trun(track,dataOffset);return box(types.traf,trackFragmentHeader,trackFragmentDecodeTime,trackFragmentRun);}
sampleDependencyTable=sdtp(track);trackFragmentRun=trun(track,sampleDependencyTable.length+dataOffset);return box(types.traf,trackFragmentHeader,trackFragmentDecodeTime,trackFragmentRun,sampleDependencyTable);};trak=function(track){track.duration=track.duration||0xffffffff;return box(types.trak,tkhd(track),mdia(track));};trex=function(track){var result=new Uint8Array([0x00,0x00,0x00,0x00,(track.id&0xFF000000)>>24,(track.id&0xFF0000)>>16,(track.id&0xFF00)>>8,(track.id&0xFF),0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01]);if(track.type!=='video'){result[result.length-1]=0x00;}
return box(types.trex,result);};(function(){var audioTrun,videoTrun,trunHeader;trunHeader=function(samples,offset){var durationPresent=0,sizePresent=0,flagsPresent=0,compositionTimeOffset=0;if(samples.length){if(samples[0].duration!==undefined){durationPresent=0x1;}
if(samples[0].size!==undefined){sizePresent=0x2;}
if(samples[0].flags!==undefined){flagsPresent=0x4;}
if(samples[0].compositionTimeOffset!==undefined){compositionTimeOffset=0x8;}}
return[0x00,0x00,durationPresent|sizePresent|flagsPresent|compositionTimeOffset,0x01,(samples.length&0xFF000000)>>>24,(samples.length&0xFF0000)>>>16,(samples.length&0xFF00)>>>8,samples.length&0xFF,(offset&0xFF000000)>>>24,(offset&0xFF0000)>>>16,(offset&0xFF00)>>>8,offset&0xFF];};videoTrun=function(track,offset){var bytes,samples,sample,i;samples=track.samples||[];offset+=8+12+(16*samples.length);bytes=trunHeader(samples,offset);for(i=0;i<samples.length;i++){sample=samples[i];bytes=bytes.concat([(sample.duration&0xFF000000)>>>24,(sample.duration&0xFF0000)>>>16,(sample.duration&0xFF00)>>>8,sample.duration&0xFF,(sample.size&0xFF000000)>>>24,(sample.size&0xFF0000)>>>16,(sample.size&0xFF00)>>>8,sample.size&0xFF,(sample.flags.isLeading<<2)|sample.flags.dependsOn,(sample.flags.isDependedOn<<6)|(sample.flags.hasRedundancy<<4)|(sample.flags.paddingValue<<1)|sample.flags.isNonSyncSample,sample.flags.degradationPriority&0xF0<<8,sample.flags.degradationPriority&0x0F,(sample.compositionTimeOffset&0xFF000000)>>>24,(sample.compositionTimeOffset&0xFF0000)>>>16,(sample.compositionTimeOffset&0xFF00)>>>8,sample.compositionTimeOffset&0xFF]);}
return box(types.trun,new Uint8Array(bytes));};audioTrun=function(track,offset){var bytes,samples,sample,i;samples=track.samples||[];offset+=8+12+(8*samples.length);bytes=trunHeader(samples,offset);for(i=0;i<samples.length;i++){sample=samples[i];bytes=bytes.concat([(sample.duration&0xFF000000)>>>24,(sample.duration&0xFF0000)>>>16,(sample.duration&0xFF00)>>>8,sample.duration&0xFF,(sample.size&0xFF000000)>>>24,(sample.size&0xFF0000)>>>16,(sample.size&0xFF00)>>>8,sample.size&0xFF]);}
return box(types.trun,new Uint8Array(bytes));};trun=function(track,offset){if(track.type==='audio'){return audioTrun(track,offset);}
return videoTrun(track,offset);};}());module.exports={ftyp:ftyp,mdat:mdat,moof:moof,moov:moov,initSegment:function(tracks){var
fileType=ftyp(),movie=moov(tracks),result;result=new Uint8Array(fileType.byteLength+movie.byteLength);result.set(fileType);result.set(movie,fileType.byteLength);return result;}};},{}],55:[function(require,module,exports){'use strict';var findBox,parseType,timescale,startTime;findBox=function(data,path){var results=[],i,size,type,end,subresults;if(!path.length){return null;}
for(i=0;i<data.byteLength;){size=data[i]<<24;size|=data[i+1]<<16;size|=data[i+2]<<8;size|=data[i+3];type=parseType(data.subarray(i+4,i+8));end=size>1?i+size:data.byteLength;if(type===path[0]){if(path.length===1){results.push(data.subarray(i+8,end));}else{subresults=findBox(data.subarray(i+8,end),path.slice(1));if(subresults.length){results=results.concat(subresults);}}}
i=end;}
return results;};parseType=function(buffer){var result='';result+=String.fromCharCode(buffer[0]);result+=String.fromCharCode(buffer[1]);result+=String.fromCharCode(buffer[2]);result+=String.fromCharCode(buffer[3]);return result;};timescale=function(init){var
result={},traks=findBox(init,['moov','trak']);return traks.reduce(function(result,trak){var tkhd,version,index,id,mdhd;tkhd=findBox(trak,['tkhd'])[0];if(!tkhd){return null;}
version=tkhd[0];index=version===0?12:20;id=tkhd[index]<<24|tkhd[index+1]<<16|tkhd[index+2]<<8|tkhd[index+3];mdhd=findBox(trak,['mdia','mdhd'])[0];if(!mdhd){return null;}
version=mdhd[0];index=version===0?12:20;result[id]=mdhd[index]<<24|mdhd[index+1]<<16|mdhd[index+2]<<8|mdhd[index+3];return result;},result);};startTime=function(timescale,fragment){var trafs,baseTimes,result;trafs=findBox(fragment,['moof','traf']);baseTimes=[].concat.apply([],trafs.map(function(traf){return findBox(traf,['tfhd']).map(function(tfhd){var id,scale,baseTime;id=tfhd[4]<<24|tfhd[5]<<16|tfhd[6]<<8|tfhd[7];scale=timescale[id]||90e3;baseTime=findBox(traf,['tfdt']).map(function(tfdt){var version,result;version=tfdt[0];result=tfdt[4]<<24|tfdt[5]<<16|tfdt[6]<<8|tfdt[7];if(version===1){result*=Math.pow(2,32);result+=tfdt[8]<<24|tfdt[9]<<16|tfdt[10]<<8|tfdt[11];}
return result;})[0];baseTime=baseTime||Infinity;return baseTime/scale;});}));result=Math.min.apply(null,baseTimes);return isFinite(result)?result:0;};module.exports={parseType:parseType,timescale:timescale,startTime:startTime};},{}],56:[function(require,module,exports){'use strict';var Stream=require('../utils/stream.js');var mp4=require('./mp4-generator.js');var m2ts=require('../m2ts/m2ts.js');var AdtsStream=require('../codecs/adts.js');var H264Stream=require('../codecs/h264').H264Stream;var AacStream=require('../aac');var coneOfSilence=require('../data/silence');var clock=require('../utils/clock');var AUDIO_PROPERTIES=['audioobjecttype','channelcount','samplerate','samplingfrequencyindex','samplesize'];var VIDEO_PROPERTIES=['width','height','profileIdc','levelIdc','profileCompatibility'];var ONE_SECOND_IN_TS=90000;var VideoSegmentStream,AudioSegmentStream,Transmuxer,CoalesceStream;var
createDefaultSample,isLikelyAacData,collectDtsInfo,clearDtsInfo,calculateTrackBaseMediaDecodeTime,arrayEquals,sumFrameByteLengths;createDefaultSample=function(){return{size:0,flags:{isLeading:0,dependsOn:1,isDependedOn:0,hasRedundancy:0,degradationPriority:0}};};isLikelyAacData=function(data){if((data[0]==='I'.charCodeAt(0))&&(data[1]==='D'.charCodeAt(0))&&(data[2]==='3'.charCodeAt(0))){return true;}
return false;};arrayEquals=function(a,b){var
i;if(a.length!==b.length){return false;}
for(i=0;i<a.length;i++){if(a[i]!==b[i]){return false;}}
return true;};sumFrameByteLengths=function(array){var
i,currentObj,sum=0;for(i=0;i<array.length;i++){currentObj=array[i];sum+=currentObj.data.byteLength;}
return sum;};AudioSegmentStream=function(track){var
adtsFrames=[],sequenceNumber=0,earliestAllowedDts=0,audioAppendStartTs=0,videoBaseMediaDecodeTime=Infinity;AudioSegmentStream.prototype.init.call(this);this.push=function(data){collectDtsInfo(track,data);if(track){AUDIO_PROPERTIES.forEach(function(prop){track[prop]=data[prop];});}
adtsFrames.push(data);};this.setEarliestDts=function(earliestDts){earliestAllowedDts=earliestDts-track.timelineStartInfo.baseMediaDecodeTime;};this.setVideoBaseMediaDecodeTime=function(baseMediaDecodeTime){videoBaseMediaDecodeTime=baseMediaDecodeTime;};this.setAudioAppendStart=function(timestamp){audioAppendStartTs=timestamp;};this.flush=function(){var
frames,moof,mdat,boxes;if(adtsFrames.length===0){this.trigger('done','AudioSegmentStream');return;}
frames=this.trimAdtsFramesByEarliestDts_(adtsFrames);track.baseMediaDecodeTime=calculateTrackBaseMediaDecodeTime(track);this.prefixWithSilence_(track,frames);track.samples=this.generateSampleTable_(frames);mdat=mp4.mdat(this.concatenateFrameData_(frames));adtsFrames=[];moof=mp4.moof(sequenceNumber,[track]);boxes=new Uint8Array(moof.byteLength+mdat.byteLength);sequenceNumber++;boxes.set(moof);boxes.set(mdat,moof.byteLength);clearDtsInfo(track);this.trigger('data',{track:track,boxes:boxes});this.trigger('done','AudioSegmentStream');};this.prefixWithSilence_=function(track,frames){var
baseMediaDecodeTimeTs,frameDuration=0,audioGapDuration=0,audioFillFrameCount=0,audioFillDuration=0,silentFrame,i;if(!frames.length){return;}
baseMediaDecodeTimeTs=clock.audioTsToVideoTs(track.baseMediaDecodeTime,track.samplerate);frameDuration=Math.ceil(ONE_SECOND_IN_TS/(track.samplerate/1024));if(audioAppendStartTs&&videoBaseMediaDecodeTime){audioGapDuration=baseMediaDecodeTimeTs-Math.max(audioAppendStartTs,videoBaseMediaDecodeTime);audioFillFrameCount=Math.floor(audioGapDuration/frameDuration);audioFillDuration=audioFillFrameCount*frameDuration;}
if(audioFillFrameCount<1||audioFillDuration>ONE_SECOND_IN_TS/2){return;}
silentFrame=coneOfSilence[track.samplerate];if(!silentFrame){silentFrame=frames[0].data;}
for(i=0;i<audioFillFrameCount;i++){frames.splice(i,0,{data:silentFrame});}
track.baseMediaDecodeTime-=Math.floor(clock.videoTsToAudioTs(audioFillDuration,track.samplerate));};this.trimAdtsFramesByEarliestDts_=function(adtsFrames){if(track.minSegmentDts>=earliestAllowedDts){return adtsFrames;}
track.minSegmentDts=Infinity;return adtsFrames.filter(function(currentFrame){if(currentFrame.dts>=earliestAllowedDts){track.minSegmentDts=Math.min(track.minSegmentDts,currentFrame.dts);track.minSegmentPts=track.minSegmentDts;return true;}
return false;});};this.generateSampleTable_=function(frames){var
i,currentFrame,samples=[];for(i=0;i<frames.length;i++){currentFrame=frames[i];samples.push({size:currentFrame.data.byteLength,duration:1024});}
return samples;};this.concatenateFrameData_=function(frames){var
i,currentFrame,dataOffset=0,data=new Uint8Array(sumFrameByteLengths(frames));for(i=0;i<frames.length;i++){currentFrame=frames[i];data.set(currentFrame.data,dataOffset);dataOffset+=currentFrame.data.byteLength;}
return data;};};AudioSegmentStream.prototype=new Stream();VideoSegmentStream=function(track){var
sequenceNumber=0,nalUnits=[],config,pps;VideoSegmentStream.prototype.init.call(this);delete track.minPTS;this.gopCache_=[];this.push=function(nalUnit){collectDtsInfo(track,nalUnit);if(nalUnit.nalUnitType==='seq_parameter_set_rbsp'&&!config){config=nalUnit.config;track.sps=[nalUnit.data];VIDEO_PROPERTIES.forEach(function(prop){track[prop]=config[prop];},this);}
if(nalUnit.nalUnitType==='pic_parameter_set_rbsp'&&!pps){pps=nalUnit.data;track.pps=[nalUnit.data];}
nalUnits.push(nalUnit);};this.flush=function(){var
frames,gopForFusion,gops,moof,mdat,boxes;while(nalUnits.length){if(nalUnits[0].nalUnitType==='access_unit_delimiter_rbsp'){break;}
nalUnits.shift();}
if(nalUnits.length===0){this.resetStream_();this.trigger('done','VideoSegmentStream');return;}
frames=this.groupNalsIntoFrames_(nalUnits);gops=this.groupFramesIntoGops_(frames);if(!gops[0][0].keyFrame){gopForFusion=this.getGopForFusion_(nalUnits[0],track);if(gopForFusion){gops.unshift(gopForFusion);gops.byteLength+=gopForFusion.byteLength;gops.nalCount+=gopForFusion.nalCount;gops.pts=gopForFusion.pts;gops.dts=gopForFusion.dts;gops.duration+=gopForFusion.duration;}else{gops=this.extendFirstKeyFrame_(gops);}}
collectDtsInfo(track,gops);track.samples=this.generateSampleTable_(gops);mdat=mp4.mdat(this.concatenateNalData_(gops));this.gopCache_.unshift({gop:gops.pop(),pps:track.pps,sps:track.sps});this.gopCache_.length=Math.min(6,this.gopCache_.length);nalUnits=[];track.baseMediaDecodeTime=calculateTrackBaseMediaDecodeTime(track);this.trigger('baseMediaDecodeTime',track.baseMediaDecodeTime);this.trigger('timelineStartInfo',track.timelineStartInfo);moof=mp4.moof(sequenceNumber,[track]);boxes=new Uint8Array(moof.byteLength+mdat.byteLength);sequenceNumber++;boxes.set(moof);boxes.set(mdat,moof.byteLength);this.trigger('data',{track:track,boxes:boxes});this.resetStream_();this.trigger('done','VideoSegmentStream');};this.resetStream_=function(){clearDtsInfo(track);config=undefined;pps=undefined;};this.getGopForFusion_=function(nalUnit){var
halfSecond=45000,allowableOverlap=10000,nearestDistance=Infinity,dtsDistance,nearestGopObj,currentGop,currentGopObj,i;for(i=0;i<this.gopCache_.length;i++){currentGopObj=this.gopCache_[i];currentGop=currentGopObj.gop;if(!(track.pps&&arrayEquals(track.pps[0],currentGopObj.pps[0]))||!(track.sps&&arrayEquals(track.sps[0],currentGopObj.sps[0]))){continue;}
if(currentGop.dts<track.timelineStartInfo.dts){continue;}
dtsDistance=(nalUnit.dts-currentGop.dts)-currentGop.duration;if(dtsDistance>=-allowableOverlap&&dtsDistance<=halfSecond){if(!nearestGopObj||nearestDistance>dtsDistance){nearestGopObj=currentGopObj;nearestDistance=dtsDistance;}}}
if(nearestGopObj){return nearestGopObj.gop;}
return null;};this.extendFirstKeyFrame_=function(gops){var currentGop;if(!gops[0][0].keyFrame&&gops.length>1){currentGop=gops.shift();gops.byteLength-=currentGop.byteLength;gops.nalCount-=currentGop.nalCount;gops[0][0].dts=currentGop.dts;gops[0][0].pts=currentGop.pts;gops[0][0].duration+=currentGop.duration;}
return gops;};this.groupNalsIntoFrames_=function(nalUnits){var
i,currentNal,currentFrame=[],frames=[];currentFrame.byteLength=0;for(i=0;i<nalUnits.length;i++){currentNal=nalUnits[i];if(currentNal.nalUnitType==='access_unit_delimiter_rbsp'){if(currentFrame.length){currentFrame.duration=currentNal.dts-currentFrame.dts;frames.push(currentFrame);}
currentFrame=[currentNal];currentFrame.byteLength=currentNal.data.byteLength;currentFrame.pts=currentNal.pts;currentFrame.dts=currentNal.dts;}else{if(currentNal.nalUnitType==='slice_layer_without_partitioning_rbsp_idr'){currentFrame.keyFrame=true;}
currentFrame.duration=currentNal.dts-currentFrame.dts;currentFrame.byteLength+=currentNal.data.byteLength;currentFrame.push(currentNal);}}
if(frames.length&&(!currentFrame.duration||currentFrame.duration<=0)){currentFrame.duration=frames[frames.length-1].duration;}
frames.push(currentFrame);return frames;};this.groupFramesIntoGops_=function(frames){var
i,currentFrame,currentGop=[],gops=[];currentGop.byteLength=0;currentGop.nalCount=0;currentGop.duration=0;currentGop.pts=frames[0].pts;currentGop.dts=frames[0].dts;gops.byteLength=0;gops.nalCount=0;gops.duration=0;gops.pts=frames[0].pts;gops.dts=frames[0].dts;for(i=0;i<frames.length;i++){currentFrame=frames[i];if(currentFrame.keyFrame){if(currentGop.length){gops.push(currentGop);gops.byteLength+=currentGop.byteLength;gops.nalCount+=currentGop.nalCount;gops.duration+=currentGop.duration;}
currentGop=[currentFrame];currentGop.nalCount=currentFrame.length;currentGop.byteLength=currentFrame.byteLength;currentGop.pts=currentFrame.pts;currentGop.dts=currentFrame.dts;currentGop.duration=currentFrame.duration;}else{currentGop.duration+=currentFrame.duration;currentGop.nalCount+=currentFrame.length;currentGop.byteLength+=currentFrame.byteLength;currentGop.push(currentFrame);}}
if(gops.length&&currentGop.duration<=0){currentGop.duration=gops[gops.length-1].duration;}
gops.byteLength+=currentGop.byteLength;gops.nalCount+=currentGop.nalCount;gops.duration+=currentGop.duration;gops.push(currentGop);return gops;};this.generateSampleTable_=function(gops,baseDataOffset){var
h,i,sample,currentGop,currentFrame,dataOffset=baseDataOffset||0,samples=[];for(h=0;h<gops.length;h++){currentGop=gops[h];for(i=0;i<currentGop.length;i++){currentFrame=currentGop[i];sample=createDefaultSample();sample.dataOffset=dataOffset;sample.compositionTimeOffset=currentFrame.pts-currentFrame.dts;sample.duration=currentFrame.duration;sample.size=4*currentFrame.length;sample.size+=currentFrame.byteLength;if(currentFrame.keyFrame){sample.flags.dependsOn=2;}
dataOffset+=sample.size;samples.push(sample);}}
return samples;};this.concatenateNalData_=function(gops){var
h,i,j,currentGop,currentFrame,currentNal,dataOffset=0,nalsByteLength=gops.byteLength,numberOfNals=gops.nalCount,totalByteLength=nalsByteLength+4*numberOfNals,data=new Uint8Array(totalByteLength),view=new DataView(data.buffer);for(h=0;h<gops.length;h++){currentGop=gops[h];for(i=0;i<currentGop.length;i++){currentFrame=currentGop[i];for(j=0;j<currentFrame.length;j++){currentNal=currentFrame[j];view.setUint32(dataOffset,currentNal.data.byteLength);dataOffset+=4;data.set(currentNal.data,dataOffset);dataOffset+=currentNal.data.byteLength;}}}
return data;};};VideoSegmentStream.prototype=new Stream();collectDtsInfo=function(track,data){if(typeof data.pts==='number'){if(track.timelineStartInfo.pts===undefined){track.timelineStartInfo.pts=data.pts;}
if(track.minSegmentPts===undefined){track.minSegmentPts=data.pts;}else{track.minSegmentPts=Math.min(track.minSegmentPts,data.pts);}
if(track.maxSegmentPts===undefined){track.maxSegmentPts=data.pts;}else{track.maxSegmentPts=Math.max(track.maxSegmentPts,data.pts);}}
if(typeof data.dts==='number'){if(track.timelineStartInfo.dts===undefined){track.timelineStartInfo.dts=data.dts;}
if(track.minSegmentDts===undefined){track.minSegmentDts=data.dts;}else{track.minSegmentDts=Math.min(track.minSegmentDts,data.dts);}
if(track.maxSegmentDts===undefined){track.maxSegmentDts=data.dts;}else{track.maxSegmentDts=Math.max(track.maxSegmentDts,data.dts);}}};clearDtsInfo=function(track){delete track.minSegmentDts;delete track.maxSegmentDts;delete track.minSegmentPts;delete track.maxSegmentPts;};calculateTrackBaseMediaDecodeTime=function(track){var
baseMediaDecodeTime,scale,timeSinceStartOfTimeline=track.minSegmentDts-track.timelineStartInfo.dts;baseMediaDecodeTime=track.timelineStartInfo.baseMediaDecodeTime;baseMediaDecodeTime+=timeSinceStartOfTimeline;baseMediaDecodeTime=Math.max(0,baseMediaDecodeTime);if(track.type==='audio'){scale=track.samplerate/ONE_SECOND_IN_TS;baseMediaDecodeTime*=scale;baseMediaDecodeTime=Math.floor(baseMediaDecodeTime);}
return baseMediaDecodeTime;};CoalesceStream=function(options,metadataStream){this.numberOfTracks=0;this.metadataStream=metadataStream;if(typeof options.remux!=='undefined'){this.remuxTracks=!!options.remux;}else{this.remuxTracks=true;}
this.pendingTracks=[];this.videoTrack=null;this.pendingBoxes=[];this.pendingCaptions=[];this.pendingMetadata=[];this.pendingBytes=0;this.emittedTracks=0;CoalesceStream.prototype.init.call(this);this.push=function(output){if(output.text){return this.pendingCaptions.push(output);}
if(output.frames){return this.pendingMetadata.push(output);}
this.pendingTracks.push(output.track);this.pendingBoxes.push(output.boxes);this.pendingBytes+=output.boxes.byteLength;if(output.track.type==='video'){this.videoTrack=output.track;}
if(output.track.type==='audio'){this.audioTrack=output.track;}};};CoalesceStream.prototype=new Stream();CoalesceStream.prototype.flush=function(flushSource){var
offset=0,event={captions:[],metadata:[],info:{}},caption,id3,initSegment,timelineStartPts=0,i;if(this.pendingTracks.length<this.numberOfTracks){if(flushSource!=='VideoSegmentStream'&&flushSource!=='AudioSegmentStream'){return;}else if(this.remuxTracks){return;}else if(this.pendingTracks.length===0){this.emittedTracks++;if(this.emittedTracks>=this.numberOfTracks){this.trigger('done');this.emittedTracks=0;}
return;}}
if(this.videoTrack){timelineStartPts=this.videoTrack.timelineStartInfo.pts;VIDEO_PROPERTIES.forEach(function(prop){event.info[prop]=this.videoTrack[prop];},this);}else if(this.audioTrack){timelineStartPts=this.audioTrack.timelineStartInfo.pts;AUDIO_PROPERTIES.forEach(function(prop){event.info[prop]=this.audioTrack[prop];},this);}
if(this.pendingTracks.length===1){event.type=this.pendingTracks[0].type;}else{event.type='combined';}
this.emittedTracks+=this.pendingTracks.length;initSegment=mp4.initSegment(this.pendingTracks);event.initSegment=new Uint8Array(initSegment.byteLength);event.initSegment.set(initSegment);event.data=new Uint8Array(this.pendingBytes);for(i=0;i<this.pendingBoxes.length;i++){event.data.set(this.pendingBoxes[i],offset);offset+=this.pendingBoxes[i].byteLength;}
for(i=0;i<this.pendingCaptions.length;i++){caption=this.pendingCaptions[i];caption.startTime=(caption.startPts-timelineStartPts);caption.startTime/=90e3;caption.endTime=(caption.endPts-timelineStartPts);caption.endTime/=90e3;event.captions.push(caption);}
for(i=0;i<this.pendingMetadata.length;i++){id3=this.pendingMetadata[i];id3.cueTime=(id3.pts-timelineStartPts);id3.cueTime/=90e3;event.metadata.push(id3);}
event.metadata.dispatchType=this.metadataStream.dispatchType;this.pendingTracks.length=0;this.videoTrack=null;this.pendingBoxes.length=0;this.pendingCaptions.length=0;this.pendingBytes=0;this.pendingMetadata.length=0;this.trigger('data',event);if(this.emittedTracks>=this.numberOfTracks){this.trigger('done');this.emittedTracks=0;}};Transmuxer=function(options){var
self=this,hasFlushed=true,videoTrack,audioTrack;Transmuxer.prototype.init.call(this);options=options||{};this.baseMediaDecodeTime=options.baseMediaDecodeTime||0;this.transmuxPipeline_={};this.setupAacPipeline=function(){var pipeline={};this.transmuxPipeline_=pipeline;pipeline.type='aac';pipeline.metadataStream=new m2ts.MetadataStream();pipeline.aacStream=new AacStream();pipeline.audioTimestampRolloverStream=new m2ts.TimestampRolloverStream('audio');pipeline.timedMetadataTimestampRolloverStream=new m2ts.TimestampRolloverStream('timed-metadata');pipeline.adtsStream=new AdtsStream();pipeline.coalesceStream=new CoalesceStream(options,pipeline.metadataStream);pipeline.headOfPipeline=pipeline.aacStream;pipeline.aacStream.pipe(pipeline.audioTimestampRolloverStream).pipe(pipeline.adtsStream);pipeline.aacStream.pipe(pipeline.timedMetadataTimestampRolloverStream).pipe(pipeline.metadataStream).pipe(pipeline.coalesceStream);pipeline.metadataStream.on('timestamp',function(frame){pipeline.aacStream.setTimestamp(frame.timeStamp);});pipeline.aacStream.on('data',function(data){if(data.type==='timed-metadata'&&!pipeline.audioSegmentStream){audioTrack=audioTrack||{timelineStartInfo:{baseMediaDecodeTime:self.baseMediaDecodeTime},codec:'adts',type:'audio'};pipeline.coalesceStream.numberOfTracks++;pipeline.audioSegmentStream=new AudioSegmentStream(audioTrack);pipeline.adtsStream.pipe(pipeline.audioSegmentStream).pipe(pipeline.coalesceStream);}});pipeline.coalesceStream.on('data',this.trigger.bind(this,'data'));pipeline.coalesceStream.on('done',this.trigger.bind(this,'done'));};this.setupTsPipeline=function(){var pipeline={};this.transmuxPipeline_=pipeline;pipeline.type='ts';pipeline.metadataStream=new m2ts.MetadataStream();pipeline.packetStream=new m2ts.TransportPacketStream();pipeline.parseStream=new m2ts.TransportParseStream();pipeline.elementaryStream=new m2ts.ElementaryStream();pipeline.videoTimestampRolloverStream=new m2ts.TimestampRolloverStream('video');pipeline.audioTimestampRolloverStream=new m2ts.TimestampRolloverStream('audio');pipeline.timedMetadataTimestampRolloverStream=new m2ts.TimestampRolloverStream('timed-metadata');pipeline.adtsStream=new AdtsStream();pipeline.h264Stream=new H264Stream();pipeline.captionStream=new m2ts.CaptionStream();pipeline.coalesceStream=new CoalesceStream(options,pipeline.metadataStream);pipeline.headOfPipeline=pipeline.packetStream;pipeline.packetStream.pipe(pipeline.parseStream).pipe(pipeline.elementaryStream);pipeline.elementaryStream.pipe(pipeline.videoTimestampRolloverStream).pipe(pipeline.h264Stream);pipeline.elementaryStream.pipe(pipeline.audioTimestampRolloverStream).pipe(pipeline.adtsStream);pipeline.elementaryStream.pipe(pipeline.timedMetadataTimestampRolloverStream).pipe(pipeline.metadataStream).pipe(pipeline.coalesceStream);pipeline.h264Stream.pipe(pipeline.captionStream).pipe(pipeline.coalesceStream);pipeline.elementaryStream.on('data',function(data){var i;if(data.type==='metadata'){i=data.tracks.length;while(i--){if(!videoTrack&&data.tracks[i].type==='video'){videoTrack=data.tracks[i];videoTrack.timelineStartInfo.baseMediaDecodeTime=self.baseMediaDecodeTime;}else if(!audioTrack&&data.tracks[i].type==='audio'){audioTrack=data.tracks[i];audioTrack.timelineStartInfo.baseMediaDecodeTime=self.baseMediaDecodeTime;}}
if(videoTrack&&!pipeline.videoSegmentStream){pipeline.coalesceStream.numberOfTracks++;pipeline.videoSegmentStream=new VideoSegmentStream(videoTrack);pipeline.videoSegmentStream.on('timelineStartInfo',function(timelineStartInfo){if(audioTrack){audioTrack.timelineStartInfo=timelineStartInfo;pipeline.audioSegmentStream.setEarliestDts(timelineStartInfo.dts);}});pipeline.videoSegmentStream.on('baseMediaDecodeTime',function(baseMediaDecodeTime){if(audioTrack){pipeline.audioSegmentStream.setVideoBaseMediaDecodeTime(baseMediaDecodeTime);}});pipeline.h264Stream.pipe(pipeline.videoSegmentStream).pipe(pipeline.coalesceStream);}
if(audioTrack&&!pipeline.audioSegmentStream){pipeline.coalesceStream.numberOfTracks++;pipeline.audioSegmentStream=new AudioSegmentStream(audioTrack);pipeline.adtsStream.pipe(pipeline.audioSegmentStream).pipe(pipeline.coalesceStream);}}});pipeline.coalesceStream.on('data',this.trigger.bind(this,'data'));pipeline.coalesceStream.on('done',this.trigger.bind(this,'done'));};this.setBaseMediaDecodeTime=function(baseMediaDecodeTime){var pipeline=this.transmuxPipeline_;this.baseMediaDecodeTime=baseMediaDecodeTime;if(audioTrack){audioTrack.timelineStartInfo.dts=undefined;audioTrack.timelineStartInfo.pts=undefined;clearDtsInfo(audioTrack);audioTrack.timelineStartInfo.baseMediaDecodeTime=baseMediaDecodeTime;if(pipeline.audioTimestampRolloverStream){pipeline.audioTimestampRolloverStream.discontinuity();}}
if(videoTrack){if(pipeline.videoSegmentStream){pipeline.videoSegmentStream.gopCache_=[];pipeline.videoTimestampRolloverStream.discontinuity();}
videoTrack.timelineStartInfo.dts=undefined;videoTrack.timelineStartInfo.pts=undefined;clearDtsInfo(videoTrack);videoTrack.timelineStartInfo.baseMediaDecodeTime=baseMediaDecodeTime;}
if(pipeline.timedMetadataTimestampRolloverStream){pipeline.timedMetadataTimestampRolloverStream.discontinuity();}};this.setAudioAppendStart=function(timestamp){if(audioTrack){this.transmuxPipeline_.audioSegmentStream.setAudioAppendStart(timestamp);}};this.push=function(data){if(hasFlushed){var isAac=isLikelyAacData(data);if(isAac&&this.transmuxPipeline_.type!=='aac'){this.setupAacPipeline();}else if(!isAac&&this.transmuxPipeline_.type!=='ts'){this.setupTsPipeline();}
hasFlushed=false;}
this.transmuxPipeline_.headOfPipeline.push(data);};this.flush=function(){hasFlushed=true;this.transmuxPipeline_.headOfPipeline.flush();};};Transmuxer.prototype=new Stream();module.exports={Transmuxer:Transmuxer,VideoSegmentStream:VideoSegmentStream,AudioSegmentStream:AudioSegmentStream,AUDIO_PROPERTIES:AUDIO_PROPERTIES,VIDEO_PROPERTIES:VIDEO_PROPERTIES};},{"../aac":36,"../codecs/adts.js":38,"../codecs/h264":39,"../data/silence":40,"../m2ts/m2ts.js":48,"../utils/clock":58,"../utils/stream.js":60,"./mp4-generator.js":54}],57:[function(require,module,exports){'use strict';var StreamTypes=require('../m2ts/stream-types.js');var handleRollover=require('../m2ts/timestamp-rollover-stream.js').handleRollover;var probe={};probe.ts=require('../m2ts/probe.js');probe.aac=require('../aac/probe.js');var
PES_TIMESCALE=90000,MP2T_PACKET_LENGTH=188,SYNC_BYTE=0x47;var isLikelyAacData=function(data){if((data[0]==='I'.charCodeAt(0))&&(data[1]==='D'.charCodeAt(0))&&(data[2]==='3'.charCodeAt(0))){return true;}
return false;};var parsePsi_=function(bytes,pmt){var
startIndex=0,endIndex=MP2T_PACKET_LENGTH,packet,type;while(endIndex<bytes.byteLength){if(bytes[startIndex]===SYNC_BYTE&&bytes[endIndex]===SYNC_BYTE){packet=bytes.subarray(startIndex,endIndex);type=probe.ts.parseType(packet,pmt.pid);switch(type){case'pat':if(!pmt.pid){pmt.pid=probe.ts.parsePat(packet);}
break;case'pmt':if(!pmt.table){pmt.table=probe.ts.parsePmt(packet);}
break;default:break;}
if(pmt.pid&&pmt.table){return;}
startIndex+=MP2T_PACKET_LENGTH;endIndex+=MP2T_PACKET_LENGTH;continue;}
startIndex++;endIndex++;}};var parseAudioPes_=function(bytes,pmt,result){var
startIndex=0,endIndex=MP2T_PACKET_LENGTH,packet,type,pesType,pusi,parsed;var endLoop=false;while(endIndex<bytes.byteLength){if(bytes[startIndex]===SYNC_BYTE&&bytes[endIndex]===SYNC_BYTE){packet=bytes.subarray(startIndex,endIndex);type=probe.ts.parseType(packet,pmt.pid);switch(type){case'pes':pesType=probe.ts.parsePesType(packet,pmt.table);pusi=probe.ts.parsePayloadUnitStartIndicator(packet);if(pesType==='audio'&&pusi){parsed=probe.ts.parsePesTime(packet);parsed.type='audio';result.audio.push(parsed);endLoop=true;}
break;default:break;}
if(endLoop){break;}
startIndex+=MP2T_PACKET_LENGTH;endIndex+=MP2T_PACKET_LENGTH;continue;}
startIndex++;endIndex++;}
endIndex=bytes.byteLength;startIndex=endIndex-MP2T_PACKET_LENGTH;endLoop=false;while(startIndex>=0){if(bytes[startIndex]===SYNC_BYTE&&bytes[endIndex]===SYNC_BYTE){packet=bytes.subarray(startIndex,endIndex);type=probe.ts.parseType(packet,pmt.pid);switch(type){case'pes':pesType=probe.ts.parsePesType(packet,pmt.table);pusi=probe.ts.parsePayloadUnitStartIndicator(packet);if(pesType==='audio'&&pusi){parsed=probe.ts.parsePesTime(packet);parsed.type='audio';result.audio.push(parsed);endLoop=true;}
break;default:break;}
if(endLoop){break;}
startIndex-=MP2T_PACKET_LENGTH;endIndex-=MP2T_PACKET_LENGTH;continue;}
startIndex--;endIndex--;}};var parseVideoPes_=function(bytes,pmt,result){var
startIndex=0,endIndex=MP2T_PACKET_LENGTH,packet,type,pesType,pusi,parsed,frame,i,pes;var endLoop=false;var currentFrame={data:[],size:0};while(endIndex<bytes.byteLength){if(bytes[startIndex]===SYNC_BYTE&&bytes[endIndex]===SYNC_BYTE){packet=bytes.subarray(startIndex,endIndex);type=probe.ts.parseType(packet,pmt.pid);switch(type){case'pes':pesType=probe.ts.parsePesType(packet,pmt.table);pusi=probe.ts.parsePayloadUnitStartIndicator(packet);if(pesType==='video'){if(pusi&&!endLoop){parsed=probe.ts.parsePesTime(packet);parsed.type='video';result.video.push(parsed);endLoop=true;}
if(!result.firstKeyFrame){if(pusi){if(currentFrame.size!==0){frame=new Uint8Array(currentFrame.size);i=0;while(currentFrame.data.length){pes=currentFrame.data.shift();frame.set(pes,i);i+=pes.byteLength;}
if(probe.ts.videoPacketContainsKeyFrame(frame)){result.firstKeyFrame=probe.ts.parsePesTime(frame);result.firstKeyFrame.type='video';}
currentFrame.size=0;}}
currentFrame.data.push(packet);currentFrame.size+=packet.byteLength;}}
break;default:break;}
if(endLoop&&result.firstKeyFrame){break;}
startIndex+=MP2T_PACKET_LENGTH;endIndex+=MP2T_PACKET_LENGTH;continue;}
startIndex++;endIndex++;}
endIndex=bytes.byteLength;startIndex=endIndex-MP2T_PACKET_LENGTH;endLoop=false;while(startIndex>=0){if(bytes[startIndex]===SYNC_BYTE&&bytes[endIndex]===SYNC_BYTE){packet=bytes.subarray(startIndex,endIndex);type=probe.ts.parseType(packet,pmt.pid);switch(type){case'pes':pesType=probe.ts.parsePesType(packet,pmt.table);pusi=probe.ts.parsePayloadUnitStartIndicator(packet);if(pesType==='video'&&pusi){parsed=probe.ts.parsePesTime(packet);parsed.type='video';result.video.push(parsed);endLoop=true;}
break;default:break;}
if(endLoop){break;}
startIndex-=MP2T_PACKET_LENGTH;endIndex-=MP2T_PACKET_LENGTH;continue;}
startIndex--;endIndex--;}};var adjustTimestamp_=function(segmentInfo,baseTimestamp){if(segmentInfo.audio&&segmentInfo.audio.length){var audioBaseTimestamp=baseTimestamp;if(typeof audioBaseTimestamp==='undefined'){audioBaseTimestamp=segmentInfo.audio[0].dts;}
segmentInfo.audio.forEach(function(info){info.dts=handleRollover(info.dts,audioBaseTimestamp);info.pts=handleRollover(info.pts,audioBaseTimestamp);info.dtsTime=info.dts/PES_TIMESCALE;info.ptsTime=info.pts/PES_TIMESCALE;});}
if(segmentInfo.video&&segmentInfo.video.length){var videoBaseTimestamp=baseTimestamp;if(typeof videoBaseTimestamp==='undefined'){videoBaseTimestamp=segmentInfo.video[0].dts;}
segmentInfo.video.forEach(function(info){info.dts=handleRollover(info.dts,videoBaseTimestamp);info.pts=handleRollover(info.pts,videoBaseTimestamp);info.dtsTime=info.dts/PES_TIMESCALE;info.ptsTime=info.pts/PES_TIMESCALE;});if(segmentInfo.firstKeyFrame){var frame=segmentInfo.firstKeyFrame;frame.dts=handleRollover(frame.dts,videoBaseTimestamp);frame.pts=handleRollover(frame.pts,videoBaseTimestamp);frame.dtsTime=frame.dts/PES_TIMESCALE;frame.ptsTime=frame.dts/PES_TIMESCALE;}}};var inspectAac_=function(bytes){var
endLoop=false,audioCount=0,sampleRate=null,timestamp=null,frameSize=0,byteIndex=0,packet;while(bytes.length-byteIndex>=3){var type=probe.aac.parseType(bytes,byteIndex);switch(type){case'timed-metadata':if(bytes.length-byteIndex<10){endLoop=true;break;}
frameSize=probe.aac.parseId3TagSize(bytes,byteIndex);if(frameSize>bytes.length){endLoop=true;break;}
if(timestamp===null){packet=bytes.subarray(byteIndex,byteIndex+frameSize);timestamp=probe.aac.parseAacTimestamp(packet);}
byteIndex+=frameSize;break;case'audio':if(bytes.length-byteIndex<7){endLoop=true;break;}
frameSize=probe.aac.parseAdtsSize(bytes,byteIndex);if(frameSize>bytes.length){endLoop=true;break;}
if(sampleRate===null){packet=bytes.subarray(byteIndex,byteIndex+frameSize);sampleRate=probe.aac.parseSampleRate(packet);}
audioCount++;byteIndex+=frameSize;break;default:byteIndex++;break;}
if(endLoop){return null;}}
if(sampleRate===null||timestamp===null){return null;}
var audioTimescale=PES_TIMESCALE/sampleRate;var result={audio:[{type:'audio',dts:timestamp,pts:timestamp},{type:'audio',dts:timestamp+(audioCount*1024*audioTimescale),pts:timestamp+(audioCount*1024*audioTimescale)}]};return result;};var inspectTs_=function(bytes){var pmt={pid:null,table:null};var result={};parsePsi_(bytes,pmt);for(var pid in pmt.table){if(pmt.table.hasOwnProperty(pid)){var type=pmt.table[pid];switch(type){case StreamTypes.H264_STREAM_TYPE:result.video=[];parseVideoPes_(bytes,pmt,result);if(result.video.length===0){delete result.video;}
break;case StreamTypes.ADTS_STREAM_TYPE:result.audio=[];parseAudioPes_(bytes,pmt,result);if(result.audio.length===0){delete result.audio;}
break;default:break;}}}
return result;};var inspect=function(bytes,baseTimestamp){var isAacData=isLikelyAacData(bytes);var result;if(isAacData){result=inspectAac_(bytes);}else{result=inspectTs_(bytes);}
if(!result||(!result.audio&&!result.video)){return null;}
adjustTimestamp_(result,baseTimestamp);return result;};module.exports={inspect:inspect};},{"../aac/probe.js":37,"../m2ts/probe.js":50,"../m2ts/stream-types.js":51,"../m2ts/timestamp-rollover-stream.js":52}],58:[function(require,module,exports){var
ONE_SECOND_IN_TS=90000,secondsToVideoTs,secondsToAudioTs,videoTsToSeconds,audioTsToSeconds,audioTsToVideoTs,videoTsToAudioTs;secondsToVideoTs=function(seconds){return seconds*ONE_SECOND_IN_TS;};secondsToAudioTs=function(seconds,sampleRate){return seconds*sampleRate;};videoTsToSeconds=function(timestamp){return timestamp/ONE_SECOND_IN_TS;};audioTsToSeconds=function(timestamp,sampleRate){return timestamp/sampleRate;};audioTsToVideoTs=function(timestamp,sampleRate){return secondsToVideoTs(audioTsToSeconds(timestamp,sampleRate));};videoTsToAudioTs=function(timestamp,sampleRate){return secondsToAudioTs(videoTsToSeconds(timestamp),sampleRate);};module.exports={secondsToVideoTs:secondsToVideoTs,secondsToAudioTs:secondsToAudioTs,videoTsToSeconds:videoTsToSeconds,audioTsToSeconds:audioTsToSeconds,audioTsToVideoTs:audioTsToVideoTs,videoTsToAudioTs:videoTsToAudioTs};},{}],59:[function(require,module,exports){'use strict';var ExpGolomb;ExpGolomb=function(workingData){var
workingBytesAvailable=workingData.byteLength,workingWord=0,workingBitsAvailable=0;this.length=function(){return(8*workingBytesAvailable);};this.bitsAvailable=function(){return(8*workingBytesAvailable)+workingBitsAvailable;};this.loadWord=function(){var
position=workingData.byteLength-workingBytesAvailable,workingBytes=new Uint8Array(4),availableBytes=Math.min(4,workingBytesAvailable);if(availableBytes===0){throw new Error('no bytes available');}
workingBytes.set(workingData.subarray(position,position+availableBytes));workingWord=new DataView(workingBytes.buffer).getUint32(0);workingBitsAvailable=availableBytes*8;workingBytesAvailable-=availableBytes;};this.skipBits=function(count){var skipBytes;if(workingBitsAvailable>count){workingWord<<=count;workingBitsAvailable-=count;}else{count-=workingBitsAvailable;skipBytes=Math.floor(count/8);count-=(skipBytes*8);workingBytesAvailable-=skipBytes;this.loadWord();workingWord<<=count;workingBitsAvailable-=count;}};this.readBits=function(size){var
bits=Math.min(workingBitsAvailable,size),valu=workingWord>>>(32-bits);workingBitsAvailable-=bits;if(workingBitsAvailable>0){workingWord<<=bits;}else if(workingBytesAvailable>0){this.loadWord();}
bits=size-bits;if(bits>0){return valu<<bits|this.readBits(bits);}
return valu;};this.skipLeadingZeros=function(){var leadingZeroCount;for(leadingZeroCount=0;leadingZeroCount<workingBitsAvailable;++leadingZeroCount){if((workingWord&(0x80000000>>>leadingZeroCount))!==0){workingWord<<=leadingZeroCount;workingBitsAvailable-=leadingZeroCount;return leadingZeroCount;}}
this.loadWord();return leadingZeroCount+this.skipLeadingZeros();};this.skipUnsignedExpGolomb=function(){this.skipBits(1+this.skipLeadingZeros());};this.skipExpGolomb=function(){this.skipBits(1+this.skipLeadingZeros());};this.readUnsignedExpGolomb=function(){var clz=this.skipLeadingZeros();return this.readBits(clz+1)-1;};this.readExpGolomb=function(){var valu=this.readUnsignedExpGolomb();if(0x01&valu){return(1+valu)>>>1;}
return-1*(valu>>>1);};this.readBoolean=function(){return this.readBits(1)===1;};this.readUnsignedByte=function(){return this.readBits(8);};this.loadWord();};module.exports=ExpGolomb;},{}],60:[function(require,module,exports){'use strict';var Stream=function(){this.init=function(){var listeners={};this.on=function(type,listener){if(!listeners[type]){listeners[type]=[];}
listeners[type]=listeners[type].concat(listener);};this.off=function(type,listener){var index;if(!listeners[type]){return false;}
index=listeners[type].indexOf(listener);listeners[type]=listeners[type].slice();listeners[type].splice(index,1);return index>-1;};this.trigger=function(type){var callbacks,i,length,args;callbacks=listeners[type];if(!callbacks){return;}
if(arguments.length===2){length=callbacks.length;for(i=0;i<length;++i){callbacks[i].call(this,arguments[1]);}}else{args=[];i=arguments.length;for(i=1;i<arguments.length;++i){args.push(arguments[i]);}
length=callbacks.length;for(i=0;i<length;++i){callbacks[i].apply(this,args);}}};this.dispose=function(){listeners={};};};};Stream.prototype.pipe=function(destination){this.on('data',function(data){destination.push(data);});this.on('done',function(flushSource){destination.flush(flushSource);});return destination;};Stream.prototype.push=function(data){this.trigger('data',data);};Stream.prototype.flush=function(flushSource){this.trigger('done',flushSource);};module.exports=Stream;},{}],61:[function(require,module,exports){(function(root){var URLToolkit={buildAbsoluteURL:function(baseURL,relativeURL){relativeURL=relativeURL.trim();if(/^[a-z]+:/i.test(relativeURL)){return relativeURL;}
var relativeURLQuery=null;var relativeURLHash=null;var relativeURLHashSplit=/^([^#]*)(.*)$/.exec(relativeURL);if(relativeURLHashSplit){relativeURLHash=relativeURLHashSplit[2];relativeURL=relativeURLHashSplit[1];}
var relativeURLQuerySplit=/^([^\?]*)(.*)$/.exec(relativeURL);if(relativeURLQuerySplit){relativeURLQuery=relativeURLQuerySplit[2];relativeURL=relativeURLQuerySplit[1];}
var baseURLHashSplit=/^([^#]*)(.*)$/.exec(baseURL);if(baseURLHashSplit){baseURL=baseURLHashSplit[1];}
var baseURLQuerySplit=/^([^\?]*)(.*)$/.exec(baseURL);if(baseURLQuerySplit){baseURL=baseURLQuerySplit[1];}
var baseURLDomainSplit=/^(([a-z]+:)?\/\/[^:\/]+(:[0-9]+)?)?(\/?.*)$/i.exec(baseURL);if(!baseURLDomainSplit){throw new Error('Error trying to parse base URL.');}
var baseURLProtocol=baseURLDomainSplit[2]||'';var baseURLProtocolDomain=baseURLDomainSplit[1]||'';var baseURLPath=baseURLDomainSplit[4];if(baseURLPath.indexOf('/')!==0&&baseURLProtocolDomain!==''){baseURLPath='/'+baseURLPath;}
var builtURL=null;if(/^\/\//.test(relativeURL)){builtURL=baseURLProtocol+'//'+URLToolkit.buildAbsolutePath('',relativeURL.substring(2));}
else if(/^\//.test(relativeURL)){builtURL=baseURLProtocolDomain+'/'+URLToolkit.buildAbsolutePath('',relativeURL.substring(1));}
else{builtURL=URLToolkit.buildAbsolutePath(baseURLProtocolDomain+baseURLPath,relativeURL);}
if(relativeURLQuery){builtURL+=relativeURLQuery;}
if(relativeURLHash){builtURL+=relativeURLHash;}
return builtURL;},buildAbsolutePath:function(basePath,relativePath){var sRelPath=relativePath;var nUpLn,sDir='',sPath=basePath.replace(/[^\/]*$/,sRelPath.replace(/(\/|^)(?:\.?\/+)+/g,'$1'));for(var nEnd,nStart=0;nEnd=sPath.indexOf('/../',nStart),nEnd>-1;nStart=nEnd+nUpLn){nUpLn=/^\/(?:\.\.\/)*/.exec(sPath.slice(nEnd))[0].length;sDir=(sDir+sPath.substring(nStart,nEnd)).replace(new RegExp('(?:\\\/+[^\\\/]*){0,'+((nUpLn-1)/3)+'}$'),'/');}
return sDir+sPath.substr(nStart);}};if(typeof exports==='object'&&typeof module==='object')
module.exports=URLToolkit;else if(typeof define==='function'&&define.amd)
define([],function(){return URLToolkit;});else if(typeof exports==='object')
exports["URLToolkit"]=URLToolkit;else
root["URLToolkit"]=URLToolkit;})(this);},{}],62:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var deprecateOldCue=function deprecateOldCue(cue){Object.defineProperties(cue.frame,{id:{get:function get(){_videoJs2['default'].log.warn('cue.frame.id is deprecated. Use cue.value.key instead.');return cue.value.key;}},value:{get:function get(){_videoJs2['default'].log.warn('cue.frame.value is deprecated. Use cue.value.data instead.');return cue.value.data;}},privateData:{get:function get(){_videoJs2['default'].log.warn('cue.frame.privateData is deprecated. Use cue.value.data instead.');return cue.value.data;}}});};var durationOfVideo=function durationOfVideo(duration){var dur=undefined;if(isNaN(duration)||Math.abs(duration)===Infinity){dur=Number.MAX_VALUE;}else{dur=duration;}
return dur;};var addTextTrackData=function addTextTrackData(sourceHandler,captionArray,metadataArray){var Cue=_globalWindow2['default'].WebKitDataCue||_globalWindow2['default'].VTTCue;if(captionArray){captionArray.forEach(function(caption){this.inbandTextTrack_.addCue(new Cue(caption.startTime+this.timestampOffset,caption.endTime+this.timestampOffset,caption.text));},sourceHandler);}
if(metadataArray){(function(){var videoDuration=durationOfVideo(sourceHandler.mediaSource_.duration);metadataArray.forEach(function(metadata){var time=metadata.cueTime+this.timestampOffset;metadata.frames.forEach(function(frame){var cue=new Cue(time,time,frame.value||frame.url||frame.data||'');cue.frame=frame;cue.value=frame;deprecateOldCue(cue);this.metadataTrack_.addCue(cue);},this);},sourceHandler);if(sourceHandler.metadataTrack_&&sourceHandler.metadataTrack_.cues&&sourceHandler.metadataTrack_.cues.length){(function(){var cues=sourceHandler.metadataTrack_.cues;var cuesArray=[];for(var i=0;i<cues.length;i++){if(cues[i]){cuesArray.push(cues[i]);}}
var cuesGroupedByStartTime=cuesArray.reduce(function(obj,cue){var timeSlot=obj[cue.startTime]||[];timeSlot.push(cue);obj[cue.startTime]=timeSlot;return obj;},{});var sortedStartTimes=Object.keys(cuesGroupedByStartTime).sort(function(a,b){return Number(a)-Number(b);});sortedStartTimes.forEach(function(startTime,idx){var cueGroup=cuesGroupedByStartTime[startTime];var nextTime=Number(sortedStartTimes[idx+1])||videoDuration;cueGroup.forEach(function(cue){cue.endTime=nextTime;});});})();}})();}};exports['default']={addTextTrackData:addTextTrackData,durationOfVideo:durationOfVideo};module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"global/window":30}],63:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var removeExistingTrack=function removeExistingTrack(player,kind,label){var tracks=player.remoteTextTracks()||[];for(var i=0;i<tracks.length;i++){var track=tracks[i];if(track.kind===kind&&track.label===label){player.removeRemoteTextTrack(track);}}};exports.removeExistingTrack=removeExistingTrack;var cleanupTextTracks=function cleanupTextTracks(player){removeExistingTrack(player,'captions','cc1');removeExistingTrack(player,'metadata','Timed Metadata');};exports.cleanupTextTracks=cleanupTextTracks;},{}],64:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var isAudioCodec=function isAudioCodec(codec){return(/mp4a\.\d+.\d+/i.test(codec));};var isVideoCodec=function isVideoCodec(codec){return(/avc1\.[\da-f]+/i.test(codec));};var parseContentType=function parseContentType(type){var object={type:'',parameters:{}};var parameters=type.trim().split(';');object.type=parameters.shift().trim();parameters.forEach(function(parameter){var pair=parameter.trim().split('=');if(pair.length>1){var _name=pair[0].replace(/"/g,'').trim();var value=pair[1].replace(/"/g,'').trim();object.parameters[_name]=value;}});return object;};var translateLegacyCodecs=function translateLegacyCodecs(codecs){return codecs.map(function(codec){return codec.replace(/avc1\.(\d+)\.(\d+)/i,function(orig,profile,avcLevel){var profileHex=('00'+Number(profile).toString(16)).slice(-2);var avcLevelHex=('00'+Number(avcLevel).toString(16)).slice(-2);return'avc1.'+profileHex+'00'+avcLevelHex;});});};exports['default']={isAudioCodec:isAudioCodec,parseContentType:parseContentType,isVideoCodec:isVideoCodec,translateLegacyCodecs:translateLegacyCodecs};module.exports=exports['default'];},{}],65:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _cleanupTextTracks=require('./cleanup-text-tracks');var createTextTracksIfNecessary=function createTextTracksIfNecessary(sourceBuffer,mediaSource,segment){var player=mediaSource.player_;if(segment.captions&&segment.captions.length&&!sourceBuffer.inbandTextTrack_){(0,_cleanupTextTracks.removeExistingTrack)(player,'captions','cc1');sourceBuffer.inbandTextTrack_=player.addRemoteTextTrack({kind:'captions',label:'cc1'},false).track;}
if(segment.metadata&&segment.metadata.length&&!sourceBuffer.metadataTrack_){(0,_cleanupTextTracks.removeExistingTrack)(player,'metadata','Timed Metadata',true);sourceBuffer.metadataTrack_=player.addRemoteTextTrack({kind:'metadata',label:'Timed Metadata'},false).track;sourceBuffer.metadataTrack_.inBandMetadataTrackDispatchType=segment.metadata.dispatchType;}};exports['default']=createTextTracksIfNecessary;module.exports=exports['default'];},{"./cleanup-text-tracks":63}],66:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var flashConstants={TIME_BETWEEN_CHUNKS:1,BYTES_PER_CHUNK:1024*32};exports["default"]=flashConstants;module.exports=exports["default"];},{}],67:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();var _get=function get(_x,_x2,_x3){var _again=true;_function:while(_again){var object=_x,property=_x2,receiver=_x3;_again=false;if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{_x=parent;_x2=property;_x3=receiver;_again=true;desc=parent=undefined;continue _function;}}else if('value'in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}}};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var _globalDocument=require('global/document');var _globalDocument2=_interopRequireDefault(_globalDocument);var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var _flashSourceBuffer=require('./flash-source-buffer');var _flashSourceBuffer2=_interopRequireDefault(_flashSourceBuffer);var _flashConstants=require('./flash-constants');var _flashConstants2=_interopRequireDefault(_flashConstants);var _codecUtils=require('./codec-utils');var _cleanupTextTracks=require('./cleanup-text-tracks');var FlashMediaSource=(function(_videojs$EventTarget){_inherits(FlashMediaSource,_videojs$EventTarget);function FlashMediaSource(){var _this=this;_classCallCheck(this,FlashMediaSource);_get(Object.getPrototypeOf(FlashMediaSource.prototype),'constructor',this).call(this);this.sourceBuffers=[];this.readyState='closed';this.on(['sourceopen','webkitsourceopen'],function(event){_this.swfObj=_globalDocument2['default'].getElementById(event.swfId);_this.player_=(0,_videoJs2['default'])(_this.swfObj.parentNode);_this.tech_=_this.swfObj.tech;_this.readyState='open';_this.tech_.on('seeking',function(){var i=_this.sourceBuffers.length;while(i--){_this.sourceBuffers[i].abort();}});if(_this.tech_.hls){_this.tech_.hls.on('dispose',function(){(0,_cleanupTextTracks.cleanupTextTracks)(_this.player_);});}
if(_this.swfObj){_this.swfObj.vjs_load();}});}
_createClass(FlashMediaSource,[{key:'addSeekableRange_',value:function addSeekableRange_(){}},{key:'addSourceBuffer',value:function addSourceBuffer(type){var parsedType=(0,_codecUtils.parseContentType)(type);var sourceBuffer=undefined;if(parsedType.type==='video/mp2t'){sourceBuffer=new _flashSourceBuffer2['default'](this);}else{throw new Error('NotSupportedError (Video.js)');}
this.sourceBuffers.push(sourceBuffer);return sourceBuffer;}},{key:'endOfStream',value:function endOfStream(error){if(error==='network'){this.tech_.error(2);}else if(error==='decode'){this.tech_.error(3);}
if(this.readyState!=='ended'){this.readyState='ended';this.swfObj.vjs_endOfStream();}}}]);return FlashMediaSource;})(_videoJs2['default'].EventTarget);exports['default']=FlashMediaSource;try{Object.defineProperty(FlashMediaSource.prototype,'duration',{get:function get(){if(!this.swfObj){return NaN;}
return this.swfObj.vjs_getProperty('duration');},set:function set(value){var i=undefined;var oldDuration=this.swfObj.vjs_getProperty('duration');this.swfObj.vjs_setProperty('duration',value);if(value<oldDuration){for(i=0;i<this.sourceBuffers.length;i++){this.sourceBuffers[i].remove(value,oldDuration);}}
return value;}});}catch(e){FlashMediaSource.prototype.duration=NaN;}
for(var property in _flashConstants2['default']){FlashMediaSource[property]=_flashConstants2['default'][property];}
module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./cleanup-text-tracks":63,"./codec-utils":64,"./flash-constants":66,"./flash-source-buffer":68,"global/document":29}],68:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();var _get=function get(_x,_x2,_x3){var _again=true;_function:while(_again){var object=_x,property=_x2,receiver=_x3;_again=false;if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{_x=parent;_x2=property;_x3=receiver;_again=true;desc=parent=undefined;continue _function;}}else if('value'in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}}};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var _muxJsLibFlv=require('mux.js/lib/flv');var _muxJsLibFlv2=_interopRequireDefault(_muxJsLibFlv);var _removeCuesFromTrack=require('./remove-cues-from-track');var _removeCuesFromTrack2=_interopRequireDefault(_removeCuesFromTrack);var _createTextTracksIfNecessary=require('./create-text-tracks-if-necessary');var _createTextTracksIfNecessary2=_interopRequireDefault(_createTextTracksIfNecessary);var _addTextTrackData=require('./add-text-track-data');var _flashTransmuxerWorker=require('./flash-transmuxer-worker');var _flashTransmuxerWorker2=_interopRequireDefault(_flashTransmuxerWorker);var _webworkify=require('webworkify');var _webworkify2=_interopRequireDefault(_webworkify);var _flashConstants=require('./flash-constants');var _flashConstants2=_interopRequireDefault(_flashConstants);var scheduleTick=function scheduleTick(func){_globalWindow2['default'].setTimeout(func,_flashConstants2['default'].TIME_BETWEEN_CHUNKS);};var generateRandomString=function generateRandomString(){return Math.random().toString(36).slice(2,8);};var toDecimalPlaces=function toDecimalPlaces(num,places){if(typeof places!=='number'||places<0){places=0;}
var scale=Math.pow(10,places);return Math.round(num*scale)/scale;};var FlashSourceBuffer=(function(_videojs$EventTarget){_inherits(FlashSourceBuffer,_videojs$EventTarget);function FlashSourceBuffer(mediaSource){var _this=this;_classCallCheck(this,FlashSourceBuffer);_get(Object.getPrototypeOf(FlashSourceBuffer.prototype),'constructor',this).call(this);var encodedHeader=undefined;this.chunkSize_=_flashConstants2['default'].BYTES_PER_CHUNK;this.buffer_=[];this.bufferSize_=0;this.basePtsOffset_=NaN;this.mediaSource_=mediaSource;this.audioBufferEnd_=NaN;this.videoBufferEnd_=NaN;this.updating=false;this.timestampOffset_=0;encodedHeader=_globalWindow2['default'].btoa(String.fromCharCode.apply(null,Array.prototype.slice.call(_muxJsLibFlv2['default'].getFlvHeader())));var safePlayerId=this.mediaSource_.player_.id().replace(/[^a-zA-Z0-9]/g,'_');this.flashEncodedHeaderName_='vjs_flashEncodedHeader_'+safePlayerId+generateRandomString();this.flashEncodedDataName_='vjs_flashEncodedData_'+safePlayerId+generateRandomString();_globalWindow2['default'][this.flashEncodedHeaderName_]=function(){delete _globalWindow2['default'][_this.flashEncodedHeaderName_];return encodedHeader;};this.mediaSource_.swfObj.vjs_appendChunkReady(this.flashEncodedHeaderName_);this.transmuxer_=(0,_webworkify2['default'])(_flashTransmuxerWorker2['default']);this.transmuxer_.postMessage({action:'init',options:{}});this.transmuxer_.onmessage=function(event){if(event.data.action==='data'){_this.receiveBuffer_(event.data.segment);}};this.one('updateend',function(){_this.mediaSource_.tech_.trigger('loadedmetadata');});Object.defineProperty(this,'timestampOffset',{get:function get(){return this.timestampOffset_;},set:function set(val){if(typeof val==='number'&&val>=0){this.timestampOffset_=val;this.mediaSource_.swfObj.vjs_discontinuity();this.basePtsOffset_=NaN;this.audioBufferEnd_=NaN;this.videoBufferEnd_=NaN;this.transmuxer_.postMessage({action:'reset'});}}});Object.defineProperty(this,'buffered',{get:function get(){if(!this.mediaSource_||!this.mediaSource_.swfObj||!('vjs_getProperty'in this.mediaSource_.swfObj)){return _videoJs2['default'].createTimeRange();}
var buffered=this.mediaSource_.swfObj.vjs_getProperty('buffered');if(buffered&&buffered.length){buffered[0][0]=toDecimalPlaces(buffered[0][0],3);buffered[0][1]=toDecimalPlaces(buffered[0][1],3);}
return _videoJs2['default'].createTimeRanges(buffered);}});this.mediaSource_.player_.on('seeked',function(){(0,_removeCuesFromTrack2['default'])(0,Infinity,_this.metadataTrack_);(0,_removeCuesFromTrack2['default'])(0,Infinity,_this.inbandTextTrack_);});this.mediaSource_.player_.tech_.hls.on('dispose',function(){_this.transmuxer_.terminate();});}
_createClass(FlashSourceBuffer,[{key:'appendBuffer',value:function appendBuffer(bytes){var error=undefined;if(this.updating){error=new Error('SourceBuffer.append() cannot be called '+'while an update is in progress');error.name='InvalidStateError';error.code=11;throw error;}
this.updating=true;this.mediaSource_.readyState='open';this.trigger({type:'update'});this.transmuxer_.postMessage({action:'push',data:bytes.buffer,byteOffset:bytes.byteOffset,byteLength:bytes.byteLength},[bytes.buffer]);this.transmuxer_.postMessage({action:'flush'});}},{key:'abort',value:function abort(){this.buffer_=[];this.bufferSize_=0;this.mediaSource_.swfObj.vjs_abort();if(this.updating){this.updating=false;this.trigger({type:'updateend'});}}},{key:'remove',value:function remove(start,end){(0,_removeCuesFromTrack2['default'])(start,end,this.metadataTrack_);(0,_removeCuesFromTrack2['default'])(start,end,this.inbandTextTrack_);this.trigger({type:'update'});this.trigger({type:'updateend'});}},{key:'receiveBuffer_',value:function receiveBuffer_(segment){var _this2=this;(0,_createTextTracksIfNecessary2['default'])(this,this.mediaSource_,segment);(0,_addTextTrackData.addTextTrackData)(this,segment.captions,segment.metadata);scheduleTick(function(){var flvBytes=_this2.convertTagsToData_(segment);if(_this2.buffer_.length===0){scheduleTick(_this2.processBuffer_.bind(_this2));}
if(flvBytes){_this2.buffer_.push(flvBytes);_this2.bufferSize_+=flvBytes.byteLength;}});}},{key:'processBuffer_',value:function processBuffer_(){var _this3=this;var chunkSize=_flashConstants2['default'].BYTES_PER_CHUNK;if(!this.buffer_.length){if(this.updating!==false){this.updating=false;this.trigger({type:'updateend'});}
return;}
var chunk=this.buffer_[0].subarray(0,chunkSize);if(chunk.byteLength<chunkSize||this.buffer_[0].byteLength===chunkSize){this.buffer_.shift();}else{this.buffer_[0]=this.buffer_[0].subarray(chunkSize);}
this.bufferSize_-=chunk.byteLength;var binary=[];var length=chunk.byteLength;for(var i=0;i<length;i++){binary.push(String.fromCharCode(chunk[i]));}
var b64str=_globalWindow2['default'].btoa(binary.join(''));_globalWindow2['default'][this.flashEncodedDataName_]=function(){scheduleTick(_this3.processBuffer_.bind(_this3));delete _globalWindow2['default'][_this3.flashEncodedDataName_];return b64str;};this.mediaSource_.swfObj.vjs_appendChunkReady(this.flashEncodedDataName_);}},{key:'convertTagsToData_',value:function convertTagsToData_(segmentData){var segmentByteLength=0;var tech=this.mediaSource_.tech_;var videoTargetPts=0;var segment=undefined;var videoTags=segmentData.tags.videoTags;var audioTags=segmentData.tags.audioTags;if(isNaN(this.basePtsOffset_)&&(videoTags.length||audioTags.length)){var firstVideoTag=videoTags[0]||{pts:Infinity};var firstAudioTag=audioTags[0]||{pts:Infinity};this.basePtsOffset_=Math.min(firstAudioTag.pts,firstVideoTag.pts);}
if(tech.seeking()){this.videoBufferEnd_=NaN;this.audioBufferEnd_=NaN;}
if(isNaN(this.videoBufferEnd_)){if(tech.buffered().length){videoTargetPts=tech.buffered().end(0)-this.timestampOffset;}
if(tech.seeking()){videoTargetPts=Math.max(videoTargetPts,tech.currentTime()-this.timestampOffset);}
videoTargetPts*=1e3;videoTargetPts+=this.basePtsOffset_;}else{videoTargetPts=this.videoBufferEnd_+0.1;}
var currentIndex=videoTags.length;if(currentIndex&&videoTags[currentIndex-1].pts>=videoTargetPts){while(--currentIndex){var currentTag=videoTags[currentIndex];if(currentTag.pts>videoTargetPts){continue;}
if(currentTag.keyFrame||currentTag.metaDataTag){break;}}
while(currentIndex){var nextTag=videoTags[currentIndex-1];if(!nextTag.metaDataTag){break;}
currentIndex--;}}
var filteredVideoTags=videoTags.slice(currentIndex);var audioTargetPts=undefined;if(isNaN(this.audioBufferEnd_)){audioTargetPts=videoTargetPts;}else{audioTargetPts=this.audioBufferEnd_+0.1;}
if(filteredVideoTags.length){audioTargetPts=Math.min(audioTargetPts,filteredVideoTags[0].pts);}
currentIndex=0;while(currentIndex<audioTags.length){if(audioTags[currentIndex].pts>=audioTargetPts){break;}
currentIndex++;}
var filteredAudioTags=audioTags.slice(currentIndex);if(filteredAudioTags.length){this.audioBufferEnd_=filteredAudioTags[filteredAudioTags.length-1].pts;}
if(filteredVideoTags.length){this.videoBufferEnd_=filteredVideoTags[filteredVideoTags.length-1].pts;}
var tags=this.getOrderedTags_(filteredVideoTags,filteredAudioTags);if(tags.length===0){return;}
if(tags[0].pts<videoTargetPts&&tech.seeking()){var fudgeFactor=1/30;var currentTime=tech.currentTime();var diff=(videoTargetPts-tags[0].pts)/1e3;var adjustedTime=currentTime-diff;if(adjustedTime<fudgeFactor){adjustedTime=0;}
try{this.mediaSource_.swfObj.vjs_adjustCurrentTime(adjustedTime);}catch(e){}}
for(var i=0;i<tags.length;i++){segmentByteLength+=tags[i].bytes.byteLength;}
segment=new Uint8Array(segmentByteLength);for(var i=0,j=0;i<tags.length;i++){segment.set(tags[i].bytes,j);j+=tags[i].bytes.byteLength;}
return segment;}},{key:'getOrderedTags_',value:function getOrderedTags_(videoTags,audioTags){var tag=undefined;var tags=[];while(videoTags.length||audioTags.length){if(!videoTags.length){tag=audioTags.shift();}else if(!audioTags.length){tag=videoTags.shift();}else if(audioTags[0].dts<videoTags[0].dts){tag=audioTags.shift();}else{tag=videoTags.shift();}
tags.push(tag);}
return tags;}}]);return FlashSourceBuffer;})(_videoJs2['default'].EventTarget);exports['default']=FlashSourceBuffer;module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./add-text-track-data":62,"./create-text-tracks-if-necessary":65,"./flash-constants":66,"./flash-transmuxer-worker":69,"./remove-cues-from-track":71,"global/window":30,"mux.js/lib/flv":44,"webworkify":75}],69:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var _muxJsLibFlv=require('mux.js/lib/flv');var _muxJsLibFlv2=_interopRequireDefault(_muxJsLibFlv);var wireTransmuxerEvents=function wireTransmuxerEvents(transmuxer){transmuxer.on('data',function(segment){_globalWindow2['default'].postMessage({action:'data',segment:segment});});transmuxer.on('done',function(data){_globalWindow2['default'].postMessage({action:'done'});});};var MessageHandlers=(function(){function MessageHandlers(options){_classCallCheck(this,MessageHandlers);this.options=options||{};this.init();}
_createClass(MessageHandlers,[{key:'init',value:function init(){if(this.transmuxer){this.transmuxer.dispose();}
this.transmuxer=new _muxJsLibFlv2['default'].Transmuxer(this.options);wireTransmuxerEvents(this.transmuxer);}},{key:'push',value:function push(data){var segment=new Uint8Array(data.data,data.byteOffset,data.byteLength);this.transmuxer.push(segment);}},{key:'reset',value:function reset(){this.init();}},{key:'flush',value:function flush(){this.transmuxer.flush();}}]);return MessageHandlers;})();var FlashTransmuxerWorker=function FlashTransmuxerWorker(self){self.onmessage=function(event){if(event.data.action==='init'&&event.data.options){this.messageHandlers=new MessageHandlers(event.data.options);return;}
if(!this.messageHandlers){this.messageHandlers=new MessageHandlers();}
if(event.data&&event.data.action&&event.data.action!=='init'){if(this.messageHandlers[event.data.action]){this.messageHandlers[event.data.action](event.data);}}};};exports['default']=function(self){return new FlashTransmuxerWorker(self);};module.exports=exports['default'];},{"global/window":30,"mux.js/lib/flv":44}],70:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();var _get=function get(_x,_x2,_x3){var _again=true;_function:while(_again){var object=_x,property=_x2,receiver=_x3;_again=false;if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{_x=parent;_x2=property;_x3=receiver;_again=true;desc=parent=undefined;continue _function;}}else if('value'in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}}};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var _globalDocument=require('global/document');var _globalDocument2=_interopRequireDefault(_globalDocument);var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var _virtualSourceBuffer=require('./virtual-source-buffer');var _virtualSourceBuffer2=_interopRequireDefault(_virtualSourceBuffer);var _addTextTrackData=require('./add-text-track-data');var _codecUtils=require('./codec-utils');var _cleanupTextTracks=require('./cleanup-text-tracks');var HtmlMediaSource=(function(_videojs$EventTarget){_inherits(HtmlMediaSource,_videojs$EventTarget);function HtmlMediaSource(){var _this=this;_classCallCheck(this,HtmlMediaSource);_get(Object.getPrototypeOf(HtmlMediaSource.prototype),'constructor',this).call(this);var property=undefined;this.nativeMediaSource_=new _globalWindow2['default'].MediaSource();for(property in this.nativeMediaSource_){if(!(property in HtmlMediaSource.prototype)&&typeof this.nativeMediaSource_[property]==='function'){this[property]=this.nativeMediaSource_[property].bind(this.nativeMediaSource_);}}
this.duration_=NaN;Object.defineProperty(this,'duration',{get:function get(){if(this.duration_===Infinity){return this.duration_;}
return this.nativeMediaSource_.duration;},set:function set(duration){this.duration_=duration;if(duration!==Infinity){this.nativeMediaSource_.duration=duration;return;}}});Object.defineProperty(this,'seekable',{get:function get(){if(this.duration_===Infinity){return _videoJs2['default'].createTimeRanges([[0,this.nativeMediaSource_.duration]]);}
return this.nativeMediaSource_.seekable;}});Object.defineProperty(this,'readyState',{get:function get(){return this.nativeMediaSource_.readyState;}});Object.defineProperty(this,'activeSourceBuffers',{get:function get(){return this.activeSourceBuffers_;}});this.sourceBuffers=[];this.activeSourceBuffers_=[];this.updateActiveSourceBuffers_=function(){_this.activeSourceBuffers_.length=0;var combined=false;var audioOnly=true;for(var i=0;i<_this.player_.audioTracks().length;i++){var track=_this.player_.audioTracks()[i];if(track.enabled&&track.kind!=='main'){combined=true;audioOnly=false;break;}}
_this.sourceBuffers.forEach(function(sourceBuffer){sourceBuffer.appendAudioInitSegment_=true;if(sourceBuffer.videoCodec_&&sourceBuffer.audioCodec_){sourceBuffer.audioDisabled_=combined;}else if(sourceBuffer.videoCodec_&&!sourceBuffer.audioCodec_){sourceBuffer.audioDisabled_=true;audioOnly=false;}else if(!sourceBuffer.videoCodec_&&sourceBuffer.audioCodec_){sourceBuffer.audioDisabled_=audioOnly;if(audioOnly){return;}}
_this.activeSourceBuffers_.push(sourceBuffer);});};this.onPlayerMediachange_=function(){_this.sourceBuffers.forEach(function(sourceBuffer){sourceBuffer.appendAudioInitSegment_=true;});};['sourceopen','sourceclose','sourceended'].forEach(function(eventName){this.nativeMediaSource_.addEventListener(eventName,this.trigger.bind(this));},this);this.on('sourceopen',function(event){var video=_globalDocument2['default'].querySelector('[src="'+_this.url_+'"]');if(!video){return;}
_this.player_=(0,_videoJs2['default'])(video.parentNode);if(_this.player_.audioTracks&&_this.player_.audioTracks()){_this.player_.audioTracks().on('change',_this.updateActiveSourceBuffers_);_this.player_.audioTracks().on('addtrack',_this.updateActiveSourceBuffers_);_this.player_.audioTracks().on('removetrack',_this.updateActiveSourceBuffers_);}
_this.player_.on('mediachange',_this.onPlayerMediachange_);});this.on('sourceended',function(event){var duration=(0,_addTextTrackData.durationOfVideo)(_this.duration);for(var i=0;i<_this.sourceBuffers.length;i++){var sourcebuffer=_this.sourceBuffers[i];var cues=sourcebuffer.metadataTrack_&&sourcebuffer.metadataTrack_.cues;if(cues&&cues.length){cues[cues.length-1].endTime=duration;}}});this.on('sourceclose',function(event){this.sourceBuffers.forEach(function(sourceBuffer){if(sourceBuffer.transmuxer_){sourceBuffer.transmuxer_.terminate();}});this.sourceBuffers.length=0;if(!this.player_){return;}
(0,_cleanupTextTracks.cleanupTextTracks)(this.player_);if(this.player_.audioTracks&&this.player_.audioTracks()){this.player_.audioTracks().off('change',this.updateActiveSourceBuffers_);this.player_.audioTracks().off('addtrack',this.updateActiveSourceBuffers_);this.player_.audioTracks().off('removetrack',this.updateActiveSourceBuffers_);}
if(this.player_.el_){this.player_.off('mediachange',this.onPlayerMediachange_);}});}
_createClass(HtmlMediaSource,[{key:'addSeekableRange_',value:function addSeekableRange_(start,end){var error=undefined;if(this.duration!==Infinity){error=new Error('MediaSource.addSeekableRange() can only be invoked '+'when the duration is Infinity');error.name='InvalidStateError';error.code=11;throw error;}
if(end>this.nativeMediaSource_.duration||isNaN(this.nativeMediaSource_.duration)){this.nativeMediaSource_.duration=end;}}},{key:'addSourceBuffer',value:function addSourceBuffer(type){var buffer=undefined;var parsedType=(0,_codecUtils.parseContentType)(type);if(/^(video|audio)\/mp2t$/i.test(parsedType.type)){var codecs=[];if(parsedType.parameters&&parsedType.parameters.codecs){codecs=parsedType.parameters.codecs.split(',');codecs=(0,_codecUtils.translateLegacyCodecs)(codecs);codecs=codecs.filter(function(codec){return(0,_codecUtils.isAudioCodec)(codec)||(0,_codecUtils.isVideoCodec)(codec);});}
if(codecs.length===0){codecs=['avc1.4d400d','mp4a.40.2'];}
buffer=new _virtualSourceBuffer2['default'](this,codecs);if(this.sourceBuffers.length!==0){this.sourceBuffers[0].createRealSourceBuffers_();buffer.createRealSourceBuffers_();this.sourceBuffers[0].audioDisabled_=true;}}else{buffer=this.nativeMediaSource_.addSourceBuffer(type);}
this.sourceBuffers.push(buffer);return buffer;}}]);return HtmlMediaSource;})(_videoJs2['default'].EventTarget);exports['default']=HtmlMediaSource;module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./add-text-track-data":62,"./cleanup-text-tracks":63,"./codec-utils":64,"./virtual-source-buffer":74,"global/document":29,"global/window":30}],71:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var removeCuesFromTrack=function removeCuesFromTrack(start,end,track){var i=undefined;var cue=undefined;if(!track){return;}
if(!track.cues){return;}
i=track.cues.length;while(i--){cue=track.cues[i];if(cue.startTime<=end&&cue.endTime>=start){track.removeCue(cue);}}};exports["default"]=removeCuesFromTrack;module.exports=exports["default"];},{}],72:[function(require,module,exports){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var _muxJsLibMp4=require('mux.js/lib/mp4');var _muxJsLibMp42=_interopRequireDefault(_muxJsLibMp4);var wireTransmuxerEvents=function wireTransmuxerEvents(transmuxer){transmuxer.on('data',function(segment){var initArray=segment.initSegment;segment.initSegment={data:initArray.buffer,byteOffset:initArray.byteOffset,byteLength:initArray.byteLength};var typedArray=segment.data;segment.data=typedArray.buffer;_globalWindow2['default'].postMessage({action:'data',segment:segment,byteOffset:typedArray.byteOffset,byteLength:typedArray.byteLength},[segment.data]);});if(transmuxer.captionStream){transmuxer.captionStream.on('data',function(caption){_globalWindow2['default'].postMessage({action:'caption',data:caption});});}
transmuxer.on('done',function(data){_globalWindow2['default'].postMessage({action:'done'});});};var MessageHandlers=(function(){function MessageHandlers(options){_classCallCheck(this,MessageHandlers);this.options=options||{};this.init();}
_createClass(MessageHandlers,[{key:'init',value:function init(){if(this.transmuxer){this.transmuxer.dispose();}
this.transmuxer=new _muxJsLibMp42['default'].Transmuxer(this.options);wireTransmuxerEvents(this.transmuxer);}},{key:'push',value:function push(data){var segment=new Uint8Array(data.data,data.byteOffset,data.byteLength);this.transmuxer.push(segment);}},{key:'reset',value:function reset(){this.init();}},{key:'setTimestampOffset',value:function setTimestampOffset(data){var timestampOffset=data.timestampOffset||0;this.transmuxer.setBaseMediaDecodeTime(Math.round(timestampOffset*90000));}},{key:'setAudioAppendStart',value:function setAudioAppendStart(data){this.transmuxer.setAudioAppendStart(Math.ceil(data.appendStart*90000));}},{key:'flush',value:function flush(data){this.transmuxer.flush();}}]);return MessageHandlers;})();var TransmuxerWorker=function TransmuxerWorker(self){self.onmessage=function(event){if(event.data.action==='init'&&event.data.options){this.messageHandlers=new MessageHandlers(event.data.options);return;}
if(!this.messageHandlers){this.messageHandlers=new MessageHandlers();}
if(event.data&&event.data.action&&event.data.action!=='init'){if(this.messageHandlers[event.data.action]){this.messageHandlers[event.data.action](event.data);}}};};exports['default']=function(self){return new TransmuxerWorker(self);};module.exports=exports['default'];},{"global/window":30,"mux.js/lib/mp4":53}],73:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var _flashMediaSource=require('./flash-media-source');var _flashMediaSource2=_interopRequireDefault(_flashMediaSource);var _htmlMediaSource=require('./html-media-source');var _htmlMediaSource2=_interopRequireDefault(_htmlMediaSource);var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var urlCount=0;var defaults={mode:'auto'};_videoJs2['default'].mediaSources={};var open=function open(msObjectURL,swfId){var mediaSource=_videoJs2['default'].mediaSources[msObjectURL];if(mediaSource){mediaSource.trigger({type:'sourceopen',swfId:swfId});}else{throw new Error('Media Source not found (Video.js)');}};var supportsNativeMediaSources=function supportsNativeMediaSources(){return!!_globalWindow2['default'].MediaSource&&!!_globalWindow2['default'].MediaSource.isTypeSupported&&_globalWindow2['default'].MediaSource.isTypeSupported('video/mp4;codecs="avc1.4d400d,mp4a.40.2"');};var MediaSource=function MediaSource(options){var settings=_videoJs2['default'].mergeOptions(defaults,options);this.MediaSource={open:open,supportsNativeMediaSources:supportsNativeMediaSources};if(settings.mode==='html5'||settings.mode==='auto'&&supportsNativeMediaSources()){return new _htmlMediaSource2['default']();}else if(_videoJs2['default'].getTech('Flash')){return new _flashMediaSource2['default']();}
throw new Error('Cannot use Flash or Html5 to create a MediaSource for this video');};exports.MediaSource=MediaSource;MediaSource.open=open;MediaSource.supportsNativeMediaSources=supportsNativeMediaSources;var URL={createObjectURL:function createObjectURL(object){var objectUrlPrefix='blob:vjs-media-source/';var url=undefined;if(object instanceof _htmlMediaSource2['default']){url=_globalWindow2['default'].URL.createObjectURL(object.nativeMediaSource_);object.url_=url;return url;}
if(!(object instanceof _flashMediaSource2['default'])){url=_globalWindow2['default'].URL.createObjectURL(object);object.url_=url;return url;}
url=objectUrlPrefix+urlCount;urlCount++;_videoJs2['default'].mediaSources[url]=object;return url;}};exports.URL=URL;_videoJs2['default'].MediaSource=MediaSource;_videoJs2['default'].URL=URL;}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./flash-media-source":67,"./html-media-source":70,"global/window":30}],74:[function(require,module,exports){(function(global){'use strict';Object.defineProperty(exports,'__esModule',{value:true});var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();var _get=function get(_x,_x2,_x3){var _again=true;_function:while(_again){var object=_x,property=_x2,receiver=_x3;_again=false;if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{_x=parent;_x2=property;_x3=receiver;_again=true;desc=parent=undefined;continue _function;}}else if('value'in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}}};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var _createTextTracksIfNecessary=require('./create-text-tracks-if-necessary');var _createTextTracksIfNecessary2=_interopRequireDefault(_createTextTracksIfNecessary);var _removeCuesFromTrack=require('./remove-cues-from-track');var _removeCuesFromTrack2=_interopRequireDefault(_removeCuesFromTrack);var _addTextTrackData=require('./add-text-track-data');var _webworkify=require('webworkify');var _webworkify2=_interopRequireDefault(_webworkify);var _transmuxerWorker=require('./transmuxer-worker');var _transmuxerWorker2=_interopRequireDefault(_transmuxerWorker);var _codecUtils=require('./codec-utils');var VirtualSourceBuffer=(function(_videojs$EventTarget){_inherits(VirtualSourceBuffer,_videojs$EventTarget);function VirtualSourceBuffer(mediaSource,codecs){var _this=this;_classCallCheck(this,VirtualSourceBuffer);_get(Object.getPrototypeOf(VirtualSourceBuffer.prototype),'constructor',this).call(this,_videoJs2['default'].EventTarget);this.timestampOffset_=0;this.pendingBuffers_=[];this.bufferUpdating_=false;this.mediaSource_=mediaSource;this.codecs_=codecs;this.audioCodec_=null;this.videoCodec_=null;this.audioDisabled_=false;this.appendAudioInitSegment_=true;var options={remux:false};this.codecs_.forEach(function(codec){if((0,_codecUtils.isAudioCodec)(codec)){_this.audioCodec_=codec;}else if((0,_codecUtils.isVideoCodec)(codec)){_this.videoCodec_=codec;}});this.transmuxer_=(0,_webworkify2['default'])(_transmuxerWorker2['default']);this.transmuxer_.postMessage({action:'init',options:options});this.transmuxer_.onmessage=function(event){if(event.data.action==='data'){return _this.data_(event);}
if(event.data.action==='done'){return _this.done_(event);}};Object.defineProperty(this,'timestampOffset',{get:function get(){return this.timestampOffset_;},set:function set(val){if(typeof val==='number'&&val>=0){this.timestampOffset_=val;this.appendAudioInitSegment_=true;this.transmuxer_.postMessage({action:'setTimestampOffset',timestampOffset:val});}}});Object.defineProperty(this,'appendWindowStart',{get:function get(){return(this.videoBuffer_||this.audioBuffer_).appendWindowStart;},set:function set(start){if(this.videoBuffer_){this.videoBuffer_.appendWindowStart=start;}
if(this.audioBuffer_){this.audioBuffer_.appendWindowStart=start;}}});Object.defineProperty(this,'updating',{get:function get(){return!!(this.bufferUpdating_||!this.audioDisabled_&&this.audioBuffer_&&this.audioBuffer_.updating||this.videoBuffer_&&this.videoBuffer_.updating);}});Object.defineProperty(this,'buffered',{get:function get(){var start=null;var end=null;var arity=0;var extents=[];var ranges=[];if(!this.videoBuffer_&&!this.audioBuffer_){return _videoJs2['default'].createTimeRange();}
if(!this.videoBuffer_){return this.audioBuffer_.buffered;}
if(!this.audioBuffer_){return this.videoBuffer_.buffered;}
if(this.audioDisabled_){return this.videoBuffer_.buffered;}
if(this.videoBuffer_.buffered.length===0&&this.audioBuffer_.buffered.length===0){return _videoJs2['default'].createTimeRange();}
var videoBuffered=this.videoBuffer_.buffered;var audioBuffered=this.audioBuffer_.buffered;var count=videoBuffered.length;while(count--){extents.push({time:videoBuffered.start(count),type:'start'});extents.push({time:videoBuffered.end(count),type:'end'});}
count=audioBuffered.length;while(count--){extents.push({time:audioBuffered.start(count),type:'start'});extents.push({time:audioBuffered.end(count),type:'end'});}
extents.sort(function(a,b){return a.time-b.time;});for(count=0;count<extents.length;count++){if(extents[count].type==='start'){arity++;if(arity===2){start=extents[count].time;}}else if(extents[count].type==='end'){arity--;if(arity===1){end=extents[count].time;}}
if(start!==null&&end!==null){ranges.push([start,end]);start=null;end=null;}}
return _videoJs2['default'].createTimeRanges(ranges);}});}
_createClass(VirtualSourceBuffer,[{key:'data_',value:function data_(event){var segment=event.data.segment;segment.data=new Uint8Array(segment.data,event.data.byteOffset,event.data.byteLength);segment.initSegment=new Uint8Array(segment.initSegment.data,segment.initSegment.byteOffset,segment.initSegment.byteLength);(0,_createTextTracksIfNecessary2['default'])(this,this.mediaSource_,segment);this.pendingBuffers_.push(segment);return;}},{key:'done_',value:function done_(event){this.processPendingSegments_();return;}},{key:'createRealSourceBuffers_',value:function createRealSourceBuffers_(){var _this2=this;var types=['audio','video'];types.forEach(function(type){if(!_this2[type+'Codec_']){return;}
if(_this2[type+'Buffer_']){return;}
var buffer=null;if(_this2.mediaSource_[type+'Buffer_']){buffer=_this2.mediaSource_[type+'Buffer_'];}else{buffer=_this2.mediaSource_.nativeMediaSource_.addSourceBuffer(type+'/mp4;codecs="'+_this2[type+'Codec_']+'"');_this2.mediaSource_[type+'Buffer_']=buffer;}
_this2[type+'Buffer_']=buffer;['update','updatestart','updateend'].forEach(function(event){buffer.addEventListener(event,function(){if(type==='audio'&&_this2.audioDisabled_){return;}
var shouldTrigger=types.every(function(t){if(t==='audio'&&_this2.audioDisabled_){return true;}
if(type!==t&&_this2[t+'Buffer_']&&_this2[t+'Buffer_'].updating){return false;}
return true;});if(shouldTrigger){return _this2.trigger(event);}});});});}},{key:'appendBuffer',value:function appendBuffer(segment){this.bufferUpdating_=true;if(this.audioBuffer_&&this.audioBuffer_.buffered.length){var audioBuffered=this.audioBuffer_.buffered;this.transmuxer_.postMessage({action:'setAudioAppendStart',appendStart:audioBuffered.end(audioBuffered.length-1)});}
this.transmuxer_.postMessage({action:'push',data:segment.buffer,byteOffset:segment.byteOffset,byteLength:segment.byteLength},[segment.buffer]);this.transmuxer_.postMessage({action:'flush'});}},{key:'remove',value:function remove(start,end){if(this.videoBuffer_){this.videoBuffer_.remove(start,end);}
if(this.audioBuffer_){this.audioBuffer_.remove(start,end);}
(0,_removeCuesFromTrack2['default'])(start,end,this.metadataTrack_);(0,_removeCuesFromTrack2['default'])(start,end,this.inbandTextTrack_);}},{key:'processPendingSegments_',value:function processPendingSegments_(){var sortedSegments={video:{segments:[],bytes:0},audio:{segments:[],bytes:0},captions:[],metadata:[]};sortedSegments=this.pendingBuffers_.reduce(function(segmentObj,segment){var type=segment.type;var data=segment.data;var initSegment=segment.initSegment;segmentObj[type].segments.push(data);segmentObj[type].bytes+=data.byteLength;segmentObj[type].initSegment=initSegment;if(segment.captions){segmentObj.captions=segmentObj.captions.concat(segment.captions);}
if(segment.info){segmentObj[type].info=segment.info;}
if(segment.metadata){segmentObj.metadata=segmentObj.metadata.concat(segment.metadata);}
return segmentObj;},sortedSegments);if(!this.videoBuffer_&&!this.audioBuffer_){if(sortedSegments.video.bytes===0){this.videoCodec_=null;}
if(sortedSegments.audio.bytes===0){this.audioCodec_=null;}
this.createRealSourceBuffers_();}
if(sortedSegments.audio.info){this.mediaSource_.trigger({type:'audioinfo',info:sortedSegments.audio.info});}
if(sortedSegments.video.info){this.mediaSource_.trigger({type:'videoinfo',info:sortedSegments.video.info});}
if(this.appendAudioInitSegment_){if(!this.audioDisabled_&&this.audioBuffer_){sortedSegments.audio.segments.unshift(sortedSegments.audio.initSegment);sortedSegments.audio.bytes+=sortedSegments.audio.initSegment.byteLength;}
this.appendAudioInitSegment_=false;}
if(this.videoBuffer_){sortedSegments.video.segments.unshift(sortedSegments.video.initSegment);sortedSegments.video.bytes+=sortedSegments.video.initSegment.byteLength;this.concatAndAppendSegments_(sortedSegments.video,this.videoBuffer_);(0,_addTextTrackData.addTextTrackData)(this,sortedSegments.captions,sortedSegments.metadata);}
if(!this.audioDisabled_&&this.audioBuffer_){this.concatAndAppendSegments_(sortedSegments.audio,this.audioBuffer_);}
this.pendingBuffers_.length=0;this.bufferUpdating_=false;}},{key:'concatAndAppendSegments_',value:function concatAndAppendSegments_(segmentObj,destinationBuffer){var offset=0;var tempBuffer=undefined;if(segmentObj.bytes){tempBuffer=new Uint8Array(segmentObj.bytes);segmentObj.segments.forEach(function(segment){tempBuffer.set(segment,offset);offset+=segment.byteLength;});try{destinationBuffer.appendBuffer(tempBuffer);}catch(error){if(this.mediaSource_.player_){this.mediaSource_.player_.error({code:-3,type:'APPEND_BUFFER_ERR',message:error.message,originalError:error});}}}}},{key:'abort',value:function abort(){if(this.videoBuffer_){this.videoBuffer_.abort();}
if(this.audioBuffer_){this.audioBuffer_.abort();}
if(this.transmuxer_){this.transmuxer_.postMessage({action:'reset'});}
this.pendingBuffers_.length=0;this.bufferUpdating_=false;}}]);return VirtualSourceBuffer;})(_videoJs2['default'].EventTarget);exports['default']=VirtualSourceBuffer;module.exports=exports['default'];}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./add-text-track-data":62,"./codec-utils":64,"./create-text-tracks-if-necessary":65,"./remove-cues-from-track":71,"./transmuxer-worker":72,"webworkify":75}],75:[function(require,module,exports){var bundleFn=arguments[3];var sources=arguments[4];var cache=arguments[5];var stringify=JSON.stringify;module.exports=function(fn){var keys=[];var wkey;var cacheKeys=Object.keys(cache);for(var i=0,l=cacheKeys.length;i<l;i++){var key=cacheKeys[i];if(cache[key].exports===fn){wkey=key;break;}}
if(!wkey){wkey=Math.floor(Math.pow(16,8)*Math.random()).toString(16);var wcache={};for(var i=0,l=cacheKeys.length;i<l;i++){var key=cacheKeys[i];wcache[key]=key;}
sources[wkey]=[Function(['require','module','exports'],'('+fn+')(self)'),wcache];}
var skey=Math.floor(Math.pow(16,8)*Math.random()).toString(16);var scache={};scache[wkey]=wkey;sources[skey]=[Function(['require'],'require('+stringify(wkey)+')(self)'),scache];var src='('+bundleFn+')({'
+Object.keys(sources).map(function(key){return stringify(key)+':['
+sources[key][0]
+','+stringify(sources[key][1])+']';}).join(',')
+'},{},['+stringify(skey)+'])';var URL=window.URL||window.webkitURL||window.mozURL||window.msURL;return new Worker(URL.createObjectURL(new Blob([src],{type:'text/javascript'})));};},{}],76:[function(require,module,exports){(function(global){'use strict';var _createClass=(function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if('value'in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor);}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor;};})();var _get=function get(_x,_x2,_x3){var _again=true;_function:while(_again){var object=_x,property=_x2,receiver=_x3;_again=false;if(object===null)object=Function.prototype;var desc=Object.getOwnPropertyDescriptor(object,property);if(desc===undefined){var parent=Object.getPrototypeOf(object);if(parent===null){return undefined;}else{_x=parent;_x2=property;_x3=receiver;_again=true;desc=parent=undefined;continue _function;}}else if('value'in desc){return desc.value;}else{var getter=desc.get;if(getter===undefined){return undefined;}return getter.call(receiver);}}};function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{'default':obj};}
function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError('Cannot call a class as a function');}}
function _inherits(subClass,superClass){if(typeof superClass!=='function'&&superClass!==null){throw new TypeError('Super expression must either be null or a function, not '+typeof superClass);}subClass.prototype=Object.create(superClass&&superClass.prototype,{constructor:{value:subClass,enumerable:false,writable:true,configurable:true}});if(superClass)Object.setPrototypeOf?Object.setPrototypeOf(subClass,superClass):subClass.__proto__=superClass;}
var _globalDocument=require('global/document');var _globalDocument2=_interopRequireDefault(_globalDocument);var _playlistLoader=require('./playlist-loader');var _playlistLoader2=_interopRequireDefault(_playlistLoader);var _playlist=require('./playlist');var _playlist2=_interopRequireDefault(_playlist);var _xhr=require('./xhr');var _xhr2=_interopRequireDefault(_xhr);var _aesDecrypter=require('aes-decrypter');var _binUtils=require('./bin-utils');var _binUtils2=_interopRequireDefault(_binUtils);var _videojsContribMediaSources=require('videojs-contrib-media-sources');var _m3u8Parser=require('m3u8-parser');var _m3u8Parser2=_interopRequireDefault(_m3u8Parser);var _videoJs=(typeof window!=="undefined"?window['videojs']:typeof global!=="undefined"?global['videojs']:null);var _videoJs2=_interopRequireDefault(_videoJs);var _masterPlaylistController=require('./master-playlist-controller');var _config=require('./config');var _config2=_interopRequireDefault(_config);var _renditionMixin=require('./rendition-mixin');var _renditionMixin2=_interopRequireDefault(_renditionMixin);var _globalWindow=require('global/window');var _globalWindow2=_interopRequireDefault(_globalWindow);var _playbackWatcher=require('./playback-watcher');var _playbackWatcher2=_interopRequireDefault(_playbackWatcher);var _reloadSourceOnError=require('./reload-source-on-error');var _reloadSourceOnError2=_interopRequireDefault(_reloadSourceOnError);var Hls={PlaylistLoader:_playlistLoader2['default'],Playlist:_playlist2['default'],Decrypter:_aesDecrypter.Decrypter,AsyncStream:_aesDecrypter.AsyncStream,decrypt:_aesDecrypter.decrypt,utils:_binUtils2['default'],xhr:(0,_xhr2['default'])()};Object.defineProperty(Hls,'GOAL_BUFFER_LENGTH',{get:function get(){_videoJs2['default'].log.warn('using Hls.GOAL_BUFFER_LENGTH is UNSAFE be sure '+'you know what you are doing');return _config2['default'].GOAL_BUFFER_LENGTH;},set:function set(v){_videoJs2['default'].log.warn('using Hls.GOAL_BUFFER_LENGTH is UNSAFE be sure '+'you know what you are doing');if(typeof v!=='number'||v<=0){_videoJs2['default'].log.warn('value passed to Hls.GOAL_BUFFER_LENGTH '+'must be a number and greater than 0');return;}
_config2['default'].GOAL_BUFFER_LENGTH=v;}});var BANDWIDTH_VARIANCE=1.2;var safeGetComputedStyle=function safeGetComputedStyle(el,property){var result=undefined;if(!el){return'';}
result=_globalWindow2['default'].getComputedStyle(el);if(!result){return'';}
return result[property];};var handleHlsMediaChange=function handleHlsMediaChange(qualityLevels,playlistLoader){var newPlaylist=playlistLoader.media();var selectedIndex=-1;for(var i=0;i<qualityLevels.length;i++){if(qualityLevels[i].id===newPlaylist.uri){selectedIndex=i;break;}}
qualityLevels.selectedIndex_=selectedIndex;qualityLevels.trigger({selectedIndex:selectedIndex,type:'change'});};var handleHlsLoadedMetadata=function handleHlsLoadedMetadata(qualityLevels,hls){hls.representations().forEach(function(rep){qualityLevels.addQualityLevel(rep);});handleHlsMediaChange(qualityLevels,hls.playlists);};var stableSort=function stableSort(array,sortFn){var newArray=array.slice();array.sort(function(left,right){var cmp=sortFn(left,right);if(cmp===0){return newArray.indexOf(left)-newArray.indexOf(right);}
return cmp;});};Hls.STANDARD_PLAYLIST_SELECTOR=function(){var sortedPlaylists=this.playlists.master.playlists.slice();var bandwidthPlaylists=[];var bandwidthBestVariant=undefined;var resolutionPlusOne=undefined;var resolutionBestVariant=undefined;var width=undefined;var height=undefined;var systemBandwidth=undefined;var haveResolution=undefined;var resolutionPlusOneList=[];var resolutionPlusOneSmallest=[];var resolutionBestVariantList=[];stableSort(sortedPlaylists,Hls.comparePlaylistBandwidth);sortedPlaylists=sortedPlaylists.filter(_playlist2['default'].isEnabled);systemBandwidth=this.systemBandwidth;bandwidthPlaylists=sortedPlaylists.filter(function(elem){return elem.attributes&&elem.attributes.BANDWIDTH&&elem.attributes.BANDWIDTH*BANDWIDTH_VARIANCE<systemBandwidth;});bandwidthBestVariant=bandwidthPlaylists.filter(function(elem){return elem.attributes.BANDWIDTH===bandwidthPlaylists[bandwidthPlaylists.length-1].attributes.BANDWIDTH;})[0];stableSort(bandwidthPlaylists,Hls.comparePlaylistResolution);width=parseInt(safeGetComputedStyle(this.tech_.el(),'width'),10);height=parseInt(safeGetComputedStyle(this.tech_.el(),'height'),10);haveResolution=bandwidthPlaylists.filter(function(elem){return elem.attributes&&elem.attributes.RESOLUTION&&elem.attributes.RESOLUTION.width&&elem.attributes.RESOLUTION.height;});resolutionBestVariantList=haveResolution.filter(function(elem){return elem.attributes.RESOLUTION.width===width&&elem.attributes.RESOLUTION.height===height;});resolutionBestVariant=resolutionBestVariantList.filter(function(elem){return elem.attributes.BANDWIDTH===resolutionBestVariantList[resolutionBestVariantList.length-1].attributes.BANDWIDTH;})[0];if(!resolutionBestVariant){resolutionPlusOneList=haveResolution.filter(function(elem){return elem.attributes.RESOLUTION.width>width||elem.attributes.RESOLUTION.height>height;});resolutionPlusOneSmallest=resolutionPlusOneList.filter(function(elem){return elem.attributes.RESOLUTION.width===resolutionPlusOneList[0].attributes.RESOLUTION.width&&elem.attributes.RESOLUTION.height===resolutionPlusOneList[0].attributes.RESOLUTION.height;});resolutionPlusOne=resolutionPlusOneSmallest.filter(function(elem){return elem.attributes.BANDWIDTH===resolutionPlusOneSmallest[resolutionPlusOneSmallest.length-1].attributes.BANDWIDTH;})[0];}
return resolutionPlusOne||resolutionBestVariant||bandwidthBestVariant||sortedPlaylists[0];};Hls.canPlaySource=function(){return _videoJs2['default'].log.warn('HLS is no longer a tech. Please remove it from '+'your player\'s techOrder.');};Hls.supportsNativeHls=(function(){var video=_globalDocument2['default'].createElement('video');if(!_videoJs2['default'].getTech('Html5').isSupported()){return false;}
var canPlay=['application/vnd.apple.mpegurl','audio/mpegurl','audio/x-mpegurl','application/x-mpegurl','video/x-mpegurl','video/mpegurl','application/mpegurl'];return canPlay.some(function(canItPlay){return(/maybe|probably/i.test(video.canPlayType(canItPlay)));});})();Hls.isSupported=function(){return _videoJs2['default'].log.warn('HLS is no longer a tech. Please remove it from '+'your player\'s techOrder.');};var USER_AGENT=_globalWindow2['default'].navigator&&_globalWindow2['default'].navigator.userAgent||'';Hls.supportsAudioInfoChange_=function(){if(_videoJs2['default'].browser.IS_FIREFOX){var firefoxVersionMap=/Firefox\/([\d.]+)/i.exec(USER_AGENT);var version=parseInt(firefoxVersionMap[1],10);return version>=49;}
return true;};var Component=_videoJs2['default'].getComponent('Component');var HlsHandler=(function(_Component){_inherits(HlsHandler,_Component);function HlsHandler(source,tech,options){var _this=this;_classCallCheck(this,HlsHandler);_get(Object.getPrototypeOf(HlsHandler.prototype),'constructor',this).call(this,tech);if(tech.options_&&tech.options_.playerId){var _player=(0,_videoJs2['default'])(tech.options_.playerId);if(!_player.hasOwnProperty('hls')){Object.defineProperty(_player,'hls',{get:function get(){_videoJs2['default'].log.warn('player.hls is deprecated. Use player.tech_.hls instead.');return _this;}});}}
if(_videoJs2['default'].options.hls.overrideNative&&(tech.featuresNativeVideoTracks||tech.featuresNativeAudioTracks)){throw new Error('Overriding native HLS requires emulated tracks. '+'See https://git.io/vMpjB');}
this.tech_=tech;this.source_=source;this.stats={};this.ignoreNextSeekingEvent_=false;this.options_=_videoJs2['default'].mergeOptions(_videoJs2['default'].options.hls||{},options.hls);this.setOptions_();this.on(_globalDocument2['default'],['fullscreenchange','webkitfullscreenchange','mozfullscreenchange','MSFullscreenChange'],function(event){var fullscreenElement=_globalDocument2['default'].fullscreenElement||_globalDocument2['default'].webkitFullscreenElement||_globalDocument2['default'].mozFullScreenElement||_globalDocument2['default'].msFullscreenElement;if(fullscreenElement&&fullscreenElement.contains(_this.tech_.el())){_this.masterPlaylistController_.fastQualityChange_();}});this.on(this.tech_,'seeking',function(){if(this.ignoreNextSeekingEvent_){this.ignoreNextSeekingEvent_=false;return;}
this.setCurrentTime(this.tech_.currentTime());});this.on(this.tech_,'error',function(){if(this.masterPlaylistController_){this.masterPlaylistController_.pauseLoading();}});this.audioTrackChange_=function(){_this.masterPlaylistController_.setupAudio();};this.textTrackChange_=function(){_this.masterPlaylistController_.setupSubtitles();};this.on(this.tech_,'play',this.play);}
_createClass(HlsHandler,[{key:'setOptions_',value:function setOptions_(){var _this2=this;this.options_.withCredentials=this.options_.withCredentials||false;if(typeof this.options_.bandwidth!=='number'){this.options_.bandwidth=4194304;}
['withCredentials','bandwidth'].forEach(function(option){if(typeof _this2.source_[option]!=='undefined'){_this2.options_[option]=_this2.source_[option];}});this.bandwidth=this.options_.bandwidth;}},{key:'src',value:function src(_src){var _this3=this;if(!_src){return;}
this.setOptions_();this.options_.url=this.source_.src;this.options_.tech=this.tech_;this.options_.externHls=Hls;this.masterPlaylistController_=new _masterPlaylistController.MasterPlaylistController(this.options_);this.playbackWatcher_=new _playbackWatcher2['default'](_videoJs2['default'].mergeOptions(this.options_,{seekable:function seekable(){return _this3.seekable();}}));this.masterPlaylistController_.on('error',function(){var player=_videoJs2['default'].players[_this3.tech_.options_.playerId];player.error(_this3.masterPlaylistController_.error);});this.masterPlaylistController_.selectPlaylist=this.selectPlaylist?this.selectPlaylist.bind(this):Hls.STANDARD_PLAYLIST_SELECTOR.bind(this);this.playlists=this.masterPlaylistController_.masterPlaylistLoader_;this.mediaSource=this.masterPlaylistController_.mediaSource;Object.defineProperties(this,{selectPlaylist:{get:function get(){return this.masterPlaylistController_.selectPlaylist;},set:function set(selectPlaylist){this.masterPlaylistController_.selectPlaylist=selectPlaylist.bind(this);}},throughput:{get:function get(){return this.masterPlaylistController_.mainSegmentLoader_.throughput.rate;},set:function set(throughput){this.masterPlaylistController_.mainSegmentLoader_.throughput.rate=throughput;this.masterPlaylistController_.mainSegmentLoader_.throughput.count=1;}},bandwidth:{get:function get(){return this.masterPlaylistController_.mainSegmentLoader_.bandwidth;},set:function set(bandwidth){this.masterPlaylistController_.mainSegmentLoader_.bandwidth=bandwidth;this.masterPlaylistController_.mainSegmentLoader_.throughput={rate:0,count:0};}},systemBandwidth:{get:function get(){var invBandwidth=1/(this.bandwidth||1);var invThroughput=undefined;if(this.throughput>0){invThroughput=1/this.throughput;}else{invThroughput=0;}
var systemBitrate=Math.floor(1/(invBandwidth+invThroughput));return systemBitrate;},set:function set(){_videoJs2['default'].log.error('The "systemBandwidth" property is read-only');}}});Object.defineProperties(this.stats,{bandwidth:{get:function get(){return _this3.bandwidth||0;},enumerable:true},mediaRequests:{get:function get(){return _this3.masterPlaylistController_.mediaRequests_()||0;},enumerable:true},mediaRequestsAborted:{get:function get(){return _this3.masterPlaylistController_.mediaRequestsAborted_()||0;},enumerable:true},mediaRequestsTimedout:{get:function get(){return _this3.masterPlaylistController_.mediaRequestsTimedout_()||0;},enumerable:true},mediaRequestsErrored:{get:function get(){return _this3.masterPlaylistController_.mediaRequestsErrored_()||0;},enumerable:true},mediaTransferDuration:{get:function get(){return _this3.masterPlaylistController_.mediaTransferDuration_()||0;},enumerable:true},mediaBytesTransferred:{get:function get(){return _this3.masterPlaylistController_.mediaBytesTransferred_()||0;},enumerable:true},mediaSecondsLoaded:{get:function get(){return _this3.masterPlaylistController_.mediaSecondsLoaded_()||0;},enumerable:true}});this.tech_.one('canplay',this.masterPlaylistController_.setupFirstPlay.bind(this.masterPlaylistController_));this.masterPlaylistController_.on('sourceopen',function(){_this3.tech_.audioTracks().addEventListener('change',_this3.audioTrackChange_);_this3.tech_.remoteTextTracks().addEventListener('change',_this3.textTrackChange_);});this.masterPlaylistController_.on('selectedinitialmedia',function(){(0,_renditionMixin2['default'])(_this3);});this.masterPlaylistController_.on('audioupdate',function(){_this3.tech_.clearTracks('audio');_this3.masterPlaylistController_.activeAudioGroup().forEach(function(audioTrack){_this3.tech_.audioTracks().addTrack(audioTrack);});});this.on(this.masterPlaylistController_,'progress',function(){this.tech_.trigger('progress');});this.on(this.masterPlaylistController_,'firstplay',function(){this.ignoreNextSeekingEvent_=true;});this.tech_.ready(function(){return _this3.setupQualityLevels_();});if(!this.tech_.el()){return;}
this.tech_.src(_videoJs2['default'].URL.createObjectURL(this.masterPlaylistController_.mediaSource));}},{key:'setupQualityLevels_',value:function setupQualityLevels_(){var _this4=this;var player=_videoJs2['default'].players[this.tech_.options_.playerId];if(player&&player.qualityLevels){this.qualityLevels_=player.qualityLevels();this.masterPlaylistController_.on('selectedinitialmedia',function(){handleHlsLoadedMetadata(_this4.qualityLevels_,_this4);});this.playlists.on('mediachange',function(){handleHlsMediaChange(_this4.qualityLevels_,_this4.playlists);});}}},{key:'activeAudioGroup_',value:function activeAudioGroup_(){return this.masterPlaylistController_.activeAudioGroup();}},{key:'play',value:function play(){this.masterPlaylistController_.play();}},{key:'setCurrentTime',value:function setCurrentTime(currentTime){this.masterPlaylistController_.setCurrentTime(currentTime);}},{key:'duration',value:function duration(){return this.masterPlaylistController_.duration();}},{key:'seekable',value:function seekable(){return this.masterPlaylistController_.seekable();}},{key:'dispose',value:function dispose(){if(this.playbackWatcher_){this.playbackWatcher_.dispose();}
if(this.masterPlaylistController_){this.masterPlaylistController_.dispose();}
if(this.qualityLevels_){this.qualityLevels_.dispose();}
this.tech_.audioTracks().removeEventListener('change',this.audioTrackChange_);this.tech_.remoteTextTracks().removeEventListener('change',this.textTrackChange_);_get(Object.getPrototypeOf(HlsHandler.prototype),'dispose',this).call(this);}}]);return HlsHandler;})(Component);var HlsSourceHandler=function HlsSourceHandler(mode){return{canHandleSource:function canHandleSource(srcObj){if(_videoJs2['default'].options.hls&&_videoJs2['default'].options.hls.mode&&_videoJs2['default'].options.hls.mode!==mode){return false;}
return HlsSourceHandler.canPlayType(srcObj.type);},handleSource:function handleSource(source,tech,options){if(mode==='flash'){tech.setTimeout(function(){tech.trigger('loadstart');},1);}
var settings=_videoJs2['default'].mergeOptions(options,{hls:{mode:mode}});tech.hls=new HlsHandler(source,tech,settings);tech.hls.xhr=(0,_xhr2['default'])();tech.hls.src(source.src);return tech.hls;},canPlayType:function canPlayType(type){if(HlsSourceHandler.canPlayType(type)){return'maybe';}
return'';}};};Hls.comparePlaylistBandwidth=function(left,right){var leftBandwidth=undefined;var rightBandwidth=undefined;if(left.attributes&&left.attributes.BANDWIDTH){leftBandwidth=left.attributes.BANDWIDTH;}
leftBandwidth=leftBandwidth||_globalWindow2['default'].Number.MAX_VALUE;if(right.attributes&&right.attributes.BANDWIDTH){rightBandwidth=right.attributes.BANDWIDTH;}
rightBandwidth=rightBandwidth||_globalWindow2['default'].Number.MAX_VALUE;return leftBandwidth-rightBandwidth;};Hls.comparePlaylistResolution=function(left,right){var leftWidth=undefined;var rightWidth=undefined;if(left.attributes&&left.attributes.RESOLUTION&&left.attributes.RESOLUTION.width){leftWidth=left.attributes.RESOLUTION.width;}
leftWidth=leftWidth||_globalWindow2['default'].Number.MAX_VALUE;if(right.attributes&&right.attributes.RESOLUTION&&right.attributes.RESOLUTION.width){rightWidth=right.attributes.RESOLUTION.width;}
rightWidth=rightWidth||_globalWindow2['default'].Number.MAX_VALUE;if(leftWidth===rightWidth&&left.attributes.BANDWIDTH&&right.attributes.BANDWIDTH){return left.attributes.BANDWIDTH-right.attributes.BANDWIDTH;}
return leftWidth-rightWidth;};HlsSourceHandler.canPlayType=function(type){if(_videoJs2['default'].browser.IE_VERSION&&_videoJs2['default'].browser.IE_VERSION<=10){return false;}
var mpegurlRE=/^(audio|video|application)\/(x-|vnd\.apple\.)?mpegurl/i;if(!_videoJs2['default'].options.hls.overrideNative&&Hls.supportsNativeHls){return false;}
return mpegurlRE.test(type);};if(typeof _videoJs2['default'].MediaSource==='undefined'||typeof _videoJs2['default'].URL==='undefined'){_videoJs2['default'].MediaSource=_videojsContribMediaSources.MediaSource;_videoJs2['default'].URL=_videojsContribMediaSources.URL;}
var flashTech=_videoJs2['default'].getTech('Flash');if(_videojsContribMediaSources.MediaSource.supportsNativeMediaSources()){_videoJs2['default'].getTech('Html5').registerSourceHandler(HlsSourceHandler('html5'),0);}
if(_globalWindow2['default'].Uint8Array&&flashTech){flashTech.registerSourceHandler(HlsSourceHandler('flash'));}
_videoJs2['default'].HlsHandler=HlsHandler;_videoJs2['default'].HlsSourceHandler=HlsSourceHandler;_videoJs2['default'].Hls=Hls;if(!_videoJs2['default'].use){_videoJs2['default'].registerComponent('Hls',Hls);}
_videoJs2['default'].m3u8=_m3u8Parser2['default'];_videoJs2['default'].options.hls=_videoJs2['default'].options.hls||{};if(_videoJs2['default'].registerPlugin){_videoJs2['default'].registerPlugin('reloadSourceOnError',_reloadSourceOnError2['default']);}else{_videoJs2['default'].plugin('reloadSourceOnError',_reloadSourceOnError2['default']);}
module.exports={Hls:Hls,HlsHandler:HlsHandler,HlsSourceHandler:HlsSourceHandler};}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./bin-utils":2,"./config":3,"./master-playlist-controller":5,"./playback-watcher":7,"./playlist":9,"./playlist-loader":8,"./reload-source-on-error":11,"./rendition-mixin":12,"./xhr":19,"aes-decrypter":23,"global/document":29,"global/window":30,"m3u8-parser":31,"videojs-contrib-media-sources":73}]},{},[76])(76)});(function(){'use strict';angular.module('app',['ui.router','app.post','app.welcome','app.home','app.common','app.user','app.search','app.misc','app.shoplist','app.redeem','app.history','http-auth-interceptor','app.profile','app.account-setting','app.circle','app.look','app.help','app.deeplink','app.deeplink-post','app.appupgrade','app.dlink','app.demostore','angulartics','angulartics.google.analytics','gs.preloaded']);})();(function(){'use strict';var r=isMobile();var p=preloadPages();var d=preloadDistance();angular.module('app').constant("constants",{url:"https://www.youcamapps.com",challengeUrl:"https://www.youcamapps.com/web/challenge",challengeDemoUrl:"https://demo.beautycircle.com/web/challenge",ycsUrl:"https://www.youcamshop.com",isMobile:r,maxMobileWidth:749,universalLinkPrefix:'https://m.beautycircle.com',facebookAppId:'225355457481040',facebookUrl:'https://www.facebook.com',facebookMobileUrl:'https://m.facebook.com',facebookIosDeepLink:'fb://profile',facebookAndroidDeepLink:'fb://page',instagramUrl:'https://www.instagram.com',instagramPostUrl:'https://www.instagram.com/p',instagramMobileUrl:'https://www.instagram.com',instagramMobilePostUrl:'https://www.instagram.com/p',instagramIosDeepLink:'instagram://user?username=',instagramAndroidDeepLink:'',twitterUrl:'https://twitter.com',twitterMobileUrl:'https://mobile.twitter.com',twitterIosDeepLink:'twitter://user?screen_name=',twitterAndroidDeepLink:'',youtubeUrl:'https://www.youtube.com/channel',youtubeMobileUrl:'https://m.youtube.com/channel',youtubeIosDeepLink:'vnd.youtube://www.youtube.com/channel/',youtubeAndroidDeepLink:'',youtubeWatchUrl:'https://www.youtube.com/watch?v=',youtubeWatchMobileUrl:'https://m.youtube.com/watch?v=',youtubeWatchIosDeepLink:'vnd.youtube://www.youtube.com/watch?v=',youtubeWatchAndroidDeepLink:'',pfUrl:{en_US:'https://www.perfectcorp.com/',zh_TW:'https://www.perfectcorp.com/zh-tw/',zh_CN:'https://www.perfectcorp.com/zh-cn/',ja_JP:'https://www.perfectcorp.com/ja/',ko_KR:'https://www.perfectcorp.com/ko/',de_DE:'https://www.perfectcorp.com/de/',fr_FR:'https://www.perfectcorp.com/fr/',es_ES:'https://www.perfectcorp.com/es/',pt_BR:'https://www.perfectcorp.com/pt/',it_IT:'https://www.perfectcorp.com/it/'},yceUrl:{en_US:'https://yce.perfectcorp.com',zh_TW:'https://yce.perfectcorp.com/zh-tw',ja_JP:'https://yce.perfectcorp.com/ja',de_DE:'https://yce.perfectcorp.com/de',fr_FR:'https://yce.perfectcorp.com/fr',es_ES:'https://yce.perfectcorp.com/es',pt_BR:'https://yce.perfectcorp.com/pt',it_IT:'https://yce.perfectcorp.com/it'},yceDest:{enhance:'photo-enhance',removal:'object-removal',remove_bg:'remove-background',blur_bg:'blur-background',change_bg:'change-background',colorize:'colorize',avatar:'avatar',expansion:'ai-image-extender',brighten:'ai-lighting',restore:'old-photo-restoration',replace:'ai-replace',color_correct:'color-correction',video_enhance:'video-enhancer-ai',headshot:'ai-headshot-generator',faceswap:'face-swap'},appstore:{ymk:{en_US:'https://apps.apple.com/us/app/youcam-makeup-selfie-editor/id863844475',zh_TW:'https://apps.apple.com/tw/app/youcam-makeup-selfie-editor/id863844475',zh_CN:'https://apps.apple.com/cn/app/id1522818382',ja_JP:'https://apps.apple.com/jp/app/youcam-makeup-selfie-editor/id863844475',ko_KR:'https://apps.apple.com/kr/app/youcam-makeup-selfie-editor/id863844475',de_DE:'https://apps.apple.com/de/app/youcam-makeup-selfie-editor/id863844475',fr_FR:'https://apps.apple.com/fr/app/youcam-makeup-selfie-editor/id863844475',es_ES:'https://apps.apple.com/es/app/youcam-makeup-selfie-editor/id863844475',pt_BR:'https://apps.apple.com/pt/app/youcam-makeup-selfie-editor/id863844475'},ycp:{en_US:'https://apps.apple.com/us/app/youcam-perfect-photo-editor/id768469908',zh_TW:'https://apps.apple.com/tw/app/youcam-perfect-photo-editor/id768469908',zh_CN:'https://apps.apple.com/cn/app/id1522816615',ja_JP:'https://apps.apple.com/jp/app/youcam-perfect-photo-editor/id768469908',ko_KR:'https://apps.apple.com/kr/app/youcam-perfect-photo-editor/id768469908',de_DE:'https://apps.apple.com/de/app/youcam-perfect-photo-editor/id768469908',fr_FR:'https://apps.apple.com/fr/app/youcam-perfect-photo-editor/id768469908',es_ES:'https://apps.apple.com/es/app/youcam-perfect-photo-editor/id768469908',pt_BR:'https://apps.apple.com/pt/app/youcam-perfect-photo-editor/id768469908'},ycvb:{en_US:'https://apps.apple.com/us/app/youcam-video-selfie-editing/id1536076386',zh_TW:'https://apps.apple.com/tw/app/youcam-video-selfie-editing/id1536076386',zh_CN:'https://www.perfectcorp.com/zh-cn/consumer',ja_JP:'https://apps.apple.com/jp/app/youcam-video-selfie-editing/id1536076386',ko_KR:'https://apps.apple.com/kr/app/youcam-video-selfie-editing/id1536076386',de_DE:'https://apps.apple.com/de/app/youcam-video-selfie-editing/id1536076386',fr_FR:'https://apps.apple.com/fr/app/youcam-video-selfie-editing/id1536076386',es_ES:'https://apps.apple.com/es/app/youcam-video-selfie-editing/id1536076386',pt_BR:'https://apps.apple.com/pt/app/youcam-video-selfie-editing/id1536076386'}},ybcmarket:{ios:'https://itunes.apple.com/app/apple-store/id1066152001?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.perfectcorp.beautycircle&referrer=',androidapk:'https://www.perfectcorp.cn/consumer',androidstore:'market://details?id=com.perfectcorp.beautycircle&referrer=',androidappid:'com.perfectcorp.beautycircle'},ycpmarket:{ios:'https://itunes.apple.com/app/apple-store/id768469908?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.cyberlink.youperfect&referrer=',androidapk:'https://cdn.youcamapi.cn/apk/ycp/YouPerfect-5.55.4.5912.apk',androidstore:'market://details?id=com.cyberlink.youperfect&referrer=',androidappid:'com.cyberlink.youperfect'},ymkmarket:{ios:'https://itunes.apple.com/app/apple-store/id863844475?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.cyberlink.youcammakeup&referrer=',androidapk:'https://cdn.youcamapi.cn/apk/ymk/YouCamMakeup-5.77.1.7405.apk',androidstore:'market://details?id=com.cyberlink.youcammakeup&referrer=',androidappid:'com.cyberlink.youcammakeup',},ycnmarket:{ios:'https://itunes.apple.com/app/apple-store/id1051710880?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.perfectcorp.ycn&referrer=',androidapk:'https://cdn.youcamapi.cn/apk/ycn/YouCamNails-1.26.7.7306.apk',androidstore:'market://details?id=com.perfectcorp.ycn&referrer=',androidappid:'com.perfectcorp.ycn',},ycfmarket:{ios:'https://itunes.apple.com/app/apple-store/id1136617049?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.perfectcorp.ycf&referrer=',androidapk:'https://cdn.youcamapi.cn/apk/ycf/YouCamFun-1.16.7.6015.apk',androidstore:'market://details?id=com.perfectcorp.ycf&referrer=',androidappid:'com.perfectcorp.ycf',},ycsmarket:{ios:'https://itunes.apple.com/app/apple-store/id1066152001?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.perfectcorp.beautycircle&referrer=',androidapk:'https://www.perfectcorp.cn/consumer',androidstore:'market://details?id=com.perfectcorp.beautycircle&referrer=',androidappid:'com.perfectcorp.beautycircle'},ymk4bmarket:{ios:'https://itunes.apple.com/app/apple-store/id1450244365?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.perfectcorp.ymkbusiness&referrer=',androidapk:'https://cdn.youcamapi.cn/apk/y4b/YouCamForBusiness-5.57.0.1029.apk',androidstore:'market://details?id=com.perfectcorp.ymkbusiness&referrer=',androidappid:'com.perfectcorp.ymkbusiness'},ycvmarket:{ios:'https://www.perfectcorp.com/consumer/apps/ycc',android:'https://play.google.com/store/apps/details?id=com.perfectcorp.ycv&referrer=',androidapk:'https://www.perfectcorp.cn/consumer',androidstore:'market://details?id=com.perfectcorp.ycv&referrer=',androidappid:'com.perfectcorp.ycv'},ycvbmarket:{ios:'https://itunes.apple.com/app/apple-store/id1536076386?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.youcam.videoeditor.reface.makeup&referrer=',androidapk:'https://www.perfectcorp.cn/consumer',androidstore:'market://details?id=com.perfectcorp.ycvb&referrer=',androidappid:'com.perfectcorp.ycvb'},ambmarket:{ios:'https://itunes.apple.com/app/apple-store/id1308841515?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.perfectcorp.amb&referrer=',androidapk:'https://www.perfectcorp.cn/consumer',androidstore:'market://details?id=com.perfectcorp.amb&referrer=',androidappid:'com.perfectcorp.amb'},yctmarket:{ios:'https://itunes.apple.com/app/apple-store/id1503446927?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.cyberlink.youcammakeup&referrer=',androidapk:'https://www.perfectcorp.cn/consumer',androidstore:'market://details?id=com.cyberlink.youcammakeup&referrer=',androidappid:'com.cyberlink.youcammakeup',},ycemarket:{ios:'https://itunes.apple.com/app/apple-store/id6444827065?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.perfectcorp.yce&referrer=',androidapk:'https://yce.perfectcorp.com',androidstore:'https://yce.perfectcorp.com',androidappid:'com.perfectcorp.yce',},ycamarket:{ios:'https://itunes.apple.com/app/apple-store/id6451239387?pt=117886073&mt=8&ct=',android:'https://play.google.com/store/apps/details?id=com.youcam.ai.beauty.art.maker.generator&referrer=',androidapk:'https://www.perfectcorp.cn/consumer',androidstore:'market://details?id=com.youcam.ai.beauty.art.maker.generator&referrer=',androidappid:'com.youcam.ai.beauty.art.maker.generator',},pdrmarket:{ios:'https://www.cyberlink.com/powerdirector',android:'https://play.google.com/store/apps/details?id=com.cyberlink.powerdirector.DRA140225_01&referrer=',},preloadPages:p,preloadDistance:d,beautyCircletId:"epdkjcmaobgefbokicbbjacjdlfldomf"});function isMobile(){var check=false;(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))||(/Mac/i.test(a)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2))
check=true})(navigator.userAgent||navigator.vendor||window.opera);return check;}
function isIE(){return(false||!!document.documentMode);}
function preloadPages(){return isIE()?1:2;}
function preloadDistance(){return isIE()?1:2;}})();(function(){'use strict';angular.module('app').constant("events",{STATE_CHANGED:'state_changed',LOGIN_REQUIRED:'event:auth-loginRequired',MODAL_OPEN:'event:modal-opened',MODAL_CLOSE:'event:modal-closed',PROFILE_CHILD_STATE_CHANGED:'event:profile-child-state-changed',COMMENT_COUNT_CHANGED:'event:comment-count-changed',POST_LIKE_COUNT_CHANGED:'event:post-like-count-changed',ACCOUNT_ACTIVATED:'event:account-activated',META_CHANGED:'event:meta-changed',CHROME_PLUGIN_INSTALLED:'event:chrome-plugin-installed',HELP_CENTER_STATE_CHANGED:'event:help-center-state-changed',CIRCLE_IN_SUCCESS:'event:circle-in-success',SEARCH_INPUTBOX_FOCUS:'event:search-inputbox-focus'});})();(function(){'use strict';angular.module('app').config(config);config.$inject=['$locationProvider','$urlRouterProvider'];function config($locationProvider,$urlRouterProvider){$locationProvider.html5Mode(true);$urlRouterProvider.otherwise('/');}})();(function(){'use strict';angular.module('app').run(run);run.$inject=['$rootScope','deviceservice','historyservice'];function run($rootScope,deviceservice,historyservice){$rootScope.browser=deviceservice.getBrowser();historyservice.history();}})();(function(){'use strict';angular.module('app.common',['ui.router','ui.bootstrap','facebook','ng.deviceDetector','wu.masonry','infinite-scroll','ngSanitize','bn-lazyload','vcRecaptcha']);})();(function(){'use strict';angular.module('app.common').config(config);config.$inject=['FacebookProvider'];function config(FacebookProvider){FacebookProvider.init('225355457481040');}})();(function(){'use strict';angular.module('app.common').config(config);config.$inject=['$httpProvider'];function config($httpProvider){if(!$httpProvider.defaults.headers.get){$httpProvider.defaults.headers.get={};}
$httpProvider.defaults.headers.get['Cache-Control']='no-cache';$httpProvider.defaults.headers.get['Pragma']='no-cache';}})();(function(){'use strict';angular.module('app.common').config(config);config.$inject=['$httpProvider'];function config($httpProvider){$httpProvider.interceptors.push('httpqueuinginterceptor');}})();(function(){'use strict';angular.module('app.common').config(config);config.$inject=['$httpProvider'];function config($httpProvider){$httpProvider.interceptors.push('httpcacheinterceptor');}})();(function(){'use strict';angular.module('app.common').config(config);config.$inject=['vcRecaptchaServiceProvider'];function config(vcRecaptchaServiceProvider){vcRecaptchaServiceProvider.setDefaults({key:'6Lc0q5MUAAAAAFcUOihrzPCDxiIJ1B85uECvQy4f',theme:'light',size:'normal'});}})();(function(){angular.module('app.common').factory('httpcacheinterceptor',httpcacheinterceptor);httpcacheinterceptor.$inject=['cacheservice'];function httpcacheinterceptor(cacheservice){var interceptor={request:request};return interceptor;function request(config){if(config.method=='POST'){cacheservice.removeAll();}
return config;}}})();(function(){angular.module('app.common').factory('httpqueuinginterceptor',httpqueuinginterceptor);httpqueuinginterceptor.$inject=['$q','$rootScope'];function httpqueuinginterceptor($q,$rootScope){var _queue=[];var currentStateName;function _executeTop(){if(_queue.length===0){return;}
_queue[0].exec();}
function _cancelAll(){angular.forEach(_queue,function(p){p.canceller.resolve();});_queue.length=0;}
return{request:function(config){$rootScope.$on('$stateChangeStart',function(event,toState,toParams,fromState,fromParams){if(currentStateName&&currentStateName!==toState.name){_cancelAll();}
currentStateName=toState.name})
if(config.queue){var deferred=$q.defer();var canceller=$q.defer();config.timeout=canceller.promise;_queue.push({exec:function(){deferred.resolve(config);},canceller:canceller});if(_queue.length===1){_executeTop();}
return deferred.promise;}else{return config;}},response:function(response){if(response.config.queue){_queue.shift();_executeTop();}
return response;},responseError:function(responseError){if(responseError.config.queue){_queue.shift();_executeTop();}
return $q.reject(responseError);},};}})();(function(){'use strict';angular.module('app.common').controller('MasonryController',MasonryController);angular.module('infinite-scroll').value('THROTTLE_MILLISECONDS',1000);MasonryController.$inject=['$scope','postservice','signinservice','$state','constants','likeservice','$window','$rootScope','events','homeservice','gaservice','mkdservice','gaevents','$preloaded','$timeout','$location'];function MasonryController($scope,postservice,signinservice,$state,constants,likeservice,$window,$rootScope,events,homeservice,gaservice,mkdservice,gaevents,$preloaded,$timeout,$location){var vm=this;vm.pageIndex=1;vm.pageSize=24;vm.nextPage=nextPage;vm.allPosts=[];vm.postIds=[];vm.openPostModal=openPostModal;vm.toggleLike=toggleLike;vm.circleIn=circleIn;vm.isMobile=constants.isMobile;vm.imgDivStyle=imgDivStyle;vm.playBtnTop=playBtnTop;vm.loading=true;vm.isLoading=isLoading;vm.currentState=$state.current.name;vm.isSelf=false;vm.loaded=false;vm.isEmptyResult=isEmptyResult;vm.distance=constants.preloadDistance;vm.addedCircle={};vm.showAddedCircle=false;vm.isAddedCircleVisible=isAddedCircleVisible;vm.getAddedCircleName=getAddedCircleName;vm.isVideo=isVideo;vm.isLive=isLive;vm.isBuyable=isBuyable;vm.getTitle=getTitle;vm.isSoldOut=isSoldOut;vm.isShopEvent=false;activate();function activate(){if(signinservice.currentUser!=null){vm.isSelf=$scope.searchId==signinservice.currentUser.userId;}
var postPerRow=calRowPostCount();var rowPerPage=calPageRows();vm.pageSize=postPerRow*rowPerPage;if(vm.currentState=='look'){if(vm.pageSize>20){vm.pageSize=20;}}
if(vm.currentState=='shoplist'){vm.pageSize=20;}
if(vm.currentState=='home'){renderFirstRow(postPerRow);}}
function renderFirstRow(postPerRow){var preloaded=$preloaded['preloaded'];var requestRegion=$('#__request-region__').attr('region');var filterPosts=homeservice.getFilterPosts();var len=(preloaded.length>=postPerRow?postPerRow:preloaded.length);for(var i=0;i<len;i++){var pp=preloaded[i];if(pp.postType=='BUYABLE'){if(filterPosts[requestRegion]&&filterPosts[requestRegion].indexOf(pp.id)!=-1){vm.allPosts.push(pp);vm.postIds.push(pp.id);}}else{vm.allPosts.push(pp);vm.postIds.push(pp.id);}}}
function calRowPostCount(){var w=$('#outbox').width();var pw=w<constants.maxMobileWidth?180:250;var r=Math.floor(w/pw);if(r){return r;}
if(pw==250){return 4;}else{return 2;}}
function calPageRows(){var w=$('#outbox').width();var h=$window.innerHeight;var ph=w<constants.maxMobileWidth?200:250;return Math.ceil(h/ph);}
function nextPage(){resetPageSizeIfNeeds();for(var i=0;i<constants.preloadPages;i++){if(vm.currentState=='look'&&mkdservice.isFromMKD()){vm.loading=true;$scope.listposts(vm.pageIndex++,vm.pageSize,$scope.searchId).then(function(response){vm.loading=false;var posts=filterDuplicate(response);posts=filterUnsupportMKD(posts);if($scope.filter){posts=$scope.filter(posts);}
vm.allPosts.pushArray(posts);vm.loaded=true;});}else{vm.loading=true;$scope.listposts(vm.pageIndex++,vm.pageSize,$scope.searchId).then(function(response){vm.loading=false;var posts=filterDuplicate(response);if($scope.filter){posts=$scope.filter(posts);}
vm.allPosts.pushArray(posts);vm.loaded=true;});}}}
function resetPageSizeIfNeeds(){if($scope.maxPageSize&&vm.pageSize>$scope.maxPageSize){vm.pageSize=$scope.maxPageSize||20;}}
function filterDuplicate(response){var elements=[];for(var i=0;i<response.data.length;i++){var element=response.data[i];if(vm.postIds.indexOf(element.id)!=-1){continue;}
vm.postIds.push(element.id);elements.push(element);}
return elements}
function filterUnsupportMKD(posts){var elements=[];for(var i=0;i<posts.length;i++){var element=posts[i];if(element.postType!='YMK_LOOK'){continue;}
if(!element.extLookUrl){continue;}
var regexp=/downloadurl=(.*)(mklk)/;if(!element.extLookUrl.match(regexp)){continue;}
vm.postIds.push(element.id);elements.push(element);}
return elements;}
function isEmptyResult(){if(!vm.loaded){return false;}
return vm.allPosts.length==0;}
function openPostModal(postId,listIdx){eventTrack(gaevents.post.action.clicked,postId);postservice.getPostDetail(postId).then(function(result){var post=result.data;var isPrivate=false;if(post&&post.circles&&!post.circles[0].display){if(!signinservice.isSignIn){isPrivate=true;}else if(signinservice.currentUser.usrId!=post.author.userId){isPrivate=true;}}
$state.go('modal.post',{postId:postId,listIdx:listIdx,previousState:vm.currentState,modal:true},{notify:false,reload:true});})}
function circleIn(postId){if(signinservice.isSignIn){$state.go('circle-in-modal.native',{sourcePostId:postId,previousState:vm.currentState,firstState:false},{notify:false,reload:true});var unsubscribeEvent=$rootScope.$on(events.CIRCLE_IN_SUCCESS,function(event,params){unsubscribeEvent();vm.addedCircle=params.circle;vm.showAddedCircle=true;$timeout(function(){vm.showAddedCircle=false},2000);});}else{var referer='/api/post/circleit/native?sourcePostId='+postId;$rootScope.$broadcast(events.LOGIN_REQUIRED,{referer:referer});}}
function calHeight(height,width){var _w=$('.content_box').width();return Math.floor((height*(_w/width)));}
function calTop(height,width){var _bw=($('.playBtn').width()/2);var h=calHeight(height,width);return((h/2)-_bw);}
function toggleLike(post,$event){$event.stopPropagation();toggleLikeCss(false,$event.currentTarget);setTimeout(function(){var isLiked=!post.isLiked;likeservice.likePost(post.id,isLiked).then(function(success){post.isLiked=isLiked;post.numOfLikes+=(isLiked)?1:-1;toggleLikeCss(true,$event.currentTarget,post.isLiked);checkLikesOrComments(post.numOfLikes);},function(error){toggleLikeCss(true,$event.currentTarget,post.isLiked);});eventTrack(isLiked?gaevents.post.action.liked:gaevents.post.action.unliked,post.id);var listener=$rootScope.$on(events.LOGIN_REQUIRED,function(event,params){toggleLikeCss(true,$event.currentTarget,post.isLiked);listener();});},800);}
function checkLikesOrComments(count){if(count<=1){reloadMasonry();}}
function reloadMasonry(){$rootScope.$broadcast('masonry.reload')}
function toggleLikeCss(isDone,ele,isLiked){if(isDone){angular.element(ele).removeClass().addClass('fa fa-heart '+(isLiked?'red':'white'));}else{angular.element(ele).removeClass().addClass('fa fa-spinner fa-pulse white');}}
function imgDivStyle(post,elementId){if(!post.photo.metadata.height||!post.photo.metadata.width){getPhotoMeta(post,elementId);return;}
$("#"+elementId).css({"background-color":post.photo.metadata.dominantedColor,"height":calHeight(post.photo.metadata.height,post.photo.metadata.width),"border-radius":"0.25em 0.25em 0 0"});}
function playBtnTop(post,elementId){$("#"+elementId).css({"top":calTop(post.photo.metadata.height,post.photo.metadata.width)});}
function isLoading(){return vm.loading;}
$scope.$on(events.COMMENT_COUNT_CHANGED,function(event,count,listIdx){if(typeof listIdx!=='undefined'){vm.allPosts[listIdx].numOfComments=count;checkLikesOrComments(count);}});$scope.$on(events.POST_LIKE_COUNT_CHANGED,function(event,isLiked,count,listIdx){if(typeof listIdx!=='undefined'){vm.allPosts[listIdx].isLiked=isLiked;vm.allPosts[listIdx].numOfLikes=count;checkLikesOrComments(count);}});function eventTrack(action,label){gaservice.eventTrack(gaevents.post.category,action,label);}
function getPhotoMeta(post,elementId){var img=new Image();img.onload=function(){post.photo.metadata.height=this.height;post.photo.metadata.width=this.width;vm.imgDivStyle(post,elementId);}
img.src=post.photo.metadata.originalUrl;}
function isAddedCircleVisible(){return vm.showAddedCircle;}
function getAddedCircleName(){return vm.addedCircle.circleName;}}
function isVideo(post){if(post.photo.metadata.video){return true;}
if(post.photo.metadata.redirectUrl&&post.photo.metadata.redirectUrl.indexOf('mp4')>-1){return true;}
if(post.tags&&post.tags.liveTag&&post.tags.liveTag.replayUrl&&(post.tags.liveTag.replayUrl.indexOf('m3u8')>-1||post.tags.liveTag.replayUrl.indexOf('mp4')>-1)){return true;}
return false;}
function isLive(post){if(post.tags&&post.tags.liveTag&&post.tags.liveTag.replayUrl){var isAfter=moment().isAfter(post.tags.liveTag.startTime);var isBefore=moment().isBefore(post.tags.liveTag.endTime);return isAfter&&isBefore;}
return false;}
function isBuyable(post){if(post.postType=='BUYABLE'){return true;}
return false;}
function getTitle(post,seq){if(post.tags&&post.tags.sTitles&&post.tags.sTitles.length>0){switch(seq){case 0:return post.tags.sTitles[seq]?post.tags.sTitles[seq]:'';case 1:case 2:return post.tags.sTitles[seq]?post.tags.sTitles[seq]:'';case 3:if(post.tags.sTitles[seq]){var expire=post.tags.sTitles[seq].split(':')[1].trim();var d=new Date(expire/10000,(expire%10000/100)-1,expire%100);return d;}
return'';default:return'';}}else if(post.tags&&post.tags.actBtns&&post.tags.actBtns.length>0){switch(seq){case 0:var title=post.tags.actBtns[seq];return title.desc=='Add to Cart'?'':title.desc;case 1:default:return'';}}
return'';}
function isSoldOut(post){if(post.tags&&post.tags.actBtns){if(!post.tags.actBtns[0]){return true;}
var buyObj=post.tags.actBtns[0];if(buyObj.link==''){return true;}}
return false;}})();(function(){'use strict';angular.module('app.common').controller('HeadController',HeadController);HeadController.$inject=['$rootScope','events','$document'];function HeadController($rootScope,events,$document){var vm=this;vm.defaultTitle;vm.title;vm.defaultDescription;vm.description;vm.alternatePrefix={ios:'ios-app://1066152001',android:'android-app://com.perfectcorp.beautycircle'}
vm.alternate={ios:vm.alternatePrefix.ios+'/ybc/discover',android:vm.alternatePrefix.android+'/ybc/discover'}
activate();function activate(){vm.defaultTitle=$document.find('title').html();vm.defaultDescription=$document.find('description').html();$rootScope.$on(events.META_CHANGED,function(event,params){if(params.title){vm.title=params.title;}else{vm.title=vm.defaultTitle;}
if(params.description){vm.description=params.description;}else{vm.description=vm.defaultDescription;}
var uri=params.alternateUri||'/ybc/discover';vm.alternate.ios=vm.alternatePrefix.ios+uri;vm.alternate.android=vm.alternatePrefix.android+uri;})}}})();(function(){'use strict';angular.module('app.common').constant("gaevents",{signin:{category:"SignIn",action:{email_signup:"Email SignUp",email_validate:"Email Validate",email_signin:"Email SignIn",fb_signup:"Fb SignUp",fb_signin:"FB SignIn",wb_signup:"WB SignUp",wb_signin:"WB SignIn"}},welcome:{category:"Welcome",action:{email_signup:"Email SignUp",email_validate:"Email Validate",email_signin:"Email SignIn",fb_signup:"Fb SignUp",fb_signin:"FB SignIn",explored:"Explored"}},welcome_m:{category:"Welcome_m",action:{continue_app:"Continue with App",continue_website:"Continue with Website"}},post:{category:"Post",action:{clicked:"Clicked",liked:"Liked",unliked:"UnLiked",commented:"Commented",fbShared:"FBShared",clicked_external_link:"Clicked External Link",tried_it:"Tried it",played_video:"Played Video"}},comment:{category:"Comment",action:{liked:"Liked",unliked:"UnLiked"}},app_store:{category:"AppStore",action:{clicked:"Clicked",ybc_clicked:"YBC_Clicked",ymk_clicked:"YMK_Clicked",ycn_clicked:"YCN_Clicked",ycp_clicked:"YCP_Clicked",ycf_clicked:"YCF_Clicked",ycs_clicked:"YCS_Clicked",ycvb_clicked:"YCVB_Clicked",ycv_clicked:"YCV_Clicked",amb_clicked:"AMB_Clicked",yct_clicked:"YCT_Clicked",ymk4b_clicked:"YMK4B_Clicked",yce_clicked:"YCE_Clicked",yca_clicked:"YCA_Clicked",}},google_play:{category:"GooglePlay",action:{clicked:"Clicked",ybc_clicked:"YBC_Clicked",ymk_clicked:"YMK_Clicked",ycn_clicked:"YCN_Clicked",ycp_clicked:"YCP_Clicked",ycf_clicked:"YCF_Clicked",ycs_clicked:"YCS_Clicked",ycvb_clicked:"YCVB_Clicked",ycv_clicked:"YCV_Clicked",amb_clicked:"AMB_Clicked",yct_clicked:"YCT_Clicked",ymk4b_clicked:"YMK4B_Clicked",yce_clicked:"YCE_Clicked",yca_clicked:"YCA_Clicked",}}});})();(function(){angular.module('app.common').directive('accessibleForm',accessibleForm);accessibleForm.$inject=[];function accessibleForm(){return{restrict:'A',link:function(scope,elem){elem.on('submit',function(){var firstInvalid=elem[0].querySelector('.ng-invalid');if(firstInvalid){firstInvalid.focus();}});}}}})();(function(){angular.module('app.common').directive('backToTop',backToTop);function backToTop(){return{restrict:'E',replace:true,template:'<div class="back-to-top"></div>',link:function($scope,element,attrs){$(window).scroll(function(){if($(window).scrollTop()<=0){$(element).fadeOut();}else{$(element).fadeIn();}});$(element).on('click',function(){$('html, body').animate({scrollTop:0},'fast');});}}}})();(function(){angular.module('app.common').directive('resize',resize);resize.$inject=['$window'];function resize($window){return{restrict:"A",scope:{callback:"&"},link:function(scope,element){var w=angular.element($window);scope.getWindowDimensions=function(){return{'h':w.height(),'w':w.width()};};scope.$watch(scope.getWindowDimensions,function(newValue,oldValue){scope.callback({id:element[0].id});},true);w.bind('resize',function(){scope.$apply();});}}};})();(function(){'use strict';angular.module('app.common').run(runBlock);runBlock.$inject=['$rootScope','events','modalservice'];function runBlock($rootScope,events,modalservice){$rootScope.$on(events.MODAL_OPEN,function(event,params){modalservice.addModal(params);});}})();(function(){'use strict';angular.module('app.common').run(runBlock);runBlock.$inject=['$rootScope','events','modalservice'];function runBlock($rootScope,events,modalservice){$rootScope.$on(events.MODAL_CLOSE,function(event,params){modalservice.closeModal(params.modalName);});}})();(function(){angular.module('app.common').factory('cacheservice',cacheservice);cacheservice.$inject=['$cacheFactory'];function cacheservice($cacheFactory){var service={cache:$cacheFactory('bcw-http-cache'),removeAll:removeAll};return service;function removeAll(){service.cache.removeAll();}}})();(function(){angular.module('app.common').factory('modalservice',modalservice);function modalservice(){var service={modals:[],addModal:addModal,closeModal:closeModal}
return service;function addModal(params){service.modals.push(params);}
function closeModal(modalName){var tmp=[];for(var i=0;i<service.modals.length;i++){var modal=service.modals[i];if(modal.modalName==modalName){modal.modalInstance.close();}else{tmp.push(modal);}}
service.modals=tmp;}}})();(function(){'use strict';angular.module('app.common').factory('facebookservice',facebookservice);facebookservice.$inject=['$q','Facebook','$window'];function facebookservice($q,Facebook,$window){var service={checkLoginStatusOrLogin:checkLoginStatusOrLogin,share:share};return service;function checkLoginStatusOrLogin(){var deferred=$q.defer();Facebook.login(function(response){if(response.status==='connected'){deferred.resolve(response);}else{deferred.reject(response);}},{scope:'public_profile,user_friends,email'});return deferred.promise;}
function share(href){$window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(href),'sharer','toolbar=0,status=0,width=626,height=436');}}})();(function(){'use strict';angular.module('app.common').factory('weiboservice',weiboservice);weiboservice.$inject=['$http','$q','$window'];function weiboservice($http,$q,$window){activate();var service={login:login};return service;var authDefer=$q.defer();function activate(){$window.addEventListener('message',onMessage);}
function login(){return authorize().then(function(response){return loginResponse('connected',response);})['catch'](function(error){console.log('weiboservice.login error: '+error);return $q.reject(loginResponse('unknown',null));});}
function loginResponse(status,authResponse){return{status:status,authResponse:authResponse};}
function authorize(){var deferred=$q.defer();var url='/login/weibo-login.action?authorize'
$window.open(url,'auth_window','toolbar=0,status=0,width=600,height=455');authDefer=deferred;return deferred.promise;}
function getOrigin(){var location=window.location;var origin=location.origin;if(!origin){origin=location.protocol+"//"+location.hostname+(location.port?':'+location.port:'');}
return origin;}
function onMessage(e){if(e.origin!==getOrigin()){return;}
var deferred=authDefer;authDefer=$q.defer();var authResponse=JSON.parse(e.data);if(authResponse.error){deferred.reject();return;}
deferred.resolve(authResponse);}}})();(function(){angular.module('app.common').factory('deviceservice',deviceservice);deviceservice.$inject=['deviceDetector','$document','$location'];function deviceservice(deviceDetector,$document,$location){var service={isIOS:isIOS,isAndroid:isAndroid,getBrowser:getBrowser,getAppNameByIos13:getAppNameByIos13,isSafari:isSafari,isChrome:isChrome,isIE:isIE,isIOS9:isIOS9,isIOS13:isIOS13,isFacebook:isFacebook,isInstagram:isInstagram,isUnableToOpenApp:isUnableToOpenApp,isWeibo:isWeibo,isWeixin:isWeixin,isCrawler:isCrawler,isLine:isLine,isYoucam:isYoucam,isYMK:isYMK,isYCP:isYCP,isYCN:isYCN,isYBC:isYBC,isYCF:isYCF,isYCS:isYCS,isYCVB:isYCVB,isYCV:isYCV,isAMB:isAMB,isYMK4B:isYMK4B,isYCT:isYCT,isYCE:isYCE,isYCA:isYCA,};return service;function isYoucam(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('cyberlink')!=-1){return true;}
if(ua.indexOf('perfectcorp')!=-1){return true;}
if(ua.indexOf('youcammakeup')!=-1){return true;}
if(ua.indexOf('ymkbusiness')!=-1){return true;}
if(ua.indexOf('youcamshop')!=-1){return true;}
if(ua.indexOf('beautycircle')!=-1){return true;}
if(ua.indexOf('ymk')!=-1){return true;}
if(ua.indexOf('ycs')!=-1){return true;}
return false;}
function isYMK(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('youcammakeupcn')!=-1){return true;}
return deviceDetector.raw.userAgent.indexOf('youcammakeup')!=-1;}
function isYCP(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('youcamperfectcn')!=-1){return true;}
return deviceDetector.raw.userAgent.indexOf('youperfect')!=-1;}
function isYCN(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('YouCamNail')!=-1){return true;}
return ua.indexOf('com.perfectcorp.ycn')!=-1;}
function isYCF(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('YouCamFun')!=-1){return true;}
return ua.indexOf('com.perfectcorp.ycf')!=-1;}
function isYBC(){return deviceDetector.raw.userAgent.indexOf('beautycircle')!=-1;}
function isYCS(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('youcamshop')!=-1){return true;}
if(ua.indexOf('com.perfectcorp.ycs')!=-1){return true;}
if(ua.indexOf('com.perfectcorp.en.beautycircle')!=-1){return true;}
return ua.indexOf('com.perfectcorp.beautycircle')!=-1;}
function isYCVB(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('YouCamVideo')!=-1){return true;}
if(ua.indexOf('youcamvideo')!=-1){return true;}
return ua.indexOf('com.perfectcorp.ycvb')!=-1;}
function isYCV(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('YouCamCut')!=-1){return true;}
if(ua.indexOf('youcamcut')!=-1){return true;}
if(ua.indexOf('ycv')!=-1){return true;}
return ua.indexOf('com.perfectcorp.ycv')!=-1;}
function isYMK4B(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('ymkbusiness')!=-1){return true;}
return ua.indexOf('com.perfectcorp.ymkbusiness')!=-1;}
function isAMB(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('amway')!=-1){return true;}
return ua.indexOf('com.perfectcorp.amb')!=-1;}
function isYCT(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('yct')!=-1){return true;}
return ua.indexOf('com.perfectcorp.yct')!=-1;}
function isYCE(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('yce')!=-1){return true;}
return ua.indexOf('com.perfectcorp.yce')!=-1;}
function isYCA(){var ua=deviceDetector.raw.userAgent;if(ua.indexOf('yca')!=-1){return true;}
return ua.indexOf('com.perfectcorp.yca')!=-1;}
function isCrawler(){var ua=deviceDetector.raw.userAgent;return/googlebot|facebookexternalhit|facebookbot|twitterbot|pinterest/i.test(ua)===true;}
function isIOS(){return deviceDetector.os=='ios';}
function isAndroid(){return deviceDetector.os=='android';}
function getBrowser(){return deviceDetector.browser;}
function isSafari(){return deviceDetector.browser=='safari';}
function isChrome(){return deviceDetector.browser=='chrome';}
function isLine(){var ua=deviceDetector.raw.userAgent;return ua.indexOf('Line')!=-1;}
function isWeibo(){var ua=deviceDetector.raw.userAgent;return/weibo/i.test(ua)===true}
function isWeixin(){var ua=deviceDetector.raw.userAgent;return/weixin|micromessenger/i.test(ua)===true}
function isUnableToOpenApp(){var ua=deviceDetector.raw.userAgent;if(/weixin|weibo|twitter|micromessenger/i.test(ua)===true){return true;}
var referrer=$document[0].referrer;if(/\/\/t.co\/|tumblr.com/i.test(referrer)===true){return true;}
return false;}
function isIE(){return deviceDetector.browser=='ie';}
function isFacebook(){var ua=deviceDetector.raw.userAgent;if(/fban/i.test(ua)===true){return true;}
if(/fb4a/i.test(ua)===true){return true;}
if(/fb_iab/i.test(ua)===true){return true;}
return false;}
function isInstagram(){var ua=deviceDetector.raw.userAgent;if(/instagram/i.test(ua)===true){return true;}
return false;}
function isIOS9(){if(deviceDetector.os=='ios'){var userAgent=deviceDetector.raw.userAgent;var versions=String(userAgent.match(/[0-9]+_[0-9]+/)).split('_');var iosVersion=parseFloat(String(versions[0]+'.'+versions[1]));return iosVersion>=9;}
return false;}
function isIOS13(){if(/iPad|iPhone|iPod/i.test(navigator.platform)||(navigator.platform==='MacIntel'&&navigator.maxTouchPoints>1)){var userAgent=deviceDetector.raw.userAgent;var safariVersions=String(userAgent.match(/Version\/[0-9]+.[0-9]+/)[0].replace('Version/','')).split('.');var safariVersion=parseFloat(String(safariVersions[0]+'.'+safariVersions[1]));return safariVersion>=13;}
return false;}
function getAppNameByIos13(appName){if(!appName){return'ymk';}
var app=appName.toLowerCase();if(appName!='yct'){if(appName=='ypa'){return'ycp';}
return app;}
if(isAndroid()){return'ymk';}
return isIOS13()?'yct':'ymk';}}})();(function(){angular.module('app.common').factory('applinkservice',applinkservice);applinkservice.$inject=['$window','$httpParamSerializer','deviceservice','constants','gaservice','gaevents','signinservice','$timeout','cookieservice','$location','$document'];function applinkservice($window,$httpParamSerializer,deviceservice,constants,gaservice,gaevents,signinservice,$timeout,cookieservice,$location,$document){var service={launchAppViaBCSDeeplink:launchAppViaBCSDeeplink,launchApp:launchApp,launchAppViaIframe:launchAppViaIframe,openStoreLink:openStoreLink,getStoreLink:getStoreLink,openAppLink:openAppLink,getUniversalLink:getUniversalLink,getAppUrl:getAppUrl,getFallbackUrl:getFallbackUrl,getProductUrl:getProductUrl,getSchemeByApp:getSchemeByApp,isViewableOnBCWeb:isViewableOnBCWeb,getParameterByName:getParameterByName,getMarket:getMarket};return service;function launchApp(appUrl,fallbackUrl,isFromContinuePage){if(deviceservice.isIOS()){if(deviceservice.isIOS9()){if(cookieservice.isFromWB()){$timeout(function(){$window.location.href=fallbackUrl;},5000);$window.location.href=appUrl;return;}
if(isTheSameApp(appUrl)){$window.location.href=appUrl;return;}
if(isYoucam()&&!isFromContinuePage){launchAppViaIframe(appUrl,fallbackUrl,500);return;}
$timeout(function(){$window.location.href=fallbackUrl;},1000);$window.location.href=appUrl;return;}else{launchAppViaIframe(appUrl,fallbackUrl,1500);}}
if(deviceservice.isIOS13()){$timeout(function(){$window.location.href=fallbackUrl;},500);$window.location.href=appUrl;return;}
if(deviceservice.isAndroid()){if(appUrl.startsWith('ycvb')){$window.location.href=fallbackUrl;return;}
if(isTheSameApp(appUrl)){$window.location.href=appUrl;return;}
if(isYoucam()||deviceservice.isLine()){$timeout(function(){$window.location.href=fallbackUrl.indexOf('?')==-1?fallbackUrl+'?r=1':fallbackUrl+'&r=1';},500);$window.location.href=appUrl;return;}
if(deviceservice.isFacebook()||deviceservice.isInstagram()){launchAppViaIframe(appUrl,fallbackUrl,1500);return;}
if(deviceservice.isChrome()){if(!isTheSameApp(appUrl)){$timeout(function(){$window.location.href=fallbackUrl.indexOf('?')==-1?fallbackUrl+'?r=1':fallbackUrl+'&r=1';},3000);}
$timeout(function(){$window.location.href=fallbackUrl.indexOf('?')==-1?fallbackUrl+'?r=1':fallbackUrl+'&r=1';},500);$window.location.href=appUrl;return;}
launchAppViaIframe(appUrl,fallbackUrl,1500);}}
function isYoucam(){return deviceservice.isYoucam();}
function isColorPicking(appUrl){if(appUrl.indexOf('brand_sku_preview')!==-1){return true;}
if(appUrl.indexOf('brand_sku_colorPicker')!==-1){return true;}
if(appUrl.indexOf('action_createlook')!==-1){return true;}
return false;}
function isTheSameApp(appUrl){if(appUrl.indexOf('ybc://')!=-1){return deviceservice.isYBC();}
if(appUrl.indexOf('ymk://')!=-1||appUrl.indexOf('ymkbc://')!=-1){return deviceservice.isYMK();}
if(appUrl.indexOf('ycp://')!=-1||appUrl.indexOf('ycpbc://')!=-1||appUrl.indexOf('ypa://')!=-1){return deviceservice.isYCP();}
if(appUrl.indexOf('ycn://')!=-1||appUrl.indexOf('ycnbc://')!=-1){return deviceservice.isYCN();}
if(appUrl.indexOf('ycf://')!=-1){return deviceservice.isYCF();}
if(appUrl.indexOf('ycs://')!=-1||appUrl.indexOf('ycsbc://')!=-1){return deviceservice.isYCS();}
if(appUrl.indexOf('ycvb://')!=-1){return deviceservice.isYCVB();}
if(appUrl.indexOf('ycv://')!=-1){return deviceservice.isYCV();}
if(appUrl.indexOf('ymk4b://')!=-1){return deviceservice.isYMK4B();}
if(appUrl.indexOf('amb://')!=-1){return deviceservice.isAMB();}
if(appUrl.indexOf('yct://')!=-1){return deviceservice.isYCT();}
if(appUrl.indexOf('yce://')!=-1){return deviceservice.isYCE();}
if(appUrl.indexOf('yca://')!=-1){return deviceservice.isYCA();}
return false;}
function launchAppViaIframe(appUrl,fallbackUrl,timeout){var timer=$timeout(function(){$window.location.href=fallbackUrl;},timeout);var hidden='';var visibilityChange='';if(typeof $window.document.hidden!=="undefined"){hidden="hidden";visibilityChange="visibilitychange";}else if(typeof $window.document.mozHidden!=="undefined"){hidden="mozHidden";visibilityChange="mozvisibilitychange";}else if(typeof $window.document.webkitHidden!=="undefined"){hidden="webkitHidden";visibilityChange="webkitvisibilitychange";}
var handleVisibilityChange=function(){$timeout.cancel(timer);}
if(typeof $window.document.addEventListener==="undefined"||typeof $window.document[hidden]==="undefined"){supportVisiblityApi=false;}else{supportVisiblityApi=true;$window.document.addEventListener(visibilityChange,handleVisibilityChange,false);}
var iframe=document.createElement("iframe");iframe.onload=function(){$timeout.cancel(timer);iframe.parentNode.removeChild(iframe);$window.location.href=appUrl;};iframe.src=appUrl;iframe.setAttribute("style","display:none;");document.body.appendChild(iframe);}
function getUniversalLink(appUrl,trackingCode){var tmp=appUrl.split("://");var scheme=tmp[0];var rest=tmp[1];var ap=getAppByScheme(scheme);var r=constants.universalLinkPrefix+'/ap/'+scheme+'/'+rest;if(appUrl.indexOf('?')!=-1){return r+'&fallbackToStore=1&ap='+ap+'&t='+trackingCode;}else{return r+'?fallbackToStore=1&ap='+ap+'&t='+trackingCode;}}
function getAppByScheme(scheme){if(scheme=='ymkbc'||scheme=='ymk'){return'ymk';}
if(scheme=='ycpbc'||scheme=='ycp'||scheme=='ypa'){return'ycp';}
if(scheme=='ycnbc'||scheme=='ycn'){return'ycn';}
if(scheme=='ycf'){return'ycf';}
if(scheme=='ycsbc'||scheme=='ycs'){return'ycs';}
if(scheme=='ycvb'){return'ycvb';}
if(scheme=='ycv'){return'ycv';}
if(scheme=='ymk4b'){return'ymk4b';}
if(scheme=='amb'){return'amb';}
if(scheme=='yct'){return'yct';}
if(scheme=='yce'){return'yce';}
if(scheme=='yca'){return'yca';}
return'ycp';}
function openAppLink(path,postfix,platform){if(constants.isMobile){eventTrack(postfix,platform,'ymk');return launchAppViaBCSDeeplink(path,postfix);}
openStoreLink(postfix,platform,'ymk')}
function getMarket(appName){var app=appName?appName.toLowerCase():'';if(app=='ybc'){return constants.ycpmarket;}
if(app=='ymk'){return constants.ymkmarket;}
if(app=='ycp'){return constants.ycpmarket;}
if(app=='ypa'){return constants.ycpmarket;}
if(app=='ycn'){return constants.ycnmarket;}
if(app=='ycf'){return constants.ycfmarket;}
if(app=='ycs'){return constants.ycsmarket;}
if(app=='ycvb'){return constants.ycvbmarket;}
if(app=='ycv'){return constants.ycvmarket;}
if(app=='ymk4b'){return constants.ymk4bmarket;}
if(app=='pdr'){return constants.pdrmarket;}
if(app=='amb'){return constants.ambmarket;}
if(app=='yct'){return constants.yctmarket;}
if(app=='yce'){return constants.ycemarket;}
if(app=='yca'){return constants.ycamarket;}
return constants.ycpmarket;}
function getStoreLink(trackingCode,platform,appName,trackingSource){var market=getMarket(appName);var source=trackingSource?trackingSource:'bc_web';var search=$location.search();if(platform=='ios'){if(appName=='pdr'){return market.ios;}
var storeLink=market.ios+source+'_'+trackingCode+'&at='+source;var ppid=search&&search.ppid;if(ppid){storeLink+='&ppid='+ppid;}
console.log('[store link] '+storeLink);return storeLink;}
var locale='en_US';if(search&&search.locale){locale=search.locale;}else{locale=$document.find('#currentUser #locale').attr('value');}
if(platform=='android'){if(locale=='zh_CN'){return market.androidapk;}}
var storeLink=market.android+'utm_source%3D'+source+'%26utm_campaign%3D'+trackingCode;console.log('[store link] '+storeLink);return storeLink;}
function openStoreLink(postfix,platform,appName){eventTrack(postfix,platform,appName);$window.open(getStoreLink(postfix,platform,appName));}
function launchAppViaBCSDeeplink(path,postfix){var referrer=postfix;if(deviceservice.isIOS()){referrer='bc_web_'+postfix;}
$window.location.href='https://www.beautycircle.com/m/continue?appName='+getAppName(path)+'&r=1&appUrl='+encodeURIComponent(path);}
function getAppName(path){var strs=path.split("://");if(strs&&strs.length>0){if(strs[0].toUpperCase()=='YCPBC'){return'YCP';}
return strs[0].toUpperCase();}
return"YMK";}
function eventTrack(postfix,platform,appName){var category=(platform=='ios')?gaevents.app_store.category:gaevents.google_play.category;var actions=getGaAction(postfix,platform,appName);for(var i=0;i<actions.length;i++){gaservice.eventTrack(category,actions[i],postfix);}}
function getGaAction(postfix,platform,appName){var actions=[];if(platform=='ios'){actions.push(gaevents.app_store.action.clicked);if(appName=='ymk'){actions.push(gaevents.app_store.action.ymk_clicked);}else if(appName=='ycn'){actions.push(gaevents.app_store.action.ycn_clicked);}else if(appName=='ycf'){actions.push(gaevents.app_store.action.ycf_clicked);}else if(appName=='ybc'){actions.push(gaevents.app_store.action.ybc_clicked)}else if(appName=='ycs'){actions.push(gaevents.app_store.action.ycs_clicked)}else if(appName=='ycvb'){actions.push(gaevents.app_store.action.ycvb_clicked)}else if(appName=='ycv'){actions.push(gaevents.app_store.action.ycv_clicked)}else if(appName=='ymk4b'){actions.push(gaevents.app_store.action.ymk4b_clicked)}else if(appName=='amb'){actions.push(gaevents.app_store.action.amb_clicked)}else if(appName=='yct'){actions.push(gaevents.app_store.action.yct_clicked)}else if(appName=='yce'){actions.push(gaevents.app_store.action.yce_clicked)}else if(appName=='yca'){actions.push(gaevents.app_store.action.yca_clicked)}}else{actions.push(gaevents.google_play.action.clicked);if(appName=='ymk'){actions.push(gaevents.google_play.action.ymk_clicked);}else if(appName=='ycn'){actions.push(gaevents.google_play.action.ycn_clicked);}else if(appName=='ycf'){actions.push(gaevents.google_play.action.ycf_clicked);}else if(appName=='ybc'){actions.push(gaevents.google_play.action.ybc_clicked)}else if(appName=='ycs'){actions.push(gaevents.google_play.action.ycs_clicked)}else if(appName=='ycvb'){actions.push(gaevents.google_play.action.ycvb_clicked)}else if(appName=='ycv'){actions.push(gaevents.google_play.action.ycv_clicked)}else if(appName=='ymk4b'){actions.push(gaevents.google_play.action.ymk4b_clicked)}else if(appName=='amb'){actions.push(gaevents.google_play.action.amb_clicked)}else if(appName=='yct'){actions.push(gaevents.google_play.action.yct_clicked)}else if(appName=='yce'){actions.push(gaevents.google_play.action.yce_clicked)}else if(appName=='yca'){actions.push(gaevents.google_play.action.yca_clicked)}}
return actions;}
function isViewableOnBCWeb(uri){if(!uri){return false;}
if(uri.match(/^\/post\/[0-9]+/i)!=null){return true;}
if(uri.match(/^\/profile\/[0-9]+/i)!=null){return true;}
if(uri.match(/^\/circle\/[0-9]+/i)!=null){return true;}
if(uri.match(/^\/discover/i)!=null){return true;}
if(uri.match(/^\/shoplist/i)!=null){return true;}
if(uri.match(/^\/profile/i)!=null){return true;}
return false;}
function getSchemeByApp(app,uri){if(app=='ymk'){if(uri.indexOf('live_schedule')!=-1){return'ymkbc';}
if(uri.indexOf('live_show_schedule')!=-1){return'ymkbc';}
if(uri.indexOf('/event/')!=-1){return'ymkbc';}
if(uri.indexOf('/ymkevent/')!=-1){return'ymkbc';}
if(isViewableOnBCWeb(uri)){return'ymkbc';}else{return'ymk';}}
if(app=='ycp'||app=='ypa'){if(uri.indexOf('/event/')!=-1){return'ycpbc';}
if(uri.indexOf('challenge')!=-1){return'ycpbc';}
if(isViewableOnBCWeb(uri)){return'ycpbc';}else{return'ycp';}}
if(app=='ycn'){if(isViewableOnBCWeb(uri)){return'ycnbc';}else{return'ycn';}}
if(app=='ycs'){if(uri.indexOf('shoppost')!=-1){return'ycsbc';}
return'ycs';}
if(app=='ycf'){return'ycf';}
if(app=='ycvb'){return'ycvb';}
if(app=='ycv'){return'ycv';}
if(app=='ymk4b'){return'ymk4b';}
if(app=='amb'){return'amb';}
if(app=='yct'){return'yct';}
if(app=='yce'){return'yce';}
if(app=='yca'){return'yca';}
return'ycp';}
function getAppUrl(uri,app,queryString){var scheme=getSchemeByApp(app,uri);var qs=queryString?queryString.replace(/:%2F%2F/ig,"%3A%2F%2F"):'';var match=uri.match(/^\/(post)\/([0-9]+)/);if(match!=null){return scheme+'://'+match[1]+'/'+match[2]+qs;}
match=uri.match(/^\/(circle)\/([0-9]+)/);if(match!=null){return scheme+'://'+'circle/'+match[2]+qs;}
match=uri.match(/^\/(profile)\/([0-9]+)\/circles/);if(match!=null){return scheme+'://'+'profile/'+match[2]+'?tab=Circle';}
match=uri.match(/^\/(profile)\/([0-9]+)\/posts/);if(match!=null){return scheme+'://'+'profile/'+match[2]+'?tab=Post';}
match=uri.match(/^\/(profile)\/([0-9]+)\/likes/);if(match!=null){return scheme+'://'+'profile/'+match[2]+'?tab=Like';}
match=uri.match(/^\/(profile)\/([0-9]+)/);if(match!=null){return scheme+'://'+'profile/'+match[2]+qs;}
match=uri.match(/^\/looksalon/);if(match!=null){return scheme+'://looksalon';}
match=uri.match(/^\/category\/([0-9]+)/);if(match!=null){return scheme+'://discover/';}
match=uri.match(/^\/event\/([0-9]+)/);if(match!=null){return scheme+'://event/'+match[1]+qs;}
match=uri.match(/^\/contest\/([0-9]+)/);if(match!=null){return scheme+'://contest/'+match[1]+qs;}
match=uri.match(/^\/action_([a-zA-Z0-9]+)/);if(match!=null){var match2=uri.match(/^\/action_([a-zA-Z0-9]+)\/([a-zA-Z0-9_]+)/);if(match2!=null){return scheme+'://action_'+match2[1]+'/'+match2[2]+qs;}
return scheme+'://action_'+match[1]+qs;}
match=uri.match(/^\/feedback([a-zA-Z0-9]+)/);if(match!=null){return scheme+'://feedback'+match[1]+qs;}
match=uri.match(/^\/faq([a-zA-Z0-9]+)/);if(match!=null){return scheme+'://faq'+match[1]+qs;}
match=uri.match(/^\/video_tips([a-zA-Z0-9]+)/);if(match!=null){return scheme+'://video_tips'+match[1]+qs;}
match=uri.match(/^\/makeup_tips/);if(match!=null){return scheme+'://makeup_tips'+qs;}
match=uri.match(/^\/launcher/);if(match!=null){return scheme+'://launcher'+qs;}
match=uri.match(/^\/cutout/);if(match!=null){return scheme+'://cutout'+qs;}
match=uri.match(/^\/challenge/);if(match!=null){return scheme+'://challenge'+qs;}
match=uri.match(/^\/promotion_page\/([a-zA-Z0-9_]+)/);if(match!=null){return scheme+'://promotion_page/'+match[1]+qs;}
match=uri.match(/^\/iap_page/);if(match!=null){return scheme+'://iap_page/'+qs;}
match=uri.match(/^\/makeupcam/);if(match!=null){return scheme+'://makeupcam'+qs;}
match=uri.match(/^\/extra\/([a-zA-Z0-9_]+)/);if(match!=null){return scheme+'://extra/'+match[1]+qs;}
match=uri.match(/^\/shoplist\/([a-zA-Z0-9]+)/);if(match!=null){return scheme+'://shoplist/'+match[1]+qs;}
match=uri.match(/^\/ycs\/redeem\/([a-zA-Z0-9]+)/);if(match!=null){return scheme+'://launcher'+qs;}
match=uri.match(/^\/action\/exclusive/);if(match!=null){return scheme+'://action/exclusive'+qs;}
match=uri.match(/^\/action\/redirect\//);if(match!=null){var qs2=getEncodedRedirectUrl();return scheme+'://action_redirect/'+qs2;}
match=uri.match(/^\/shoppost/);if(match!=null){var qr=decodeURIComponent(queryString).match(/ycsbc:\/\/post\/([0-9]+)/);return scheme+'://post/'+qr[1]+qs;}
match=uri.match(/^\/profile\//);if(match!=null){return scheme+'://profile/'+qs;}
match=uri.match(/^\/live_schedule/);if(match!=null){return scheme+'://live_schedule/'+qs;}
match=uri.match(/^\/live_show_schedule/);if(match!=null){return scheme+'://live_show_schedule/'+qs;}
match=uri.match(/^\/action\/aicam\//);if(match!=null){return scheme+'://action/aicam/'+qs;}
match=uri.match(/^\/action\/haircam\//);if(match!=null){return scheme+'://action/haircam/'+qs;}
match=uri.match(/^\/action\/([a-zA-Z0-9_]+)\/([a-zA-Z0-9_]+)/);if(match!=null){return scheme+'://action/'+match[1]+'/'+match[2]+qs;}
match=uri.match(/^\/action\/([a-zA-Z0-9_]+)\//);if(match!=null){return scheme+'://action/'+match[1]+'/'+qs;}
match=uri.match(/^\/action\/([a-zA-Z0-9_]+)/);if(match!=null){return scheme+'://action/'+match[1]+'/'+qs;}
return scheme+'://discover';}
function getEncodedRedirectUrl(){var search=$location.search();var RedirectUrl=getParameterByName('RedirectUrl',decodeURIComponent(search.appUrl));var keys=Object.keys(search);var url='';for(var i=0;i<keys.length;i++){var key=keys[i];if(key=='appUrl'){continue;}
if(key=='appName'){continue;}
if(key=='isUniversalLink'){continue;}
url+=key+'='+search[key]+'&';}
return'?'+url+'RedirectUrl='+encodeURIComponent(RedirectUrl);}
function getParameterByName(name,url){if(!url){return'';}
name=name.replace(/[\[\]]/g,"\\$&");var regex=new RegExp("[?&]"+name+"(=([^&#]*)|&|#|$)");var results=regex.exec(url);if(!results){return'';}
if(!results[2]){return'';}
return decodeURIComponent(results[2].replace(/\+/g," "));}
function getFallbackUrl(appUrl,inputApp,inputTackingcode){var app=inputApp?inputApp:'ycp';var trackingCode=inputTackingcode?inputTackingcode:'bottom_banner';if(deviceservice.isIOS9()){return getUniversalLink(appUrl,trackingCode);}
if(deviceservice.isIOS()||deviceservice.isIOS13()){return getStoreLink(trackingCode,'ios',app);}
return getStoreLink(trackingCode,'android',app);}
function getProductUrl(inputApp,locale){var l=locale?locale:'en_US';var pfUrl=constants.pfUrl[l];var app=inputApp?inputApp:'ycp';if(app=='ymk'){return pfUrl+'consumer/apps/ymk';}
if(app=='ycp'){return pfUrl+'consumer/apps/ycp';}
if(app=='ycn'){return pfUrl+'consumer/apps/ycn';}
if(app=='ycf'){return pfUrl+'consumer/apps/ycf';}
if(app=='ycvb'){return pfUrl+'consumer/apps/ycv';}
if(app=='ycv'){return pfUrl+'consumer/apps/ycc';}
if(app=='ycs'){return pfUrl+'consumer';}
if(app=='ymk4b'){return pfUrl+'consumer';}
if(app=='y4b'){return pfUrl+'consumer';}
if(app=='yct'){return pfUrl+'consumer';}
if(app=='yce'){var dest=$location.search().webDest;dest=constants.yceDest[dest]?constants.yceDest[dest]:dest;return constants.yceUrl[l]+(dest?'/'+dest:'');}
if(app=='yca'){return pfUrl+'consumer/apps/yca';}
if(app=='pdr'){return'https://www.cyberlink.com/powerdirector';}
return pfUrl+'consumer';}}})();(function(){angular.module('app.common').factory('gaservice',gaservice);gaservice.$inject=['$analytics','gaevents'];function gaservice($analytics,gaevents){return{eventTrack:eventTrack};function eventTrack(category,action){$analytics.eventTrack(action,{category:category});}
function eventTrack(category,action,label){$analytics.eventTrack(action,{category:category,label:label});}
function eventTrack(category,action,label,value){$analytics.eventTrack(action,{category:category,label:label,value:value});}}})();(function(){angular.module('app.common').factory('chromeservice',chromeservice);chromeservice.$inject=['$rootScope','events','constants'];function chromeservice($rootScope,events,constants){return{installPlugin:installPlugin,isPluginInstalled:isPluginInstalled};function installPlugin(){chrome.webstore.install("https://chrome.google.com/webstore/detail/"+constants.beautyCircletId,function(success){$rootScope.$broadcast(events.CHROME_PLUGIN_INSTALLED,{});},function(error){console.log("installation failed! error = "+error);});}
function isPluginInstalled(){var d1=document.getElementById("circle-it-button-is-installed");return(d1!=null&&typeof d1!=='undefined');}}})();(function(){angular.module('app.common').factory('cookieservice',cookieservice);cookieservice.$inject=['$cookies'];function cookieservice($cookies){var service={setLastUsedApp:setLastUsedApp,getLastUsedApp:getLastUsedApp,setSourceType:setSourceType,getSourceType:getSourceType,setFromWB:setFromWB,isFromWB:isFromWB};return service;function setLastUsedApp(app){$cookies.put('last.used.app',app);}
function getLastUsedApp(){return $cookies.get('last.used.app');}
function setFromWB(){$cookies.put('from.wb','1');}
function isFromWB(){return $cookies.get('from.wb')=='1';}
function setSourceType(sourceType){$cookies.put('source.type',sourceType);}
function getSourceType(){return $cookies.get('source.type');}}})();(function(){'use strict';angular.module('app.common').factory('recaptchaservice',recaptchaservice);recaptchaservice.$inject=['$window','vcRecaptchaService'];function recaptchaservice($window,vcRecaptchaService){var service={getRecaptchaPublicKey:getRecaptchaPublicKey,getRecaptchaResponse:getRecaptchaResponse,reloadRecaptcha:reloadRecaptcha};return service;function getRecaptchaPublicKey(){return'6Lc0q5MUAAAAAFcUOihrzPCDxiIJ1B85uECvQy4f';}
function getRecaptchaResponse(){return vcRecaptchaService.getResponse();}
function reloadRecaptcha(source){var key='6Lc8sOkUAAAAACNsRj-gDVyZF-5bUVWKDZqpJwTA';var script=document.createElement('script');script.src='https://www.google.com/recaptcha/api.js?render='+key;script.addEventListener('load',handleRecaptchaLoaded(key,source));document.body.appendChild(script);}
function handleRecaptchaLoaded(key,source){window.grecaptcha.ready(function(){window.grecaptcha.execute(key,{action:source}).then(function(token){document.getElementById('__request-recaptcha__').value=token;});});}}})();(function(){'use strict';angular.module('app.common').factory('metaservice',metaservice);metaservice.$inject=['$window'];function metaservice($window){var service={setMetaData:setMetaData};return service;function setMetaData(postData){var metaData={"author":postData.author?postData.author.displayName:'Perfect Corp',"title":postData.title?postData.title:'YouCam　Apps',"desc":postData.content?postData.content:'YouCam　Apps',"image":postData.photo&&postData.photo.metadata?postData.photo.metadata.originalUrl:'https://www.youcamapps.com/assets/images/app-touch-icon-128x128.png',"h1":postData.title?postData.title:'YouCam　Apps',"h2":postData.subPosts[0]?postData.subPosts[0].content:'YouCam　Apps',"bold":postData.title?postData.title:'YouCam　Apps',}
$window.document.title=metaData.title;$window.document.getElementsByName('author')[0].content=metaData.author;$window.document.getElementsByName('title')[0].content=metaData.title;$window.document.getElementsByName('description')[0].content=metaData.desc;$window.document.getElementsByName('image')[0].content=metaData.image;}}})();(function(){'use strict';angular.module('app.common').run(runBlock);runBlock.$inject=['$location','deviceservice','cookieservice'];function runBlock($location,deviceservice,cookieservice){if(!isFromWB()){return;}
var applicationName=getAppName();if(applicationName){cookieservice.setLastUsedApp(applicationName);cookieservice.setFromWB();}
function getAppName(){var search=$location.search();if(!search){return;}
return search.applicationName;}
function isFromWB(){var search=$location.search();if(!search){return false;}
if(!search.utm_source){return false;}
return search.utm_source.indexOf('weeklybulletin_')!=-1;}}})();(function(){'use strict';angular.module('app.common').run(runBlock);runBlock.$inject=['$location','cookieservice'];function runBlock($location,cookieservice){var sourceType=getSourceType();if(sourceType){cookieservice.setSourceType(sourceType);}
function getSourceType(){var search=$location.search();if(!search){return null;}
return search.sourceType;}}})();(function(){'use strict';angular.module('app.common').run(runBlock);runBlock.$inject=['$state','constants','$rootScope','$window','welcomeservice','deviceservice','applinkservice','$document','$timeout','$location','cookieservice'];function runBlock($state,constants,$rootScope,$window,welcomeservice,deviceservice,applinkservice,$document,$timeout,$location,cookieservice){var fallbackUrl;if(isOpenwallet()||isOpennftpage()){var search=$location.search();if(search&&search.url){fallbackUrl=search.url;}}
if(isTrynftlook()){var search=$location.search()
if(!(search&&search.appOnly)){fallbackUrl='https://www.perfectcorp.com/nft/try-on/'+search.guid;var firstParam=true;if(!!search.accesscode){fallbackUrl+=(firstParam?'?':'&')+'accesscode='+search.accesscode;firstParam=false;}
if(!!search.is2b){fallbackUrl+=(firstParam?'?':'&')+'is2b='+search.is2b;firstParam=false;}}}
if(!constants.isMobile){return;}
if(isShare()){var search=$location.search();var url='/m/share/continue';if(!!search.share_id)
url+='?appName='+getAppName()+'&share_id='+search.share_id;$window.location.href=url;return;}
if(deviceservice.isUnableToOpenApp()){return;}
if(needToRedirectToStorePage()){var search=$location.search();var unsubscribeEvent=$rootScope.$on('$stateChangeStart',function(event,to,toParams,from,fromParams){event.preventDefault();unsubscribeEvent();redirectToStorePage();})
return;}
if(hasBeenRedirected()){return;}
if(isFromUniversalLink()){var search=$location.search();if(isIOS9()&&(deviceservice.isLine()||deviceservice.isFacebook()||deviceservice.isInstagram()||search.SourceType=='twitter'||search.SourceType=='youtube'||search.SourceType=='snapchat'||search.SourceType=='qr_code'||search.qrcode=='1')){$window.location.href='https://www.beautycircle.com/m/continue?appName='+getAppName()+'&SourceType='+getTrackingSource()+'&SourceId='+getTrackingCode()+'&r=1&appUrl='+encodeURIComponent(buildAppUrl());return;}
if(isIOS9()&&!deviceservice.isYoucam()&&!deviceservice.isLine()){redirectToStorePage(fallbackUrl);return;}}
if(isIOS9()&&deviceservice.isLine()){applinkservice.launchApp(getAppUrl(),!!fallbackUrl?fallbackUrl:applinkservice.getStoreLink(getTrackingCode(),'ios',getAppName()));return;}
if(deviceservice.isIOS()&&!isIOS9()){applinkservice.launchApp(getAppUrl(),!!fallbackUrl?fallbackUrl:applinkservice.getStoreLink(getTrackingCode(),'ios',getAppName()));return;}
if(isIOS9()&&!deviceservice.isYoucam()){return;}
if(isIOS9()&&deviceservice.isFacebook()){return;}
if(!isSupportedPages($window.location.pathname)){return;}
var appUrl=getAppUrl();var unsubscribeEvent=$rootScope.$on('$stateChangeStart',function(event,to,toParams,from,fromParams){event.preventDefault();unsubscribeEvent();applinkservice.launchApp(appUrl,!!fallbackUrl?fallbackUrl:getFallbackUrl());})
function getAppUrl(){return applinkservice.getAppUrl($window.location.pathname,getAppName(),$window.location.search);}
function getFallbackUrl(){var search=$location.search();if(isInviteFriend()){if(deviceservice.isIOS()){return applinkservice.getStoreLink('bc_web_invitefriend','ios',getAppName());}
if(deviceservice.isAndroid()){return applinkservice.getStoreLink('invitefriend','android',getAppName());}}
if(search.bts==1){if(deviceservice.isIOS()){return applinkservice.getStoreLink(getTrackingCode(),'ios',getAppName(),getTrackingSource());}
if(deviceservice.isAndroid()){return applinkservice.getStoreLink(getTrackingCode(),'android',getAppName(),getTrackingSource());}}
if(!applinkservice.isViewableOnBCWeb($window.location.pathname)){if(deviceservice.isIOS()){return applinkservice.getStoreLink(getTrackingCode(),'ios',getAppName(),getTrackingSource());}
if(deviceservice.isAndroid()){return applinkservice.getStoreLink(getTrackingCode(),'android',getAppName(),getTrackingSource());}}
return $window.location.protocol+'//'+$window.location.host+$window.location.pathname+'?rr=1';}
function getTrackingSource(){return $location.search().SourceType;}
function getTrackingCode(){var search=$location.search();if(cookieservice.isFromWB()){if(search.SourceId){return search.SourceId;}
return'weeklybulletin';}
return search.SourceId||search.t;}
function isSafari(){return deviceservice.isSafari();}
function isAndroid(){return deviceservice.isAndroid();}
function isChrome(){return deviceservice.isChrome();}
function isEventOrContest(uri){if(uri.match(/^\/event\/[0-9]+/i)!=null){return true;}
if(uri.match(/^\/contest\/[0-9]+/i)!=null){return true;}
return false;}
function buildAppUrl(){var search=$location.search();var appUrl=search.appUrl+'?1=1';for(var key in search){if(key=='appUrl'){continue;}
appUrl+='&'+key+'='+search[key];}
return appUrl;}
function isSupportedPages(uri){if(applinkservice.isViewableOnBCWeb(uri)){return true;}
if(uri.match(/^\/event\/[0-9]+/i)!=null){return true;}
if(uri.match(/^\/contest\/[0-9]+/i)!=null){return true;}
if(uri.match(/^\/action_/i)!=null){return true;}
if(uri.match(/^\/feedback_/i)!=null){return true;}
if(uri.match(/^\/extra/i)!=null){return true;}
if(uri.match(/^\/faq/i)!=null){return true;}
if(uri.match(/^\/launcher/i)!=null){return true;}
if(uri.match(/^\/cutout/i)!=null){return true;}
if(uri.match(/^\/challenge/i)!=null){return true;}
if(uri.match(/^\/makeupcam/i)!=null){return true;}
if(uri.match(/^\/upgrade/i)!=null){return true;}
if(uri.match(/^\/video_tips/i)!=null){return true;}
if(uri.match(/^\/makeup_tips/i)!=null){return true;}
if(uri.match(/^\/promotion_page/i)!=null){return true;}
if(uri.match(/^\/iap_page/i)!=null){return true;}
if(uri.match(/^\/shoplist/i)!=null){return true;}
if(uri.match(/^\/action\/exclusive/i)!=null){return true;}
if(uri.match(/^\/shoppost/i)!=null){return true;}
if(uri.match(/^\/profile/i)!=null){return true;}
if(uri.match(/^\/live_schedule/i)!=null){return true;}
if(uri.match(/^\/live_show_schedule/i)!=null){return true;}
if(uri.match(/^\/action\/redirect\//i)!=null){return true;}
if(uri.match(/^\/action\/aicam\//i)!=null){return true;}
if(uri.match(/^\/action\/haircam\//i)!=null){return true;}
if(uri.match(/^\/action\/([a-zA-Z0-9_]+)\//i)!=null){return true;}
if(uri.match(/^\/action\/([a-zA-Z0-9_]+)/i)!=null){return true;}
return false;}
function redirectToStorePage(fallbackUrl){if(deviceservice.isIOS()){$window.location.href=!!fallbackUrl?fallbackUrl:applinkservice.getStoreLink(getTrackingCode(),'ios',getAppName(),getTrackingSource());return;}
if(deviceservice.isAndroid()){$window.open(!!fallbackUrl?fallbackUrl:applinkservice.getStoreLink(getTrackingCode(),'android',getAppName(),getTrackingSource()));return;}}
function needToRedirectToStorePage(){return $location.search().fallbackToStore==1;}
function isFromUniversalLink(){return $location.search().isUniversalLink==1;}
function isShare(){return $location.path()==='/action/share';}
function isOpenwallet(){return $location.path().match(/^\/action\/openwallet/i);}
function isOpennftpage(){return $location.path().match(/^\/action\/opennftpage/i);}
function isTrynftlook(){return $location.path().match(/^\/action\/trynftlook/i);}
function hasBeenRedirected(){return $location.search().r==1||$location.search().rr==1;}
function isIOS9(){return deviceservice.isIOS9();}
function getAppName(){var search=$location.search();if(search&&search.appName){return deviceservice.getAppNameByIos13(search.appName);}
if(search&&search.app){return deviceservice.getAppNameByIos13(search.app);}
return getAppNameByUserAgent();}
function getAppNameByUserAgent(){if(deviceservice.isYMK()){return'ymk';}
if(deviceservice.isYCP()){return'ycp';}
if(deviceservice.isYCN()){return'ycn';}
if(deviceservice.isYCF()){return'ycf';}
if(deviceservice.isYBC()){return'ycp';}
if(deviceservice.isYCS()){return'ycs';}
if(deviceservice.isYCVB()){return'ycvb';}
if(deviceservice.isYCV()){return'ycv';}
if(deviceservice.isYMK4B()){return'ymk4b';}
if(deviceservice.isAMB()){return'amb';}
if(deviceservice.isYCT()){return'yct';}
if(deviceservice.isYCE()){return'yce';}
if(deviceservice.isYCA()){return'yca';}
return getAppNameByAppUrl();}
function getAppNameByAppUrl(){var search=$location.search();if(search&&search.appUrl&&search.appUrl.indexOf('://')!=-1){var appName=search.appUrl.split('://')[0];return appName.toLowerCase();}
return'ymk';}
function isInviteFriend(){if($window.location.pathname.indexOf('profile')==-1){return false;}
var search=$location.search();return search&&search.app;}}})();(function(){'use strict';angular.module('app.common').run(runBlock);runBlock.$inject=['deviceservice','$window','$location'];function runBlock(deviceservice,$window,$location){var pathname=$window.location.pathname;if(pathname.indexOf('continue-shopping')!=-1){var country='US';$.getJSON('//ipinfo.io/',function(data){if(data.country){country=data.country;}});if(deviceservice.isYCS()){$window.location.href='https://www.youcamshop.com/?utm_source=asknet&utm_campaign=continue-shopping';return;}
if(deviceservice.isYMK()){var deeplink='ymkbc://shoplist/1335341618?sourceType=cart';if(country=='AU'){$window.location.href=deeplink+'&locale=en_AU';return;}
if(country=='CA'){$window.location.href=deeplink+'&locale=en_CA';return;}
if(country=='GB'){$window.location.href=deeplink+'&locale=en_GB';return;}
$window.location.href=deeplink+'&locale=en_US';return;}}}})();(function(){'use strict';angular.module('app.welcome',['app.common','app.user','ui.router','ui.bootstrap','ng.deviceDetector','angular-storage','ngAnimate','toastr']);})();(function(){'use strict';angular.module('app.welcome').config(config);config.$inject=['$locationProvider','$stateProvider'];function config($locationProvider,$stateProvider){$stateProvider.state('welcome-desktop',{views:{'':{templateUrl:'/app/home/controllers/home.jsp',controller:'HomeController',controllerAs:'vm'},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm'}},onEnter:['$uibModal','$rootScope','$timeout','events','signinservice','welcomeservice','$window',function($uibModal,$rootScope,$timeout,events,signinservice,welcomeservice,$window){var instance=$uibModal.open({animation:true,keyboard:true,size:'welcome',templateUrl:'/app/welcome/controllers/welcome-desktop.jsp',controller:'WelcomeDesktopController',controllerAs:'vm',backdrop:true});instance.result['finally'](function(){welcomeservice.skipWelcome();$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'welcome'});$window.location.reload();if(signinservice.isNewUser){$timeout(function(){welcomeservice.openWelcomeToast();},3000);}});$rootScope.$broadcast(events.MODAL_OPEN,{modalName:'welcome',modalInstance:instance});}],onExit:['welcomeservice',function(welcomeservice){welcomeservice.skipWelcome();}]});$stateProvider.state('signup-desktop',{url:'/user/signup?source&medium&campaign',views:{'':{templateUrl:'/app/home/controllers/home.jsp',controller:'HomeController',controllerAs:'vm'},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm'}},onEnter:['$uibModal','$rootScope','$timeout','events','signinservice','welcomeservice','$state',function($uibModal,$rootScope,$timeout,events,signinservice,welcomeservice,$state){var instance=$uibModal.open({animation:true,keyboard:true,size:'welcome',templateUrl:'/app/welcome/controllers/welcome-desktop.jsp',controller:'WelcomeDesktopController',controllerAs:'vm',backdrop:true});instance.result['finally'](function(){welcomeservice.skipWelcome();$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'welcome'});$state.go('home');});$rootScope.$broadcast(events.MODAL_OPEN,{modalName:'welcome',modalInstance:instance});}],onExit:['welcomeservice',function(welcomeservice){welcomeservice.skipWelcome();}]});$stateProvider.state('welcome-mobile',{url:'/m/welcome',templateUrl:'/app/welcome/controllers/welcome-mobile.jsp',controller:'WelcomeMobileController',controllerAs:'vm'});$stateProvider.state('continue-mobile',{url:'/m/continue?appUrl&appName',templateUrl:'/app/welcome/controllers/continue-mobile.jsp',controller:'ContinueMobileController',controllerAs:'vm'});}})();(function(){'use strict';angular.module('app.welcome').factory('welcomeservice',welcomeservice);welcomeservice.$inject=['store','toastr','toastrConfig'];function welcomeservice(store,toastr,toastrConfig){var service={isWelcomeSkipped:isWelcomeSkipped,skipWelcome:skipWelcome,openWelcomeToast:openWelcomeToast};return service;function skipWelcome(){store.set('welcome-skipped',1);}
function isWelcomeSkipped(){return store.get('welcome-skipped')===1;}
function openWelcomeToast(){toastrConfig.templates.toast='welcome-toast.html';toastrConfig.positionClass='toast-top-center';toastrConfig.timeOut=1500;toastrConfig.extendedTimeOut=1000;toastr.success();}}})();(function(){'use strict';angular.module('app.welcome').run(runBlock);runBlock.$inject=['$state','constants','$rootScope','$window','welcomeservice','deviceservice'];function runBlock($state,constants,$rootScope,$window,welcomeservice,deviceservice){if(!isHomePage($window.location)){skipWelcome();return;}
if(deviceservice.isCrawler()){return;}
if(isWelcomeSkipped()){return;}
var unsubscribeEvent=$rootScope.$on('$stateChangeStart',function(event,to,toParams,from,fromParams){event.preventDefault();unsubscribeEvent();var welcomeState=constants.isMobile?'welcome-mobile':'welcome-desktop';$state.go(welcomeState);})
function isHomePage(location){return'/'==location.pathname;}
function isWelcomeSkipped(){return welcomeservice.isWelcomeSkipped();}
function skipWelcome(){welcomeservice.skipWelcome();}}})();(function(){'use strict';angular.module('app.welcome').controller('WelcomeDesktopController',WelcomeDesktopController);WelcomeDesktopController.$inject=['$scope','signinservice','userservice','facebookservice','weiboservice','$state','welcomeservice','$rootScope','events','$window','authService','applinkservice','gaservice','gaevents','recaptchaservice'];function WelcomeDesktopController($scope,signinservice,userservice,facebookservice,weiboservice,$state,welcomeservice,$rootScope,events,$window,authService,applinkservice,gaservice,gaevents,recaptchaservice){$scope.innerState='sign.in';$scope.changeInnerState=function(innerState){$scope.innerState=innerState;};$scope.closeModal=function(){$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'welcome'});};var vm=this;vm.email="";vm.password="";vm.consentOpt="";vm.isSignInFlow=false;vm.toggleIsSignInFlow=toggleIsSignInFlow;vm.signInEmail=signInEmail;vm.signInFacebook=signInFacebook;vm.signInWeibo=signInWeibo;vm.signUpEmail=signUpEmail;vm.skipSignIn=skipSignIn;vm.submitForm=submitForm;vm.disableForm=false;vm.facebookLoading=false;vm.forgotPassword=forgotPassword;vm.openStoreLink=applinkservice.openStoreLink;vm.gaevents=gaevents;vm.closeModal=closeModal;vm.isCnDomain=isCnDomain;function isCnDomain(){return $window.location.host.indexOf('cn')!==-1;}
function forgotPassword(form){$state.go('forgot-password',{email:form.email.$viewValue});$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'welcome'});}
function resetForm(form){form.exceptions={};form.$setPristine();form.$setUntouched();}
function toggleIsSignInFlow(form){resetForm(form);vm.isSignInFlow=!vm.isSignInFlow;}
function signInEmail(form){vm.disableForm=true;if(!vm.consentOpt){vm.consentOpt=false;}
var recaptcha=document.getElementById('__request-recaptcha__').value;signinservice.signInEmailv2(vm.email,vm.password,vm.consentOpt,"",recaptcha).then(function(response){var status=response.data.status;if(status==="OK"||status==="AccountCreated"){handleSignUpResponse(response,form,true);}else if(status==="WaitValidate"){recaptchaservice.reloadRecaptcha('w_sign_in');eventTrack(gaevents.welcome.action.email_signup);eventTrack(gaevents.welcome.action.email_validate);form.exceptions.waitvalidate=true;}else if(status==="RecaptchaError"){recaptchaservice.reloadRecaptcha('w_sign_in');form.exceptions.recaptchaerror=true;}else{recaptchaservice.reloadRecaptcha('w_sign_in');form.exceptions.signinerror=true;}},function(error){recaptchaservice.reloadRecaptcha('w_sign_in');form.exceptions.signinerror=true;})['finally'](function(){recaptchaservice.reloadRecaptcha('w_sign_in');vm.disableForm=false;});}
function signInFacebook(form){resetForm(form);if(!vm.consentOpt){vm.consentOpt=false;}
facebookservice.checkLoginStatusOrLogin().then(function(response){var token=response.authResponse.accessToken;vm.facebookLoading=true;signinservice.signInFacebook(token,vm.consentOpt).then(function(response){handleSignUpResponse(response,form,false);},function(error){form.exceptions.signuperror=true;})['finally'](function(){vm.facebookLoading=false;});});}
function signInWeibo(form){resetForm(form);if(!vm.consentOpt){vm.consentOpt=false;}
weiboservice.login().then(function(response){var code=response.authResponse.code;vm.facebookLoading=true;return signinservice.signInWeibo(code,vm.consentOpt);}).then(function(response){handleSignUpResponse(response,form,false);})['catch'](function(error){form.exceptions.signuperror=true;})['finally'](function(){vm.facebookLoading=false;});}
function signUpEmail(form){vm.disableForm=true;if(!vm.consentOpt){vm.consentOpt=false;}
signinservice.signUpEmail(vm.email,vm.password,vm.consentOpt).then(function(response){handleSignUpResponse(response,form,true);},function(error){form.exceptions.signuperror=true;})['finally'](function(){vm.disableForm=false;});}
function trackSinUpResponse(authSource,status){if(status!=='OK'&&status!=='AccountCreated'){return;}
var isSignUp=status==='OK';var gaaction;if(authSource==='Email'){gaaction=isSignUp?gaevents.signin.action.email_signup:gaevents.signin.action.email_signin;}else if(authSource==='Facebook'){gaaction=isSignUp?gaevents.signin.action.fb_signup:gaevents.signin.action.fb_signin;}else if(authSource==='Weibo'){gaaction=isSignUp?gaevents.signin.action.wb_signup:gaevents.signin.action.wb_signin;}else{return;}
eventTrack(gaaction);}
function handleSignUpResponse(response,form,fromEmail){if(response.data.status==="OK"){trackSinUpResponse(response.data.userInfo.authSource,response.data.status);authService.loginConfirmed();var userId=response.data.userInfo.userId;userservice.queryUser(userId).then(function(userResponse){signinservice.refreshCurrentUser(userResponse.data);$scope.changeInnerState("sign.up.basic");});}else if(response.data.status==="WaitValidate"){eventTrack(gaevents.welcome.action.email_signup);eventTrack(gaevents.welcome.action.email_validate);$scope.changeInnerState("sign.up.activation.step");}else if(response.data.status==="AccountCreated"){trackSinUpResponse(response.data.userInfo.authSource,response.data.status);if(signinservice.isSignIn){authService.loginConfirmed();$scope.closeModal();}else{form.exceptions.signinerror=true;}}else{form.exceptions.signuperror=true;}}
function skipSignIn(){eventTrack(gaevents.welcome.action.explored);$scope.closeModal();}
function closeModal(){$scope.closeModal();}
function submitForm(form){form.exceptions={};if(form.$invalid){return;}
if(vm.isSignInFlow){signInEmail(form);}else{signUpEmail(form);}}
function eventTrack(action){gaservice.eventTrack(gaevents.welcome.category,action);}}})();(function(){'use strict';angular.module('app.welcome').controller('WelcomeMobileController',WelcomeMobileController);WelcomeMobileController.$inject=['applinkservice','welcomeservice','$state','gaservice','gaevents'];function WelcomeMobileController(applinkservice,welcomeservice,$state,gaservice,gaevents){var vm=this;vm.launchApp=launchApp;vm.skipSignIn=skipSignIn;function launchApp(){eventTrack(gaevents.welcome_m.action.continue_app);applinkservice.openAppLink('ymk://launcher','continue_with_app');}
function skipSignIn(){eventTrack(gaevents.welcome_m.action.continue_website);welcomeservice.skipWelcome();$state.go('home');}
function eventTrack(action){gaservice.eventTrack(gaevents.welcome_m.category,action);}}})();(function(){'use strict';angular.module('app.welcome').controller('ContinueMobileController',ContinueMobileController);ContinueMobileController.$inject=['applinkservice','deviceservice','$window','$stateParams','$timeout','$location','constants'];function ContinueMobileController(applinkservice,deviceservice,$window,$stateParams,$timeout,$location,constants){var vm=this;vm.appName=null;vm.isDefault=true;vm.isIap=false;vm.launchApp=launchApp;vm.isPad=false;activate();function activate(){var appUrl=getAppUrl();var appName=$location.search().ap||$location.search().appName;appName=deviceservice.getAppNameByIos13(appName);vm.appName=appName;vm.isDefault=isDefaultLayout(appUrl,appName);vm.isIap=isIapLayout(appUrl,appName);vm.isPad=isPadDevice();}
function isDefaultLayout(appUrl,appName){if(appName==='ycp'){if(appUrl.match(/extra\/frames/i)!=null){return false;}
if(appUrl.match(/action_pickphoto\/framespack/i)!=null){return false;}}
if(appName==='yct'){if(appUrl.match(/brand_sku_preview/i)!=null){return false;}
if(appUrl.match(/action_createlook/i)!=null){return false;}}
return true;}
function isPadDevice(){return(/iPad/i.test(navigator.platform)||(navigator.platform==='MacIntel'&&navigator.maxTouchPoints>1));}
function isIapLayout(appUrl,appName){if(appUrl.match(/iap_page/i)!=null){return true;}
return false;}
function launchApp(){var appUrl=getAppUrl();var fallbackUrl=getFallbackUrl(appUrl);var appName=$location.search().ap||$location.search().appName;appName=deviceservice.getAppNameByIos13(appName);if(appUrl.indexOf('ycsbc://')!=-1||appUrl.indexOf('ycs://')!=-1){if(deviceservice.isIOS()){$window.location.href=applinkservice.getStoreLink(getTrackingCode(),'ios',appName,getTrackingSource());return;}}
applinkservice.launchApp(appUrl,fallbackUrl,true);}
function getFallbackUrl(appUrl){return applinkservice.getFallbackUrl(appUrl,getApp(),getTrackingCode());}
function getApp(){if($stateParams.appName){return deviceservice.getAppNameByIos13($stateParams.appName);}
return'ymk';}
function getAppUrl(){if($stateParams.appUrl){var search=$location.search();if(search.appUrl.indexOf('action_redirect')!=-1&&search.appUrl.indexOf('openby')!=-1&&(search.appUrl.indexOf('ShowYMKTitle')!=-1||search.appUrl.indexOf('HideTopBar')!=-1)){return getRedirectAppUrl();}
var appName=getApp();if(!$stateParams.appUrl.startsWith(appName)){return $stateParams.appUrl.replace(/^([a-zA-Z0-9]+)/i,appName);;}
return $stateParams.appUrl;}
return applinkservice.getAppUrl($window.location.pathname,vm.appName);}
function getRedirectAppUrl(){var search=$location.search();var appName=search.ap||search.appName;var rUrl=appName+'://action_redirect/?RedirectUrl='+
encodeURIComponent(applinkservice.getParameterByName('RedirectUrl',$stateParams.appUrl))+'&openby='+applinkservice.getParameterByName('openby',$stateParams.appUrl);if(applinkservice.getParameterByName('ShowYMKTitle',$stateParams.appUrl)!=''){rUrl+='&ShowYMKTitle='+applinkservice.getParameterByName('ShowYMKTitle',$stateParams.appUrl);}
if(applinkservice.getParameterByName('HideTopBar',$stateParams.appUrl)!=''){rUrl+='&HideTopBar='+applinkservice.getParameterByName('HideTopBar',$stateParams.appUrl);}
rUrl+='&SourceType='+getTrackingSource();rUrl+='&SourceId='+getTrackingCode();return rUrl;}
function getTrackingSource(){var search=$location.search();return search.SourceType||'Continue_Page';}
function getTrackingCode(){var search=$location.search();return search.SourceId||'continue_with_app';}}})();(function(){'use strict';angular.module('app.user',['app.common','ngMessages','toastr','oitozero.ngSweetAlert','angular-storage']);})();(function(){'use strict';angular.module('app.user').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('mobile-signin',{params:{referer:null,isSignInFlow:true},url:'^/m/signin?redirectUrl',views:{'':{templateUrl:'/app/user/controllers/mobile-sign-in.jsp',controller:'MobileSignInController',controllerAs:'vm',resolve:{redirectUrl:['$stateParams',function($stateParams){return $stateParams.redirectUrl;}]}}}});$stateProvider.state('pc-signin',{params:{referer:null,isSignInFlow:true},url:'^/signin?redirectUrl',views:{'':{templateUrl:'/app/user/controllers/pc-sign-in.jsp',controller:'MobileSignInController',controllerAs:'vm',resolve:{redirectUrl:['$stateParams',function($stateParams){return $stateParams.redirectUrl;}]}}}});$stateProvider.state('mobile-sign-up-basic',{params:{referer:null},url:'^/m/sign-up-basic',views:{'':{templateUrl:'/app/user/controllers/mobile-sign-up-basic.jsp',controller:'MobileSignUpBasicController',controllerAs:'vm'}}});$stateProvider.state('mobile-sign-up-profile1',{params:{referer:null},url:'^/m/sign-up-profile1',views:{'':{templateUrl:'/app/user/controllers/mobile-sign-up-profile1.jsp',controller:'MobileSignUpProfile1Controller',controllerAs:'vm'}}});$stateProvider.state('mobile-sign-up-profile2',{params:{referer:null},url:'^/m/sign-up-profile2',views:{'':{templateUrl:'/app/user/controllers/mobile-sign-up-profile2.jsp',controller:'MobileSignUpProfile2Controller',controllerAs:'vm'}}});$stateProvider.state('mobile-sign-up-welcome',{params:{referer:null},url:'^/m/sign-up-welcome',views:{'':{templateUrl:'/app/user/controllers/mobile-sign-up-welcome.jsp',controller:'MobileSignUpWelcomeController',controllerAs:'vm'}}});$stateProvider.state('mobile-sign-up-activation-step',{url:'^/m/sign-up-activation-step',views:{'':{templateUrl:'/app/user/controllers/sign-up-activation-step.jsp'},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm'}}});$stateProvider.state('forgot-password',{params:{email:''},url:'^/user/forgot-password',views:{'':{templateUrl:'/app/user/controllers/forgot-password.jsp',controller:'ForgotPasswordController',controllerAs:'vm',resolve:{email:['$stateParams',function($stateParams){return $stateParams.email;}]}},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'}}});$stateProvider.state('reset-password',{params:{referer:null},url:'^/user/reset-password?memberId&memberCode',views:{'':{templateUrl:'/app/user/controllers/reset-password.jsp',controller:'ResetPasswordController',controllerAs:'vm',resolve:{memberId:['$stateParams',function($stateParams){return $stateParams.memberId;}],memberCode:['$stateParams',function($stateParams){return $stateParams.memberCode;}]}},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'}}});$stateProvider.state('reset-password-expired',{params:{referer:null},url:'^/user/reset-password/expired',views:{'':{templateUrl:'/app/user/controllers/reset-password-expired.jsp',},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'}}});$stateProvider.state('account-activated',{url:'^/user/account-activated',views:{'':{templateUrl:'/app/user/controllers/account-activated.jsp',controller:'AccountActivatedController',controllerAs:'vm'},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'}}});$stateProvider.state('bc-account-delete',{url:'^/user/bc-delete-account',onEnter:['$stateParams','$state','signinservice','deviceservice',function($stateParams,$state,signinservice,deviceservice){if(!deviceservice.isYoucam()&&!signinservice.isSignIn){$state.go('home');return;}}],views:{'':{templateUrl:'/app/user/controllers/bc-account-delete.jsp',controller:'AccountDeleteController',controllerAs:'vm'},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'}}});$stateProvider.state('bc-account-delete-continue',{url:'^/user/bc-delete-account-continue?token',onEnter:['$stateParams','$state','signinservice','deviceservice',function($stateParams,$state,signinservice,deviceservice){if(!deviceservice.isYoucam()&&!signinservice.isSignIn){$state.go('home');return;}}],views:{'':{templateUrl:'/app/user/controllers/bc-account-delete-continue.jsp',controller:'AccountDeleteContinueController',controllerAs:'vm'},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'}}});$stateProvider.state('account-delete',{url:'^/user/delete-account',onEnter:['$stateParams','$state','signinservice','deviceservice',function($stateParams,$state,signinservice,deviceservice){if(!deviceservice.isYoucam()&&!signinservice.isSignIn){$state.go('home');return;}}],views:{'':{templateUrl:'/app/user/controllers/account-delete.jsp',controller:'AccountDeleteController',controllerAs:'vm'},'header@':{templateUrl:'/app/home/controllers/appheader.jsp',controller:'AppHeaderController',controllerAs:'vm'}}});$stateProvider.state('account-delete-continue',{url:'^/user/delete-account-continue?token',onEnter:['$stateParams','$state','signinservice','deviceservice',function($stateParams,$state,signinservice,deviceservice){if(!deviceservice.isYoucam()&&!signinservice.isSignIn){$state.go('home');return;}}],views:{'':{templateUrl:'/app/user/controllers/account-delete-continue.jsp',controller:'AccountDeleteContinueController',controllerAs:'vm'},'header@':{templateUrl:'/app/home/controllers/appheader.jsp',controller:'AppHeaderController',controllerAs:'vm'}}});$stateProvider.state('unsubscribe-email',{url:'^/user/unsubscribe-email?templateId&encoded',views:{'':{templateUrl:'/app/user/controllers/unsubscribe-email.jsp',controller:'UnsubscribeEmailController',controllerAs:'vm',resolve:{templateId:['$stateParams',function($stateParams){return $stateParams.templateId;}],encoded:['$stateParams',function($stateParams){return $stateParams.encoded;}]}},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'}}});$stateProvider.state('unsubscribe-mailbox',{url:'^/user/unsubscribe-mailbox?templateId&encode',views:{'':{templateUrl:'/app/user/controllers/unsubscribe-mailbox.jsp',controller:'UnsubscribeMailboxController',controllerAs:'vm',resolve:{templateId:['$stateParams',function($stateParams){return $stateParams.templateId;}],encode:['$stateParams',function($stateParams){return $stateParams.encode;}]}},'header@':{templateUrl:'/app/home/controllers/mailbox.jsp',controller:'HeaderController',controllerAs:'vm'}}});$stateProvider.state('gdpr-subscribe',{url:'^/user/gdpr-subscribe?encoded&ver&enMemberId',views:{'':{templateUrl:'/app/user/controllers/gdpr-subscribe.jsp',controller:'GdprSubscribeController',controllerAs:'vm',resolve:{encoded:['$stateParams',function($stateParams){return $stateParams.encoded;}],ver:['$stateParams',function($stateParams){return $stateParams.ver;}],enMemberId:['$stateParams',function($stateParams){return $stateParams.enMemberId;}]}},'header@':{templateUrl:'/app/home/controllers/gdprheader.jsp',controller:'HeaderController',controllerAs:'vm'}}});$stateProvider.state('gdpr-subscribe-confirm',{url:'^/user/gdpr-subscribe-confirm?encoded&wid',views:{'':{templateUrl:'/app/user/controllers/gdpr-subscribe-confirm.jsp',controller:'GdprSubscribeConfirmController',controllerAs:'vm',resolve:{encoded:['$stateParams',function($stateParams){return $stateParams.encoded;}],wid:['$stateParams',function($stateParams){return $stateParams.wid;}]}},'header@':{templateUrl:'/app/home/controllers/gdprheader.jsp',controller:'HeaderController',controllerAs:'vm'}}});$stateProvider.state('freegift',{url:'^/user/freegift?brandEventId&token&bcCountry&socialId',views:{'':{templateUrl:'/app/user/controllers/freegift.jsp',controller:'FreegiftController',controllerAs:'vm'}}});$stateProvider.state('personal-data',{url:'^/user/personal-data',views:{'':{templateUrl:'/app/user/controllers/personal-data.jsp',controller:'PersonalDataController',controllerAs:'vm'},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'}}});}})();(function(){'use strict';angular.module('app.user').run(runBlock);runBlock.$inject=['signinservice'];function runBlock(signinservice){signinservice.setCurrentUser();signinservice.getSession().then(function(){return;});signinservice.initMoment();}})();(function(){'use strict';angular.module('app.common').run(runBlock);runBlock.$inject=['$state','constants','$rootScope','events','$window','$uibModal','signinservice','$timeout','welcomeservice'];function runBlock($state,constants,$rootScope,events,$window,$uibModal,signinservice,$timeout,welcomeservice){$rootScope.$on(events.LOGIN_REQUIRED,function(event,params){if(constants.isMobile){$window.location.href='/m/signin';}else{var instance=$uibModal.open({size:'signin',keyboard:true,backdrop:true,animation:true,templateUrl:'/app/user/controllers/sign-in.jsp',controller:'SignInController',controllerAs:'vm',bindToController:true,resolve:{eventParams:function(){return params;}}});instance.result['finally'](function(){if(goToState!==null){$state.go(goToState);}
if(signinservice.isNewUser){$timeout(function(){welcomeservice.openWelcomeToast();},2000);}});instance.result.then(function(){},function(reason){if(signinservice.isNewUser){$timeout(function(){welcomeservice.openWelcomeToast();},2000);}});$rootScope.$broadcast(events.MODAL_OPEN,{modalName:'signin',modalInstance:instance});}});}})();(function(){'use strict';angular.module('app.user').factory('signinservice',signinservice);signinservice.$inject=['$http','$httpParamSerializer','$q','constants','$window','$document'];function signinservice($http,$httpParamSerializer,$q,constants,$window,$document,toastr,toastrConfig){var l=$document.find('#currentUser #locale').attr('value');var service={isSignIn:false,isNewUser:false,authSource:null,currentUser:null,refreshCurrentUser:refreshCurrentUser,signUpEmail:signUpEmail,signInEmail:signInEmail,signInEmailv2:signInEmailv2,signInFacebook:signInFacebook,signInWeibo:signInWeibo,signOut:signOut,challengeSignOut:challengeSignOut,getSession:getSession,setCurrentUser:setCurrentUser,initMoment:initMoment,locale:l};return service;function refreshCurrentUser(user){angular.merge(service,{isSignIn:true,currentUser:user});}
function signUpEmail(email,password,consentOpt){var consent=consentOpt?consentOpt:false;var data={email:email,password:password,consent:consent};return $http({method:'POST',url:'/user/user-create.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)}).then(function(response){handleSignUpResponse(response);return response;});}
function handleSignUpResponse(response){if(response.data!=""){var status=response.data.status;if(status==="OK"||status==="AccountCreated"){if(status==="OK"){service.isNewUser=true;}
if(response.data.userInfo.displayName!==undefined){service.currentUser=response.data.userInfo;service.authSource=response.data.userInfo.authSource;service.isSignIn=true;}}else if(status==="WaitValidate"){}else if(status==="ServerError"){return $q.reject(response);}}}
function signInEmail(email,password,consentOpt){var consent=consentOpt?consentOpt:false;var data={email:email,password:password,consent:consent};return $http({method:'POST',url:'/login/email-login.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)}).then(function(response){handleSignUpResponse(response);return response;});}
function signInEmailv2(email,password,consentOpt,redirectUrl,recaptcha){var consent=consentOpt?consentOpt:false;var data={email:email,password:password,consent:consent,recaptcha:recaptcha,redirectUrl:redirectUrl};return $http({method:'POST',url:'/login/email-login.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)}).then(function(response){handleSignUpResponse(response);return response;});}
function signInFacebook(accessToken,consentOpt,redirectUrl){var consent=consentOpt?consentOpt:false;var data={accessToken:accessToken,consent:consent,redirectUrl:redirectUrl};return $http({method:'POST',url:'/login/facebook-login.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)}).then(function(response){handleSignUpResponse(response);return response;});}
function signInWeibo(code,consentOpt){var consent=consentOpt?consentOpt:false;var data={code:code,consent:consent};return $http({method:'POST',url:'/login/weibo-login.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)}).then(function(response){handleSignUpResponse(response);return response;});}
function signOut(){return $http.post('/login/logout.action').then(function(response){$window.location.reload(true);return response;});}
function challengeSignOut(){return $http.post('/login/logout.action').then(function(response){return response;});}
function setCurrentUser(){var userId=$document.find('#currentUser-user-id').attr('value');if(userId){service.currentUser={userId:userId,displayName:$document.find('#currentUser-display-name').attr('value'),avatar:$document.find('#currentUser-avatar').attr('value'),description:$document.find('#currentUser-description').text()};service.authSource=$document.find('#currentUser-auth-source');service.isSignIn=true;}else{service.currentUser=null;service.isSignIn=false;}}
function getSession(){return $http.get('/user/get-session.action').then(function(response){if(response.data!=null){if(response.data.displayName!==undefined){service.currentUser=response.data;service.authSource=response.data.authSource;service.isSignIn=true;}else{service.currentUser=null;service.isSignIn=false;}}else{service.currentUser=null;service.isSignIn=false;}
return response;});}
function initMoment(){if(constants.isMobile){moment.locale(l+'-m');}else{moment.locale(l);}
moment.relativeTimeThreshold('s',60);moment.relativeTimeThreshold('m',60);moment.relativeTimeThreshold('h',24);moment.relativeTimeThreshold('d',36500);}}})();(function(){'use strict';angular.module('app.user').factory('userservice',userservice);userservice.$inject=['$http','$httpParamSerializer','Upload','cacheservice','deviceservice'];function userservice($http,$httpParamSerializer,Upload,cacheservice,deviceservice){var service={queryUser:queryUser,queryUserByToken:queryUserByToken,updateUser:updateUser,forgotPassword:forgotPassword,resetPassword:resetPassword,queryEncodedEmail:queryEncodedEmail,unsubscribeEmail:unsubscribeEmail,queryMailboxEncodeEmail:queryMailboxEncodeEmail,unsubscribeMailboxEmail:unsubscribeMailboxEmail,getRandomUniqueId:getRandomUniqueId,existsUniqueId:existsUniqueId,sendMkdMail:sendMkdMail,deleteAccount:deleteAccount,directDeleteAccount:directDeleteAccount,logout:logout,changeLocation:changeLocation,hideHeader:hideHeader,getIpCountry:getIpCountry,getPersonalDataDownloadUrl:getPersonalDataDownloadUrl,getSupportedSetting:getSupportedSetting};return service;function queryUser(userId){return $http.get('/user/query-user.action?userId='+userId.toString(),{cache:cacheservice.cache});}
function queryUserByToken(token){return $http.get('/user/query-user.action?queryByToken=&token='+token,{cache:cacheservice.cache});}
function deleteAccount(source,token){var data={source:source,token:token}
return $http({method:'POST',url:'/user/delete-account.action?mail',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function directDeleteAccount(source,token){var data={source:source,token:token}
return $http({method:'POST',url:'/user/delete-account.action?direct',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function logout(){var data={};return $http({method:'POST',url:'/login/logout.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function changeLocation(l){if(!deviceservice.isYoucam()){return;}
var e=document.createElement('iframe');e.src=l;e.style.display='none';document.body.appendChild(e);document.body.removeChild(e);};function hideHeader(){return changeLocation('ybc://layout/?discovertopbar=false');}
function sendMkdMail(email,displayName){var data={email:email,displayName:displayName}
return $http({method:'POST',url:'/user/send-mkd-mail.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function updateUser(data){return Upload.upload({url:'/user/user-update.action',method:'POST',data:filterNullValues(data)});}
function filterNullValues(data){for(var k in data){if(data[k]===null||data[k]===undefined){delete data[k];}}
return data;}
function forgotPassword(email){var data={email:email}
return $http({method:'POST',url:'/user/forgot-password.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function resetPassword(memberId,memberCode,password){var data={memberId:memberId,memberCode:memberCode,password:password}
return $http({method:'POST',url:'/user/reset-password.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function queryEncodedEmail(value){var data={encoded:value}
return $http({method:'POST',url:'/user/unsubscribe.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function unsubscribeEmail(templateId,encoded){var data={templateId:templateId,encoded:encoded,unsubscribe:''}
return $http({method:'POST',url:'/user/unsubscribe.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function queryMailboxEncodeEmail(templateId,encode){var data={templateId:templateId,encode:encode}
return $http({method:'POST',url:'/mailbox/unsubscribe.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function unsubscribeMailboxEmail(templateId,encode){var data={templateId:templateId,encode:encode,unsubscribe:''}
return $http({method:'POST',url:'/mailbox/unsubscribe.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function getRandomUniqueId(displayName){return $http.get('/user/query-user.action?getRandomUniqueId=&displayName='+displayName,{cache:cacheservice.cache});}
function existsUniqueId(uniqueId){return $http.get('/user/query-user.action?existsUniqueId=&uniqueId='+uniqueId,{cache:cacheservice.cache});}
function getIpCountry(ip){return $http.get('/user/get-ip-country.action?route&ip='+ip,{cache:cacheservice.cache});}
function getPersonalDataDownloadUrl(){return $http.get('/user/query-user.action?personalData',{cache:cacheservice.cache});}
function getSupportedSetting(){return $http.get('/user/get-supported-setting.action',{cache:cacheservice.cache});}}})();(function(){'use strict';angular.module('app.user').factory('gdprservice',gdprservice);gdprservice.$inject=['$http','$httpParamSerializer'];function gdprservice($http,$httpParamSerializer){var service={logGdprInfo:logGdprInfo,updateGdprSubscription:updateGdprSubscription};return service;function logGdprInfo(encoded,wid){var data={encoded:encoded,wid:wid}
return $http({method:'POST',url:'/user/log-gdpr.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function updateGdprSubscription(encoded,subscription){var data={encoded:encoded,trend:subscription.trend,promo:subscription.promo}
return $http({method:'POST',url:'/user/user-gdpr-update.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}}})();(function(){'use strict';angular.module('app.user').factory('freegiftservice',freegiftservice);freegiftservice.$inject=['$http','$httpParamSerializer','cacheservice'];function freegiftservice($http,$httpParamSerializer,cacheservice){var service={queryEventById:queryEventById,joinEvent:joinEvent};return service;function queryEventById(brandEventId){return $http.get('/freegift/fg-event.action?brandEventId='+brandEventId,{cache:cacheservice.cache});}
function joinEvent(token,brandEventId,name,phone,email,address,locationOfStore,nameOfStore,socialId){var data={token:token,brandEventId:brandEventId,name:name,email:email,phone:phone,address:address,socialId:socialId,join:''};if(locationOfStore){data['locationOfStore']=locationOfStore;}
if(nameOfStore){data['nameOfStore']=nameOfStore;}
return $http({method:'POST',url:'/freegift/fg-event.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}}})();(function(){'use strict';angular.module('app.user').controller('SignInController',SignInController);SignInController.$inject=['$rootScope','$scope','$window','$state','signinservice','userservice','facebookservice','weiboservice','events','eventParams','authService','gaservice','gaevents','recaptchaservice'];function SignInController($rootScope,$scope,$window,$state,signinservice,userservice,facebookservice,weiboservice,events,eventParams,authService,gaservice,gaevents,recaptchaservice){$scope.innerState='sign.in';$scope.mkdEmail='';$scope.setMkdEmail=function(email){$scope.mkdEmail=email;}
$scope.changeInnerState=function(innerState){$scope.innerState=innerState;};$scope.closeModal=function(skipReferer){skipReferer=typeof skipReferer!=='undefined'?skipReferer:false;if(!skipReferer&&eventParams&&eventParams.referer!==undefined&&eventParams.referer!==''){$window.location.href=eventParams.referer;return;}
$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'signin'});};var vm=this;vm.isSignInFlow=true;vm.email="";vm.password="";vm.consentOpt="";vm.signInEmail=signInEmail;vm.signInFacebook=signInFacebook;vm.signInWeibo=signInWeibo;vm.signUpEmail=signUpEmail;vm.forgotPassword=forgotPassword;vm.toggleIsSignInFlow=toggleIsSignInFlow;vm.disableForm=false;vm.submitForm=submitForm;vm.facebookLoading=false;vm.closeModal=closeModal;vm.isCnDomain=isCnDomain;activate();function activate(){if(eventParams&&eventParams.view=='signup'){vm.isSignInFlow=false;}}
function isCnDomain(){return $window.location.host.indexOf('cn')!==-1;}
function submitForm(form){form.exceptions={};if(form.$invalid){return;}
if(vm.isSignInFlow){signInEmail(form);}else{signUpEmail(form);}}
function signInEmail(form){vm.disableForm=true;if(!vm.consentOpt){vm.consentOpt=false;}
var recaptcha=document.getElementById('__request-recaptcha__').value;signinservice.signInEmailv2(vm.email,vm.password,vm.consentOpt,"",recaptcha).then(function(response){var status=response.data.status;if(status==="OK"||status==="AccountCreated"){handleSignUpResponse(response,form,true);}else if(status==="WaitValidate"){recaptchaservice.reloadRecaptcha('sign_in');eventTrack(gaevents.signin.action.email_signup);eventTrack(gaevents.signin.action.email_validate);form.exceptions.waitvalidate=true;}else if(status==="RecaptchaError"){recaptchaservice.reloadRecaptcha('sign_in');form.exceptions.recaptchaerror=true;}else{recaptchaservice.reloadRecaptcha('sign_in');form.exceptions.signinerror=true;}},function(error){recaptchaservice.reloadRecaptcha('sign_in');form.exceptions.signinerror=true;})['finally'](function(){recaptchaservice.reloadRecaptcha('sign_in');vm.disableForm=false;});}
function signInFacebook(form){resetForm(form);if(!vm.consentOpt){vm.consentOpt=false;}
facebookservice.checkLoginStatusOrLogin().then(function(response){var token=response.authResponse.accessToken;vm.facebookLoading=true;signinservice.signInFacebook(token,vm.consentOpt).then(function(response){handleSignUpResponse(response,form,false);},function(error){form.exceptions.signuperror=true;})['finally'](function(){vm.facebookLoading=false;});});}
function signInWeibo(form){resetForm(form);if(!vm.consentOpt){vm.consentOpt=false;}
weiboservice.login().then(function(response){var code=response.authResponse.code;vm.facebookLoading=true;return signinservice.signInWeibo(code,vm.consentOpt);}).then(function(response){handleSignUpResponse(response,form,false);})['catch'](function(error){form.exceptions.signuperror=true;})['finally'](function(){vm.facebookLoading=false;});}
function signUpEmail(form){vm.disableForm=true;if(!vm.consentOpt){vm.consentOpt=false;}
signinservice.signUpEmail(vm.email,vm.password,vm.consentOpt).then(function(response){handleSignUpResponse(response,form,true);},function(error){form.exceptions.signuperror=true;})['finally'](function(){vm.disableForm=false;});}
function trackSinUpResponse(authSource,status){if(status!=='OK'&&status!=='AccountCreated'){return;}
var isSignUp=status==='OK';var gaaction;if(authSource==='Email'){gaaction=isSignUp?gaevents.signin.action.email_signup:gaevents.signin.action.email_signin;}else if(authSource==='Facebook'){gaaction=isSignUp?gaevents.signin.action.fb_signup:gaevents.signin.action.fb_signin;}else if(authSource==='Weibo'){gaaction=isSignUp?gaevents.signin.action.wb_signup:gaevents.signin.action.wb_signin;}else{return;}
eventTrack(gaaction);}
function handleSignUpResponse(response,form,fromEmail){if(response.data.status==="OK"){trackSinUpResponse(response.data.userInfo.authSource,response.data.status);authService.loginConfirmed();var userId=response.data.userInfo.userId;userservice.queryUser(userId).then(function(userResponse){signinservice.refreshCurrentUser(userResponse.data);$scope.changeInnerState("sign.up.basic");});}else if(response.data.status==="WaitValidate"){eventTrack(gaevents.signin.action.email_signup);eventTrack(gaevents.signin.action.email_validate);$scope.changeInnerState("sign.up.activation.step");}else if(response.data.status==="AccountCreated"){trackSinUpResponse(response.data.userInfo.authSource,response.data.status);if(signinservice.isSignIn){authService.loginConfirmed();$scope.closeModal();if(eventParams&&eventParams.referer){$window.location.href=eventParams.referer;}else{$window.location.reload();}}else{form.exceptions.signinerror=true;}}else{form.exceptions.signuperror=true;}}
function forgotPassword(form){$scope.closeModal(true);$state.go('forgot-password',{email:form.email.$viewValue});}
function closeModal(){$scope.closeModal(true);}
function resetForm(form){form.exceptions={};form.$setPristine();form.$setUntouched();}
function toggleIsSignInFlow(form){resetForm(form);vm.isSignInFlow=!vm.isSignInFlow;}
function eventTrack(action){gaservice.eventTrack(gaevents.signin.category,action);}}})();(function(){'use strict';angular.module('app.user').controller('SignUpBasicController',SignUpBasicController);SignUpBasicController.$inject=['$scope','signinservice','userservice','$window','$timeout'];function SignUpBasicController($scope,signinservice,userservice,$window,$timeout){var vm=this;vm.signUpBasic={'displayName':signinservice.currentUser.displayName,'uniqueId':null,'description':signinservice.currentUser.description,'websiteUrl':signinservice.currentUser.websiteUrl,'avatar':signinservice.currentUser.avatar,'avatarFile':null};vm.disableForm=false;vm.pervAvatarFile=null;vm.getAvatar=getAvatar;vm.submitForm=submitForm;vm.cleanExceptions=cleanExceptions;activate();function activate(){var w=angular.element($window);var container=angular.element(document.getElementById("profileWrapper"));var baseWidth=container.width()+100;var baseHeight=container.height()+100;if(w.width()<baseWidth||w.height()<baseHeight){var widthOffset=$window.outerWidth-$window.innerWidth;var heightOffset=$window.outerHeight-$window.innerHeight;var newWidth=w.width();var newHeight=w.height();if(w.width()<baseWidth)
newWidth=baseWidth;if(w.height()<baseHeight)
newHeight=baseHeight;newWidth+=widthOffset;newHeight+=heightOffset;$timeout(function(){$window.resizeTo(newWidth,newHeight);});}
setRandomUniqueId();}
function getAvatar(){if(vm.signUpBasic.avatarFile!=null)
vm.pervAvatarFile=vm.signUpBasic.avatarFile;return vm.pervAvatarFile||vm.signUpBasic.avatarFile||vm.signUpBasic.avatar;}
function setRandomUniqueId(){userservice.getRandomUniqueId(signinservice.currentUser.displayName).then(function(response){vm.signUpBasic.uniqueId=response.data.randomUniqueId;});}
function submitForm(form){if(form.$invalid||vm.disableForm){return;}
vm.disableForm=true;form.exceptions={};if(invalidateUniqueIdFormat(form)){return;}
userservice.existsUniqueId(vm.signUpBasic.uniqueId).then(function(response){if(response.data.exists){form.exceptions.existsUniqueId=true;vm.disableForm=false;}else{updateBasicInfo();}},function(error){form.exceptions.existsUniqueId=true;vm.disableForm=false;});}
function invalidateUniqueIdFormat(form){if(!validateUniqueIdFormat(form)){vm.disableForm=false;return true;}
return false;}
function validateUniqueIdFormat(form){var containLetterRegex=/[a-zA-Z]/;if(!containLetterRegex.test(vm.signUpBasic.uniqueId)){form.exceptions.uniqueIdLetter=true;return false;}
var containSpecialCharRegex=/[^a-zA-Z_\d]/;if(containSpecialCharRegex.test(vm.signUpBasic.uniqueId)){form.exceptions.uniqueIdCharacter=true;return false;}
return true;}
function updateBasicInfo(){var params={displayName:vm.signUpBasic.displayName,uniqueId:vm.signUpBasic.uniqueId,description:vm.signUpBasic.description,websiteUrl:vm.signUpBasic.websiteUrl,avatarFile:vm.signUpBasic.avatarFile};userservice.updateUser(params).then(function(response){signinservice.refreshCurrentUser(response.data.userInfo);$scope.displayName=vm.signUpBasic.displayName;$scope.closeModal();})['finally'](function(){vm.disableForm=false;});}
function cleanExceptions(form){form.exceptions={};}}})();(function(){'use strict';angular.module('app.user').controller('SignUpMKDController',SignUpMKDController);SignUpMKDController.$inject=['$scope','signinservice','userservice','$window','$timeout'];function SignUpMKDController($scope,signinservice,userservice,$window,$timeout){var vm=this;vm.disableForm=false;vm.submitForm=submitForm;vm.closeModal=closeModal;vm.email=$scope.email;vm.displayName=$scope.displayName;activate();function activate(){var w=angular.element($window);var container=angular.element(document.getElementById("profileWrapper"));var baseWidth=container.width()+100;var baseHeight=container.height()+100;if(w.width()<baseWidth||w.height()<baseHeight){var widthOffset=$window.outerWidth-$window.innerWidth;var heightOffset=$window.outerHeight-$window.innerHeight;var newWidth=w.width();var newHeight=w.height();if(w.width()<baseWidth)
newWidth=baseWidth;if(w.height()<baseHeight)
newHeight=baseHeight;newWidth+=widthOffset;newHeight+=heightOffset;$timeout(function(){$window.resizeTo(newWidth,newHeight);});}}
function closeModal(){$scope.closeModal();}
function submitForm(form){form.exceptions={};if(form.$invalid){return;}
vm.disableForm=true;$scope.setMkdEmail(vm.email);userservice.sendMkdMail(vm.email,vm.displayName).then(function(response){$scope.changeInnerState("sign.up.mkd.msg");})['finally'](function(){vm.disableForm=false;});}
function cleanExceptions(form){form.exceptions={};}}})();(function(){'use strict';angular.module('app.user').controller('SignUpMKDMsgController',SignUpMKDMsgController);SignUpMKDMsgController.$inject=['$scope','$window','$timeout'];function SignUpMKDMsgController($scope,$window,$timeout){var vm=this;vm.closeModal=$scope.closeModal;vm.email=$scope.mkdEmail;activate();function activate(){var w=angular.element($window);var container=angular.element(document.getElementById("profileWrapper"));var baseWidth=container.width()+100;var baseHeight=container.height()+100;if(w.width()<baseWidth||w.height()<baseHeight){var widthOffset=$window.outerWidth-$window.innerWidth;var heightOffset=$window.outerHeight-$window.innerHeight;var newWidth=w.width();var newHeight=w.height();if(w.width()<baseWidth)
newWidth=baseWidth;if(w.height()<baseHeight)
newHeight=baseHeight;newWidth+=widthOffset;newHeight+=heightOffset;$timeout(function(){$window.resizeTo(newWidth,newHeight);});}}}})();(function(){'use strict';angular.module('app.user').controller('SignUpProfile1Controller',SignUpProfile1Controller);SignUpProfile1Controller.$inject=['$scope','signinservice','userservice'];function SignUpProfile1Controller($scope,signinservice,userservice){var vm=this;vm.signUpProfile1={'gender':signinservice.currentUser.gender,'birthday':toAccountSettingBirthday(signinservice.currentUser.birthday),'skinType':signinservice.currentUser.attribute.skinType,'underTone':signinservice.currentUser.attribute.underTone,'isSensitive':signinservice.currentUser.attribute.isSensitive};function toAccountSettingBirthday(userBirthday){if(!userBirthday){return null;}
var date=new Date(userBirthday);return{year:date.getFullYear().toString(),month:(date.getMonth()+1).toString(),day:date.getDate().toString()};}
vm.disableForm=false;vm.getBirthdayYearRange=function(){var result=[];var lastYear=new Date().getFullYear();for(var i=lastYear;i>=lastYear-100;i--){result.push(i);}
return result;};vm.getBirthdayDayRange=function(){if(!vm.signUpProfile1.birthday||!vm.signUpProfile1.birthday.year||!vm.signUpProfile1.birthday.month){return[];}
var result=[];var lastDate=new Date(vm.signUpProfile1.birthday.year,vm.signUpProfile1.birthday.month,0).getDate();for(var i=1;i<=lastDate;i++){result.push(i);}
return result;};vm.save=function(){if(vm.signUpProfile1Form.$invalid){return;}
vm.disableForm=true;var params=angular.extend(signinservice.currentUser.attribute,{'gender':vm.signUpProfile1.gender,'birthday':toUserBirthday(vm.signUpProfile1.birthday),'skinType':vm.signUpProfile1.skinType,'underTone':vm.signUpProfile1.underTone,'isSensitive':vm.signUpProfile1.isSensitive});userservice.updateUser(params).then(function(response){signinservice.refreshCurrentUser(response.data.userInfo);$scope.changeInnerState('sign.up.profile2');});};function toUserBirthday(accountSettingBirthday){if(!accountSettingBirthday){return null;}
return accountSettingBirthday.year+'-'+padzero(accountSettingBirthday.month,2)+'-'
+padzero(accountSettingBirthday.day,2);}
function padzero(value,number){return value.length<number?padzero('0'+value,number):value;}}})();(function(){'use strict';angular.module('app.user').controller('SignUpProfile2Controller',SignUpProfile2Controller);SignUpProfile2Controller.$inject=['$scope','$state','signinservice','userservice'];function SignUpProfile2Controller($scope,$state,signinservice,userservice){var vm=this;vm.signUpProfile2={'eyeColor':signinservice.currentUser.attribute.eyeColor,'lashLength':signinservice.currentUser.attribute.lashLength,'hairTexture':signinservice.currentUser.attribute.hairTexture,'hairColor':signinservice.currentUser.attribute.hairColor,'hairType':signinservice.currentUser.attribute.hairType};vm.disableForm=false;vm.save=function(){if(vm.signUpProfile2Form.$invalid){return;}
vm.disableForm=true;var params=angular.extend(signinservice.currentUser.attribute,{'eyeColor':vm.signUpProfile2.eyeColor,'lashLength':vm.signUpProfile2.lashLength,'hairTexture':vm.signUpProfile2.hairTexture,'hairColor':vm.signUpProfile2.hairColor,'hairType':vm.signUpProfile2.hairType});userservice.updateUser(params).then(function(response){signinservice.refreshCurrentUser(response.data.userInfo);$scope.closeModal();});};}})();(function(){'use strict';angular.module('app.user').controller('MobileSignInController',MobileSignInController);MobileSignInController.$inject=['$stateParams','$window','signinservice','facebookservice','weiboservice','userservice','$state','authService','recaptchaservice','redirectUrl'];function MobileSignInController($stateParams,$window,signinservice,facebookservice,weiboservice,userservice,$state,authService,recaptchaservice,redirectUrl){var vm=this;vm.email="";vm.password="";vm.consentOpt="";vm.signInEmail=signInEmail;vm.signInFacebook=signInFacebook;vm.signInWeibo=signInWeibo;vm.signUpEmail=signUpEmail;vm.referer=$stateParams.referer;vm.isSignInFlow=$stateParams.isSignInFlow;vm.redirectUrl=redirectUrl;vm.toggleIsSignInFlow=toggleIsSignInFlow;vm.submitForm=submitForm;vm.disableForm=false;vm.facebookLoading=false;vm.forgotPassword=forgotPassword;vm.isCnDomain=isCnDomain;activate();function activate(){if(vm.redirectUrl){signinservice.challengeSignOut().then(function(response){console.log(response);});}}
function isCnDomain(){return $window.location.host.indexOf('cn')!==-1;}
function forgotPassword(form){$state.go('forgot-password',{email:form.email.$viewValue});}
function submitForm(form){form.exceptions={};if(form.$invalid){return;}
if(vm.isSignInFlow){signInEmail(form);}else{signUpEmail(form);}}
function signInEmail(form){vm.disableForm=true;if(!vm.consentOpt){vm.consentOpt=false;}
var recaptcha=document.getElementById('__request-recaptcha__').value;signinservice.signInEmailv2(vm.email,vm.password,vm.consentOpt,vm.redirectUrl,recaptcha).then(function(response){var status=response.data.status;if(status==="OK"||status==="AccountCreated"){handleSignUpResponse(response,form);}else if(status==="WaitValidate"){recaptchaservice.reloadRecaptcha('m_sign_in');form.exceptions.waitvalidate=true;}else if(status==="RecaptchaError"){recaptchaservice.reloadRecaptcha('m_sign_in');form.exceptions.recaptchaerror=true;}else{recaptchaservice.reloadRecaptcha('m_sign_in');form.exceptions.signinerror=true;}},function(error){recaptchaservice.reloadRecaptcha('m_sign_in');form.exceptions.signinerror=true;})['finally'](function(){recaptchaservice.reloadRecaptcha('m_sign_in');vm.disableForm=false;});}
function signInFacebook(form){resetForm(form);facebookservice.checkLoginStatusOrLogin().then(function(response){var token=response.authResponse.accessToken;vm.facebookLoading=true;signinservice.signInFacebook(token,vm.consentOpt,vm.redirectUrl).then(function(response){handleSignUpResponse(response,form);},function(error){form.exceptions.signuperror=true;})['finally'](function(){vm.facebookLoading=false;});});}
function signInWeibo(form){resetForm(form);weiboservice.login().then(function(response){var code=response.authResponse.code;vm.facebookLoading=true;return signinservice.signInWeibo(code);}).then(function(response){handleSignUpResponse(response,form,false);})['catch'](function(error){form.exceptions.signuperror=true;})['finally'](function(){vm.facebookLoading=false;});}
function resetForm(form){form.exceptions={};form.$setPristine();form.$setUntouched();}
function toggleIsSignInFlow(form){resetForm(form);vm.isSignInFlow=!vm.isSignInFlow;}
function signUpEmail(form){vm.disableForm=true;signinservice.signUpEmail(vm.email,vm.password).then(function(response){handleSignUpResponse(response,form,vm.email);},function(error){form.exceptions.signuperror=true;})['finally'](function(){vm.disableForm=false;});}
function handleSignUpResponse(response,form,email){if(response.data.status==="OK"||response.data.status==="AccountCreated"){if(response.data.redirectUrl){$window.location.href=response.data.redirectUrl;return;}}
if(response.data.status==="OK"){authService.loginConfirmed();var userId=response.data.userInfo.userId;userservice.queryUser(userId).then(function(userResponse){signinservice.refreshCurrentUser(userResponse.data);var config={isMobileSignUpSetting:true};if(vm.referer)
config.referer=vm.referer;$state.go('mobile-account-setting',config);});}else if(response.data.status==="WaitValidate"){$state.go('mobile-sign-up-activation-step');}else if(response.data.status==="AccountCreated"){if(signinservice.isSignIn){authService.loginConfirmed();if(vm.referer){$window.location.href=vm.referer;}else{$window.location.href='/';}}else{form.exceptions.signinerror=true;}}else{form.exceptions.signuperror=true;}}}})();(function(){'use strict';angular.module('app.user').controller('ForgotPasswordController',ForgotPasswordController);ForgotPasswordController.$inject=['$scope','userservice','email'];function ForgotPasswordController($scope,userservice,email){$scope.innerState="input.email";var vm=this;vm.email=email;vm.submitForm=submitForm;function submitForm(form){form.exceptions={};if(form.$invalid){return;}
forgotPassword(form);}
function changeInnerState(state){$scope.innerState=state;}
function forgotPassword(form){var email=vm.email;userservice.forgotPassword(email).then(function(response){changeInnerState('email.sent');},function(error){form.exceptions.forgotpwderror=true;});}}})();(function(){'use strict';angular.module('app.user').controller('ResetPasswordController',ResetPasswordController);ResetPasswordController.$inject=['$rootScope','$scope','$state','userservice','signinservice','events','memberId','memberCode'];function ResetPasswordController($rootScope,$scope,$state,userservice,signinservice,events,memberId,memberCode){$scope.innerState="input.password";var vm=this;vm.memberId=memberId;vm.memberCode=memberCode;vm.password="";vm.confirmedPassword="";vm.submitForm=submitForm;vm.signIn=signIn;activate();function activate(){if(signinservice.isSignIn){$state.go('home');return;}}
function submitForm(form){form.exceptions={};if(form.$invalid){return;}
if(!validatePassword()){form.exceptions.confirmpwderror=true;return;}
resetPassword(form);}
function changeInnerState(state){$scope.innerState=state;}
function validatePassword(){return vm.password===vm.confirmedPassword;}
function resetPassword(form){userservice.resetPassword(vm.memberId,vm.memberCode,vm.password).then(function(response){changeInnerState('sign.in');},function(error){if(error.status==418){$state.go('reset-password-expired');return;}
form.exceptions.resetpwderror=true;});}
function signIn(){$rootScope.$broadcast(events.LOGIN_REQUIRED);}}})();(function(){'use strict';angular.module('app.user').controller('AccountActivatedController',AccountActivatedController);AccountActivatedController.$inject=['$rootScope','$state','constants','events','signinservice'];function AccountActivatedController($rootScope,$state,constants,events,signinservice){var vm=this;vm.signinservice=signinservice;vm.signIn=signIn;activate();function activate(){if(signinservice.isSignIn){$state.go('home');}else{$rootScope.$broadcast(events.ACCOUNT_ACTIVATED);}}
function signIn(){if(constants.isMobile){$state.go('mobile-signin',{referer:'/'});}else{$rootScope.$broadcast(events.LOGIN_REQUIRED);}}}})();(function(){'use strict';angular.module('app.user').controller('AccountDeleteController',AccountDeleteController);AccountDeleteController.$inject=['$scope','$rootScope','$state','$timeout','$window','$http','constants','events','signinservice','userservice','authService','deviceservice','appheaderservice'];function AccountDeleteController($scope,$rootScope,$state,$timeout,$window,$http,constants,events,signinservice,userservice,authService,deviceservice,appheaderservice){var vm=this;vm.email='';vm.token='';vm.loading=false;vm.deleteLoading=false;vm.leavePage=true;vm.signInToken=signInToken;vm.logout=logout;vm.deleteAccount=deleteAccount;activate();function activate(){if(deviceservice.isYoucam()){userservice.hideHeader();appheaderservice.setDeleteAccountStatus(1);}
vm.loading=true;if(deviceservice.isYoucam()){$scope.$on('$viewContentLoaded',function(event){$timeout(function(){$window.addEventListener('youcam-event',function(event){var e=event.detail;switch(e.type){case'session.created':vm.token=e.token;vm.signInToken(e.token);break;}});var app='ycs';if(deviceservice.isYMK()){app='ymk';}
if(deviceservice.isYCP()){app='ycp';}
if(deviceservice.isYCN()){app='ycn';}
if(deviceservice.isYCF()){app='ycf';}
if(deviceservice.isYBC()){app='ybc';}
if(deviceservice.isYCS()){app='ycs';}
var e=document.createElement('iframe');e.src=app+'://web_ready';e.style.display='none';document.body.appendChild(e);document.body.removeChild(e);},500);});}else{userservice.queryUser(signinservice.currentUser.userId).then(function(userResponse){signinservice.refreshCurrentUser(userResponse.data);if(userResponse.data.email){vm.email=userResponse.data.email;vm.loading=false;}else{vm.loading=false;$state.go('bc-account-delete-continue',{token:token});}});}}
function signInToken(token){userservice.queryUserByToken(token).then(function(result){authService.loginConfirmed();userservice.queryUser(result.data.userId).then(function(userResponse){signinservice.refreshCurrentUser(userResponse.data);if(userResponse.data.email){vm.email=userResponse.data.email;vm.loading=false;}else{vm.loading=false;$state.go('account-delete-continue',{token:token});}
return;});});}
function logout(){if(deviceservice.isYoucam()){$window.location.href='ybc://logout';}else{userservice.logout().then(function(result){$window.location.reload();$state.go('home');});}}
function deleteAccount(){vm.deleteLoading=true;var source=deviceservice.isYoucam()?'app':'bc';var deleteToken=source=='app'?vm.token:'';$timeout(function(){userservice.deleteAccount(source,deleteToken).then(function(result){console.log('deleteAccount result:',result);if(deviceservice.isAndroid()){userservice.changeLocation('ybc://delete_confirm');}
vm.deleteLoading=false;if(result.status==200){vm.leavePage=false;appheaderservice.setDeleteAccountStatus(2);}});},500);}}})();(function(){'use strict';angular.module('app.user').controller('AccountDeleteContinueController',AccountDeleteContinueController);AccountDeleteContinueController.$inject=['$scope','$rootScope','$state','$stateParams','$timeout','$window','constants','userservice','deviceservice','appheaderservice'];function AccountDeleteContinueController($scope,$rootScope,$state,$stateParams,$timeout,$window,constants,userservice,deviceservice,appheaderservice){var vm=this;vm.token='';vm.continueLoading=false;vm.continuePage=true;vm.logout=logout;vm.continueDeleteAccount=continueDeleteAccount;activate();function activate(){if($stateParams.token){vm.token=$stateParams.token;}
if(deviceservice.isYoucam()){userservice.hideHeader();appheaderservice.setDeleteAccountStatus(1);}}
function logout(){if(deviceservice.isYoucam()){$window.location.href='ybc://logout';}else{userservice.logout().then(function(result){$window.location.reload();$state.go('home');});}}
function continueDeleteAccount(){vm.continueLoading=true;var source=deviceservice.isYoucam()?'app':'bc';var deleteToken=source=='app'?vm.token:'';$timeout(function(){userservice.directDeleteAccount(source,deleteToken).then(function(result){console.log('continueDeleteAccount result:',result);if(deviceservice.isAndroid()){userservice.changeLocation('ybc://delete_confirm');}
vm.continueLoading=false;if(result.status==200){vm.continuePage=false;appheaderservice.setDeleteAccountStatus(2);}});},500);}}})();(function(){'use strict';angular.module('app.user').controller('UnsubscribeEmailController',UnsubscribeEmailController);UnsubscribeEmailController.$inject=['userservice','templateId','encoded'];function UnsubscribeEmailController(userservice,templateId,encoded){var vm=this;vm.email='';vm.templateId='';vm.unsubscribe=unsubscribe;vm.innerState='init';activate();function activate(){vm.templateId=(templateId==undefined)?'':templateId;userservice.queryEncodedEmail(encoded).then(function(response){vm.email=response.data;if(vm.email==''){vm.innerState='invalid';}});}
function unsubscribe(){userservice.unsubscribeEmail(vm.templateId,encoded).then(function(response){if(response.status==200){vm.innerState='success';}else{vm.innerState='failure';}});}}})();(function(){'use strict';angular.module('app.user').controller('UnsubscribeMailboxController',UnsubscribeMailboxController);UnsubscribeMailboxController.$inject=['userservice','templateId','encode'];function UnsubscribeMailboxController(userservice,templateId,encode){var vm=this;vm.email='';vm.unsubscribe=unsubscribe;vm.innerState='init';activate();function activate(){userservice.queryMailboxEncodeEmail(templateId,encode).then(function(response){vm.email=response.data;if(vm.email==''){vm.innerState='invalid';}});}
function unsubscribe(){userservice.unsubscribeMailboxEmail(templateId,encode).then(function(response){if(response.status==200){vm.innerState='success';}else{vm.innerState='fail';}});}}})();(function(){'use strict';angular.module('app.user').controller('FreegiftController',FreegiftController);FreegiftController.$inject=['$stateParams','$window','freegiftservice','userservice','SweetAlert','store','$document'];function FreegiftController($stateParams,$window,freegiftservice,userservice,SweetAlert,store,$document){var vm=this;vm.region='en_ROW';vm.userModel={};vm.brandEvent=null;vm.userInfo=null;vm.eventLoaded=false;vm.userLoaded=false;vm.submitForm=submitForm;vm.cacheUserModel=cacheUserModel;vm.stores=null;vm.cities=null;vm.numOfStores=0;activate();function activate(){vm.eventLoaded=false;vm.userLoaded=false;userservice.queryUserByToken($stateParams.token).then(function(result){vm.userInfo=result.data;vm.userLoaded=true;vm.region=$stateParams.bcCountry?$stateParams.bcCountry:vm.userInfo.region;initUserModel(vm.userInfo,vm.region);});freegiftservice.queryEventById($stateParams.brandEventId).then(function(result){vm.brandEvent=result.data;vm.eventLoaded=true;if(vm.brandEvent.storeAddress){try{vm.stores=JSON.parse(vm.brandEvent.storeAddress);vm.cities=Object.keys(vm.stores);for(var i=0;i<vm.cities.length;i++){var key=vm.cities[i];vm.numOfStores+=vm.stores[key].length;}}catch(e){console.log(e);}}});$document.find('html').css('background','url(/assets/images/trans.png)');}
function initUserModel(userInfo,region){var tmp=store.get(getCacheKeyOfUserModel(userInfo.userId,region));if(tmp){vm.userModel=tmp;}else{vm.userModel.email=userInfo.email;}}
function getCacheKeyOfUserModel(userId,region){return'freegift.user.model.'+userId+'.'+region;}
function storeUserModel(userId,region,userModel){if(vm.brandEvent.receiveType=='Home'){store.set(getCacheKeyOfUserModel(userId,region),userModel);}else{var tmp={name:userModel.name,phone:userModel.phone,email:userModel.email};store.set(getCacheKeyOfUserModel(userId,region),tmp);}}
function submitForm(form){form.exceptions={};if(form.$invalid){SweetAlert.swal({title:$('#fg-event-error-title').text(),text:$('#fg-event-error-text').text(),type:'warning',confirmButtonText:$('#fg-event-error-button').text()});return;}
joinEvent(form);}
function cacheUserModel(){if(vm.userInfo&&vm.userInfo.userId){storeUserModel(vm.userInfo.userId,vm.region,vm.userModel);}}
function joinEvent(form){resetForm(form);vm.joined=false;freegiftservice.joinEvent($stateParams.token,$stateParams.brandEventId,vm.userModel.name,vm.userModel.phone,vm.userModel.email,buildAddress(),buildLocationOfStore(),buildNameOfStore(),buildSocialId()).then(function(response){SweetAlert.swal({title:$('#fg-event-success-title').text(),text:$('#fg-event-success-text').text(),type:'success',confirmButtonText:$('#fg-event-success-button').text()},function(){closeApp();});storeUserModel(vm.userInfo.userId,vm.region,vm.userModel);},function(error){form.exceptions.signuperror=true;})['finally'](function(){vm.joined=true;});}
function buildLocationOfStore(){if(vm.numOfStores==1){return vm.cities[0];}else{return vm.userModel.cityOfStore;}}
function buildNameOfStore(){if(vm.numOfStores==1){if(vm.stores&&vm.cities&&vm.stores[vm.cities[0]]){return vm.stores[vm.cities[0]][0].name;}}else if(vm.stores&&vm.stores[vm.userModel.cityOfStore]&&vm.stores[vm.userModel.cityOfStore][vm.userModel.indexOfStore]){return vm.stores[vm.userModel.cityOfStore][vm.userModel.indexOfStore].name;}}
function buildAddress(){var region=vm.region;if(vm.brandEvent.receiveType=='Store'){if(vm.numOfStores==1){if(vm.stores&&vm.cities&&vm.stores[vm.cities[0]]){return vm.stores[vm.cities[0]][0].address+'';}}else if(vm.stores&&vm.stores[vm.userModel.cityOfStore]&&vm.stores[vm.userModel.cityOfStore][vm.userModel.indexOfStore]){return vm.stores[vm.userModel.cityOfStore][vm.userModel.indexOfStore].address+'';}}
if(region=='en_US'){return vm.userModel.address+" "+vm.userModel.city+" "+vm.userModel.state+" "+vm.userModel.postcode;}
if(region=='zh_CN'){return vm.userModel.state+" "+vm.userModel.city+" "+vm.userModel.address+" "+vm.userModel.postcode;}
if(region=='ja_JP'){return vm.userModel.postcode+" "+vm.userModel.state+" "+vm.userModel.city+" "+vm.userModel.address;}
return vm.userModel.postcode+" "+vm.userModel.city+" "+vm.userModel.address;}
function buildSocialId(){if(vm.brandEvent.applyType=='FollowIG'){return $stateParams.socialId?$stateParams.socialId:"";}
return"";}
function resetForm(form){form.exceptions={};form.$setPristine();form.$setUntouched();}
function closeApp(){$window.location.href='ybc://event/?submitted=true';}}})();(function(){'use strict';angular.module('app.user').controller('GdprSubscribeController',GdprSubscribeController);GdprSubscribeController.$inject=['$stateParams','userservice','gdprservice','encoded','ver','enMemberId'];function GdprSubscribeController($stateParams,userservice,gdprservice,encoded,ver,enMemberId){var vm=this;vm.status='init';vm.encoded=null;vm.enMemberId=null;vm.subscription={trend:true,promo:true};vm.confirm=confirm;activate();function activate(){if(enMemberId){vm.enMemberId=enMemberId;}
if(encoded){vm.encoded=encoded;}
if(ver&&ver=='A'){vm.status='init';}else{vm.status='confirm';vm.confirm();}}
function confirm(){gdprservice.updateGdprSubscription(vm.encoded,vm.subscription).then(function(res){vm.status='confirm';});}}})();(function(){'use strict';angular.module('app.user').controller('GdprSubscribeConfirmController',GdprSubscribeConfirmController);GdprSubscribeConfirmController.$inject=['$stateParams','userservice','gdprservice','encoded','wid'];function GdprSubscribeConfirmController($stateParams,userservice,gdprservice,encoded,wid){var vm=this;activate();function activate(){if(encoded){gdprservice.logGdprInfo(encoded,wid);}}}})();(function(){'use strict';angular.module('app.user').controller('PersonalDataController',PersonalDataController);PersonalDataController.$inject=['$scope','$rootScope','$window','$state','constants','events','$stateParams','signinservice','userservice'];function PersonalDataController($scope,$rootScope,$window,$state,constants,events,$stateParams,signinservice,userservice){var vm=this;vm.signinservice=signinservice;vm.downloadData=downloadData;vm.isError=false;vm.errorCode=null;activate();function activate(){if(!signinservice.isSignIn){if(constants.isMobile){$state.go('mobile-signin',{referer:$window.location.href});}else{$rootScope.$broadcast(events.LOGIN_REQUIRED);}}}
function downloadData(){userservice.getPersonalDataDownloadUrl().then(function(res){if(res.data.indexOf('downloadUrl')!==-1){vm.isError=false;var r=JSON.parse(res.data);$window.open(r.downloadUrl);}else{vm.isError=true;var parser=new DOMParser();var parsedHtml=parser.parseFromString(res.data,'text/html');var h1=parsedHtml.getElementsByTagName('h1')[0].innerText;if(h1.indexOf('420')!==-1){vm.errorCode=420;}
if(h1.indexOf('453')!==-1){vm.errorCode=453;}
if(h1.indexOf('454')!==-1){vm.errorCode=454;}
if(h1.indexOf('455')!==-1){vm.errorCode=455;}}})}}})();(function(){'use strict';angular.module('app.home',['ngCookies']);})();(function(){'use strict';angular.module('app.home').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('home',{url:'/',views:{'':{templateUrl:'/app/home/controllers/home.jsp',controller:'HomeController',controllerAs:'vm'},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm',resolve:{ipCountry:['$stateParams','redeemservice',function($stateParams,redeemservice){return redeemservice.getIpCountry();}]}}},params:{'showWelcomeMessage':false}});}})();(function(){'use strict';angular.module('app.home').controller('HomeController',HomeController);HomeController.$inject=['$scope','$controller','postservice','$rootScope','events','$cookies','deviceservice','constants','$timeout','chromeservice','homeservice','$window'];function HomeController($scope,$controller,postservice,$rootScope,events,$cookies,deviceservice,constants,$timeout,chromeservice,homeservice,$window){angular.extend(this,$controller('MasonryController',{$scope:$scope}));$scope.searchId=null;var vm=this;vm.showChromePrompt=false;vm.closeChromePrompt=closeChromePrompt;vm.installChromePlugin=chromeservice.installPlugin;var requestRegion=$('#__request-region__').attr('region');var filterPosts=homeservice.getFilterPosts();$scope.filter=function(posts){var p=[];for(var i=0;i<posts.length;i++){var post=posts[i];if(post.postType=='BUYABLE'){if(filterPosts[requestRegion]&&filterPosts[requestRegion].indexOf(post.id)!=-1){p.push(post);}}else{p.push(post);}}
return p;};activate();function activate(){var debug=$window.location.search.indexOf('debug')!=0;if(debug){$scope.listposts=postservice.listDiscoverWithOriginal;}else{$scope.listposts=postservice.listDiscover;}
$rootScope.$broadcast(events.META_CHANGED,{});}
function setShowChromePrompt(){if(constants.isMobile){vm.showChromePrompt=false;}else if(!deviceservice.isChrome()){vm.showChromePrompt=false;}else if(isPluginInstalled()){vm.showChromePrompt=false;}else if(isForceToClose()){vm.showChromePrompt=false;}else{vm.showChromePrompt=true;}}
function closeChromePrompt(){$cookies.put("bcw_closeChromePrompt","1");vm.showChromePrompt=false;}
function isForceToClose(){var closed=$cookies.getObject("bcw_closeChromePrompt");return(closed=="1");}
function setPluginInstalled(){$scope.$apply(function(){vm.showChromePrompt=false;});}
function isPluginInstalled(){return chromeservice.isPluginInstalled();}
$rootScope.$on(events.CHROME_PLUGIN_INSTALLED,function(){setPluginInstalled();});$timeout(function(){setShowChromePrompt();},500);}})();(function(){'use strict';angular.module('app.home').factory('homeservice',homeservice);homeservice.$inject=['$http','cacheservice'];function homeservice($http,cacheservice){var service={getFilterPosts:getFilterPosts};return service;function getFilterPosts(){return{'en_US':['352579902823738924','352593425222086274','352597581156593312','352599802459991739'],'en_GB':['355833528363167017','355833721666055512','355833914734062983','355893936558091542'],'en_CA':['355834450589953462','355834583935266277','355834712209665556','355894517276257450'],'en_AU':['355835255275564618','355835416726908537','355835565263990440','355894992365072189']};}}})();(function(){'use strict';angular.module('app.home').factory('appheaderservice',appheaderservice);appheaderservice.$inject=['$http','$httpParamSerializer','cacheservice','store','constants'];function appheaderservice($http,$httpParamSerializer,cacheservice,store,constants){var service={setDeleteAccountStatus:setDeleteAccountStatus,getDeleteAccountStatus:getDeleteAccountStatus};return service;function setDeleteAccountStatus(status){store.set('delete_account_status',status);}
function getDeleteAccountStatus(){var status=store.get('delete_account_status');if(status==null){return null;}
return status;}}})();(function(){'use strict';angular.module('app.home').controller('HeaderController',HeaderController);HeaderController.$inject=['$rootScope','$scope','$window','$document','$timeout','$state','$uibModal','constants','events','signinservice','welcomeservice','$stateParams','circletypeservice','deviceservice','$location'];function HeaderController($rootScope,$scope,$window,$document,$timeout,$state,$uibModal,constants,events,signinservice,welcomeservice,$stateParams,circletypeservice,deviceservice,$location){var vm=this;vm.signinservice=signinservice;vm.signIn=signIn;vm.signOut=signOut;vm.editAccountSetting=editAccountSetting;vm.isSettingDropdownOpen=false;vm.toggleSettingDropdown=toggleSettingDropdown;vm.isMobile=constants.isMobile;vm.goToHome=goToHome;vm.goToSearch=goToSearch;vm.keyword=$stateParams.q;vm.howToCircleType=null;vm.isHowTo=isHowTo;vm.isLookSalon=isLookSalon;vm.showMobileLookSalon=showMobileLookSalon;vm.showMobileSearchIcon=showMobileSearchIcon;vm.isPerfectApp=isPerfectApp;vm.bcChallengeUrl=constants.challengeUrl;var goToState=null;$scope.$on(events.ACCOUNT_ACTIVATED,function(){goToState='home';});activate();function activate(){if($location&&$location.$$host){if($location.$$host=='localhost'||$location.$$host=='demo.beautycircle.com'){vm.bcChallengeUrl=constants.challengeDemoUrl;}}
circletypeservice.listCircleTypes().then(function(response){for(var i=0;i<response.data.length;i++){if(response.data[i].defaultType.indexOf('HOW-TO')!=-1){vm.howToCircleType=response.data[i];break;}}});}
function showMobileSearchIcon(){if(!vm.isMobile){return false;}
if(deviceservice.isYoucam()){return false;}
return true;}
function openWelcomeToast(){toastrConfig.templates.toast='welcome-toast.html';toastrConfig.positionClass='toast-top-center';toastrConfig.timeOut=2000;toastrConfig.extendedTimeOut=1000;toastr.success();}
function goToHome(){if(deviceservice.isYoucam()){return false;}
if($state.current.name=='home'){$window.location.href='/';}else{$state.go('home');}}
function goToSearch(){$state.go('mobile-search',{q:''});}
function signIn(){if(constants.isMobile){if(deviceservice.isYoucam()){return false;}
$state.go('mobile-signin',{referer:$window.location.href});}else{$rootScope.$broadcast(events.LOGIN_REQUIRED);}}
function signOut(){toggleSettingDropdown();signinservice.signOut();}
function editAccountSetting(){if(constants.isMobile){$state.go('mobile-account-setting',{},{reload:true});}else{$state.go('account-setting',{},{reload:true});}}
function toggleSettingDropdown(){vm.isSettingDropdownOpen=!vm.isSettingDropdownOpen;$document.off('click',clickOutsideSetting);$document.on('click',clickOutsideSetting);}
function clickOutsideSetting(event){var isClickedElementChildOfPopup=$document.find('.setting_menu,.top_setting').find(event.target).length>0;if(isClickedElementChildOfPopup){return;}
$scope.$apply(function(){vm.isSettingDropdownOpen=false;});$document.off('click',clickOutsideSetting);}
function isHowTo(){if(vm.howToCircleType){return $window.location.pathname.indexOf('/category/'+vm.howToCircleType.id)!=-1;}
return false;}
function isLookSalon(){return $window.location.pathname.indexOf('/looksalon')!=-1;}
function showMobileLookSalon(){if(!constants.isMobile){return false;}
var p=$window.location.pathname;if(p=='/'){return true;}
if(p.indexOf('/looksalon')!=-1){return true;}
if(p.indexOf('/category')!=-1){return true;}
return false;}
function isPerfectApp(){return deviceservice.isYoucam();}}})();(function(){'use strict';angular.module('app.home').controller('AppHeaderController',AppHeaderController);AppHeaderController.$inject=['$rootScope','$scope','$state','$window','userservice','deviceservice','appheaderservice'];function AppHeaderController($rootScope,$scope,$state,$window,userservice,deviceservice,appheaderservice){var vm=this;vm.back=back;vm.appHeaderStyle=appHeaderStyle;activate();function activate(){applyBackButton('app__header__back');appHeaderStyle('app__header__title');}
function back(){if(deviceservice.isYoucam()){if(appheaderservice.getDeleteAccountStatus()==1){$window.location.href='ybc://action_back';}else{$window.location.href='ybc://logout';}}else{userservice.logout().then(function(result){$window.location.reload();$state.go('home');});}}
function applyBackButton(objId){if(deviceservice.isIOS()){$("#"+objId).attr('class','app__header__back');}
if(deviceservice.isAndroid()){$("#"+objId).attr('class','app__header__back--android');}}
function appHeaderStyle(objId){$("#"+objId).css(calWidth());}
function calWidth(){return{"width":getWidth()+'px',"margin-left":-getWidth()/2+'px'};}
function getWidth(){return screen.width-54*2;}}})();(function(){'use strict';angular.module('app.home').controller('FooterController',FooterController);FooterController.$inject=['signinservice','$rootScope','events','constants','applinkservice','deviceservice','$window','$state','cookieservice','userservice','$document','store','ipCountry'];function FooterController(signinservice,$rootScope,events,constants,applinkservice,deviceservice,$window,$state,cookieservice,userservice,$document,store,ipCountry){var vm=this;vm.showEventBanner=true;vm.isMobile=constants.isMobile;vm.clickSignUp=clickSignUp;vm.launchApp=launchApp;vm.isIOS9=deviceservice.isIOS9;vm.isGetBtnEnabled=isGetBtnEnabled;vm.isSignUpBtnEnabled=isSignUpBtnEnabled;vm.getAppIcon=getAppIcon;vm.getApp=getApp;vm.showOriginBanner=showOriginBanner;vm.showShopListBanner=showShopListBanner;vm.hideShopListBanner=hideShopListBanner;vm.showCookieStatement=showCookieStatement;vm.closeCookieStatement=closeCookieStatement;activate();function activate(){if(constants.isMobile){var ts;$(document).bind('touchstart',function(e){ts=e.originalEvent.touches[0].clientY;});$(document).bind('touchmove',function(e){var te=e.originalEvent.changedTouches[0].clientY;if(ts>te){$('.shoplist').slideUp('slow');}else{$('.shoplist').slideDown('slow');}});}else{var lastScrollTop=0;$(window).scroll(function(e){var st=$(this).scrollTop();if(st>lastScrollTop){$('.shoplist').slideUp('slow');}else{$('.shoplist').slideDown('slow');}
lastScrollTop=st;});}}
function clickSignUp(){$rootScope.$broadcast(events.LOGIN_REQUIRED,{view:'signup'});}
function isSignUpBtnEnabled(){if(constants.isMobile){return false;}
if(signinservice.isSignIn){return false;}
if(cookieservice.isFromWB()){return false;}
return true;}
function isGetBtnEnabled(){if(!constants.isMobile){return false;}
if($state.current.name==='circle-in-modal.native'){return false;}
if($state.current.name==='mobile-search'){return false;}
if(cookieservice.isFromWB()){return false;}
return!deviceservice.isUnableToOpenApp();}
function launchApp(){var appUrl=getAppUrl();var fallbackUrl=getFallbackUrl(appUrl);applinkservice.launchApp(appUrl,fallbackUrl);}
function getFallbackUrl(appUrl){return applinkservice.getFallbackUrl(appUrl,getApp(),'bottom_banner');}
function getAppUrl(){return applinkservice.getAppUrl($window.location.pathname,getApp());}
function getAppIcon(){var app=getApp();if(app=='ymk'){return'ymk_app_icon.png';}
if(app=='ycp'){return'ycp_app_icon.png';}
if(app=='ycn'){return'ycn_app_icon.png';}
if(app=='ycf'){return'ycf_app_icon.png';}
return'ybc_app_icon.png';}
function getApp(){var c=cookieservice.getLastUsedApp();return c?c:'ybc';}
function showShopListBanner(){return $window.location.pathname.indexOf('shoplist')==-1;}
function showOriginBanner(){var requestRegion=$('#__request-region__').attr('region');if(['en_US','en_GB','en_CA','en_AU'].indexOf(requestRegion)!=-1){return false;}
return false;}
function hideShopListBanner(){vm.showEventBanner=false;}
function showCookieStatement(){var eu=['AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR','DE','GR','HU','IT','IE','LV','LT','LU','MT','NL','PL','PT','RO','ES','SK','SI','SE','GB'];var requestRegion=$('#__request-region__').attr('region');if(eu.indexOf(ipCountry.ipCountry)!=-1||['en_GB','fr_FR','de_DE'].indexOf(requestRegion)!=-1){var cs=store.get('cookie_statement');if(cs==null){return true;}}
return false;}
function closeCookieStatement(){vm.showStatement=false;store.set('cookie_statement',true);}}})();(function(){'use strict';angular.module('app.post',['app.common','app.user','ngSanitize','angularMoment','angularLoad','app.circle','slick','dibari.angular-ellipsis']);})();(function(){'use strict';angular.module('app.post').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('modal.post',{url:'^/post/:postId',resolve:{post:['$stateParams','postservice','$location',function($stateParams,postservice,$location){var search=$location.search();if(search&&search.source==='makeupdirector'){return postservice.getPostDetail($stateParams.postId,false);}
return postservice.getPostDetail($stateParams.postId);}],listIdx:['$stateParams',function($stateParams){return $stateParams.listIdx;}]},onEnter:['$state','signinservice','post',function($state,signinservice,post){if(post.data.circles&&!post.data.circles[0].display){}}],views:{'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm'},'post@modal':{templateUrl:function($params){return'/app/post/controllers/post.jsp';},controller:'PostController',controllerAs:'vm'},'comment@modal.post':{templateUrl:'/app/post/controllers/comment.jsp',controller:'CommentController',controllerAs:'vm'}}});$stateProvider.state('modal',{params:{modal:false,previousState:null,listIdx:0},abstract:true,onEnter:['$rootScope','events','$state','$stateParams','$uibModal','historyservice',function($rootScope,events,$state,$stateParams,$uibModal,historyservice){if($stateParams.modal){var instance=$uibModal.open({template:'<div ui-view="modalRoot"></div>',size:'bc',animation:true});$rootScope.$broadcast(events.MODAL_OPEN,{modalName:'post',modalInstance:instance});var unsubscribeEvent=$rootScope.$on('$stateChangeStart',function(event,toState,toParams,fromState,fromParams){if(toState.name!=='modal.post'){unsubscribeEvent();}
if(toState.name==$stateParams.previousState){event.preventDefault();instance.close();}});instance.result['finally'](function(){unsubscribeEvent();historyservice.back();});}}],onExit:['$rootScope','$stateParams','events',function($rootScope,$stateParams,events){$rootScope.$broadcast(events.META_CHANGED,{})}],views:{'modalRoot@':{templateUrl:'/app/post/controllers/post.modal.jsp'},'':{template:'<div ui-view="post"></div>'}}});var circleItConfig={params:{templateUrl:null},templateUrl:function($stateParams){if($stateParams.templateUrl!==undefined&&$stateParams.templateUrl!==null)
return $stateParams.templateUrl;return'/app/post/controllers/circle-it.jsp';},controller:'CircleItController',controllerAs:'vm',resolve:{initTemplate:['$stateParams','constants',function($stateParams,constants){if(constants.isMobile){$stateParams.templateUrl='/app/post/controllers/circle-it-mobile.jsp';}
return;}],circles:['circleservice',function(circleservice){return circleservice.listCircleWithDefault();}],urlParam:['$stateParams',function($stateParams){return $stateParams.url;}],mediaParam:['$stateParams',function($stateParams){return $stateParams.media;}],titleParam:['$stateParams',function($stateParams){return $stateParams.title;}],contentParam:['$stateParams',function($stateParams){return $stateParams.content;}],sourcePostId:['$stateParams',function($stateParams){return $stateParams.sourcePostId;}]}};var circleItButtonConfig=angular.copy(circleItConfig);circleItButtonConfig.url='^/api/post/circleit/button?url&media&title&content';var circleItExtensionConfig=angular.copy(circleItConfig);circleItExtensionConfig.url='^/api/post/circleit/extension?url&media&title&content';$stateProvider.state('circle-it-button',circleItButtonConfig);$stateProvider.state('circle-it-extension',circleItExtensionConfig);$stateProvider.state('circle-in-modal',{params:{firstState:true,previousState:null,previousParams:{}},abstract:true,onEnter:['$stateParams','$rootScope','events','$state','$uibModal','constants',function($stateParams,$rootScope,events,$state,$uibModal,constants){var instance=$uibModal.open({template:'<div ui-view="circleInModalRoot"></div>',size:'circleit',animation:true});$rootScope.$broadcast(events.MODAL_OPEN,{modalName:'circle-in-modal',modalInstance:instance});var unsubscribeEvent=$rootScope.$on('$stateChangeStart',function(event,toState,toParams,fromState,fromParams){unsubscribeEvent();if(toState.name==$stateParams.previousState){event.preventDefault();instance.close();}});instance.result['finally'](function(){unsubscribeEvent();if($stateParams&&$stateParams.firstState){$state.go('home');}else{if($stateParams.previousState){$state.go($stateParams.previousState,{postId:$stateParams.previousParams.postId},{notify:false,reload:true})}}});}],onExit:['$rootScope','events','constants',function($rootScope,events,constants){if(constants.isMobile){return;}
$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'circle-in-modal'});}],views:{'circleInModalRoot@':{template:'<div ui-view="modal-root"></div>'}}});$stateProvider.state('private-post',{resolve:{initTemplate:['$stateParams','signinservice',function($stateParams,signinservice){$stateParams.isSignIn=signinservice.isSignIn;}]},views:{'':{templateUrl:function($params){if(!$params.isSignIn){return'/app/post/controllers/post-private-no-login.jsp';}
return'/app/post/controllers/post-private.jsp';}}}});$stateProvider.state('circle-in-modal.native',{params:{sourcePostId:null,isMobile:false},views:{'modal-root@circle-in-modal':{templateUrl:function($stateParams){if($stateParams.isMobile){return'/app/post/controllers/circle-in-mobile.jsp';}
return'/app/post/controllers/circle-in.jsp';},controller:'CircleInController',controllerAs:'vm'}},resolve:{init:['$stateParams','constants',function($stateParams,constants){$stateParams.isMobile=constants.isMobile;return;}],circles:['circleservice',function(circleservice){return circleservice.listCircleWithDefault();}],postParam:['$stateParams','postservice',function($stateParams,postservice){return postservice.getPostDetail($stateParams.sourcePostId);}],sourcePostId:['$stateParams',function($stateParams){return $stateParams.sourcePostId;}]}});}})();(function(){angular.module('app.post').factory('postservice',postservice);postservice.$inject=['$http','cacheservice','$httpParamSerializer'];function postservice($http,cacheservice,$httpParamSerializer){var service={getPostDetail:getPostDetail,listDiscover:listDiscover,listDiscoverWithOriginal:listDiscoverWithOriginal,listUserPosts:listUserPosts,listUserLikedPosts:listUserLikedPosts,listCirclePosts:listCirclePosts,uploadMedia:uploadMedia,circleIt:circleIt,circleIn:circleIn,listPostKeywordSuggestion:listPostKeywordSuggestion,listPostByKeyword:listPostByKeyword,listPostByCircleTypeId:listPostByCircleTypeId,listPostByLookType:listPostByLookType,listPostBySpecialEvent:listPostBySpecialEvent};return service;function getPostDetail(postId,cacheEnabled){var ce=cacheEnabled==false?false:true;return $http.get('/post/post.action?info&postId='+postId+'&cacheEnabled='+ce,{cache:cacheservice.cache});}
function listDiscover(pageIndex,pageSize){return $http.get('/post/post.action?listDiscover&pageIndex='+pageIndex+'&pageSize='+pageSize,{queue:true,cache:cacheservice.cache});}
function listDiscoverWithOriginal(pageIndex,pageSize){return $http.get('/post/post.action?listDiscoverWithOriginal&pageIndex='+pageIndex+'&pageSize='+pageSize,{queue:true,cache:cacheservice.cache});}
function listUserPosts(pageIndex,pageSize,userId){return $http.get('/post/post.action?listUserPosts&pageIndex='+pageIndex+'&pageSize='+pageSize+'&userId='+userId,{queue:true,cache:cacheservice.cache});}
function listPostByCircleTypeId(pageIndex,pageSize,circleTypeId){return $http.get('/post/post.action?listByCircleTypeId&pageIndex='+pageIndex+'&pageSize='+pageSize+'&circleTypeId='
+circleTypeId,{queue:true,cache:cacheservice.cache});}
function listUserLikedPosts(pageIndex,pageSize,userId){return $http.get('/post/post.action?listUserLikedPosts&pageIndex='+pageIndex+'&pageSize='+pageSize+'&userId='+userId,{queue:true,cache:cacheservice.cache});}
function listCirclePosts(pageIndex,pageSize,circleId){return $http.get('/post/post.action?listCirclePosts&pageIndex='+pageIndex+'&pageSize='+pageSize+'&circleId='+circleId,{queue:true,cache:cacheservice.cache});}
function uploadMedia(media,url){var data={fileUrl:media,redirectUrl:url};return $http({method:'POST',url:'/media/media-upload.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function circleIt(circleId,fileToken,title,content,userTags){var data={circleId:circleId,fileToken:fileToken,title:title,content:content,userTags:userTags};return $http({method:'POST',url:'/post/post-create.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function circleIn(postId,circleId,title){var data={postId:postId,circleId:circleId,title:title,circleIn:''};return $http({method:'POST',url:'/post/post-create.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function listPostKeywordSuggestion(keyword){return $http.get('/post/post.action?listPostKeywordSuggestion&keyword='+keyword,{headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},cache:cacheservice.cache});}
function listPostByKeyword(pageIndex,pageSize,keyword){return $http.get('/post/post.action?listPostByKeyword&pageIndex='+pageIndex+'&pageSize='+pageSize+'&keyword='+keyword,{headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},queue:true,cache:cacheservice.cache});}
function listPostByLookType(pageIndex,pageSize){return $http.get('/post/post.action?listPostByLookType&pageIndex='+pageIndex+'&pageSize='+pageSize,{headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},queue:true,cache:cacheservice.cache});}
function listPostBySpecialEvent(pageIndex,pageSize,eventId){return $http.get('/post/post.action?listPostBySpecialEvent&pageIndex='+pageIndex+'&pageSize='+pageSize+'&eventId='+eventId,{headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},queue:true,cache:cacheservice.cache});}}})();(function(){'use strict';angular.module('app.post').factory('mkdservice',mkdservice);mkdservice.$inject=['store'];function mkdservice(store){var service={isDialogSkipped:isDialogSkipped,disableDialog:disableDialog,enableDialog:enableDialog,isFromMKD:isFromMKD,setFromMKD:setFromMKD};return service;function disableDialog(){store.set('mkd-download-dialog-skipped',1);}
function enableDialog(){store.set('mkd-download-dialog-skipped',0);}
function isDialogSkipped(){return store.get('mkd-download-dialog-skipped')===1;}
function isFromMKD(){return store.get('from-mkd')===1;}
function setFromMKD(){store.set('from-mkd',1);}}})();(function(){angular.module('app.post').factory('commentservice',commentservice);commentservice.$inject=['$http','$httpParamSerializer','cacheservice'];function commentservice($http,$httpParamSerializer,cacheservice){return{listComment:listComment,listReply:listReply,createComment:createComment,createReply:createReply,likeComment:likeComment};function listComment(postId,commentId,limit){var url='/post/comment.action?postId='+postId+'&limit='+limit.toString();if(commentId!=undefined&&commentId!=null)
url+='&commentId='+commentId;return $http.get(url,{cache:cacheservice.cache});}
function listReply(postId,commentId,replyCommentId,limit){var url='/post/comment.action?postId='+postId+'&limit='+limit.toString()+'&commentId='+commentId+'&listReply=';if(replyCommentId!=undefined&&replyCommentId!=null){url+='&replyCommentId='+replyCommentId;}
return $http.get(url,{cache:cacheservice.cache});}
function createComment(postId,comment){return $http({method:'POST',url:'/post/comment-create.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:'postId='+postId+'&comment='+encodeURIComponent(comment)});}
function createReply(commentId,comment){return $http({method:'POST',url:'/post/comment-create.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:'commentId='+commentId+'&comment='+encodeURIComponent(comment)+'&reply='});}
function likeComment(commentId,isLiked){var data={isLiked:isLiked,commentId:commentId};var req={method:'POST',url:'/post/comment-like.action',headers:{'Content-Type':'application/x-www-form-urlencoded'},data:$httpParamSerializer(data)};return $http(req);}}})();(function(){'use strict';angular.module('app.post').factory('likeservice',likeservice);likeservice.$inject=['$http','$httpParamSerializer'];function likeservice($http,$httpParamSerializer){return{likePost:likePost};function likePost(postId,isLiked){var data={isLiked:isLiked,postId:postId};var req={method:'POST',url:'/post/post-like.action',headers:{'Content-Type':'application/x-www-form-urlencoded'},data:$httpParamSerializer(data)};return $http(req);}}})();(function(){angular.module('app.post').directive('youku',youku);youku.$inject=['angularLoad','$window'];function youku(angularLoad,$window){return{restrict:'E',scope:{height:"@",width:"@",videoid:"@"},template:'<div id="youkuplayer"></div>',link:function(scope,element){angularLoad.loadScript('https://players.youku.com/jsapi').then(function(){if(typeof YKU!='undefined'){play();}});var w=angular.element($window);function play(){$('#youkuplayer').css(calDimension(outerWidth()));return new YKU.Player('youkuplayer',{styleid:'0',client_id:'5a95040bb10a30f5',vid:scope.videoid,autoplay:true,show_related:false});}
function outerWidth(){return element.parent().width();}
function calDimension(_w){var rw=scope.width;var rh=scope.height;var w=(rw<_w?rw:_w);var h=Math.floor(w*rh/rw);return{"width":w,"height":h}}
scope.$watch(outerWidth,function(_new,_old){if(_new===_old){return;}
$('#youkuplayer').css(calDimension(_new));});w.bind('resize',function(){scope.$apply();});}}}})();(function(){angular.module('app.post').directive('youtube',youtube);youtube.$inject=['$window','deviceservice'];function youtube($window,deviceservice){return{restrict:"E",scope:{height:"@",width:"@",videoid:"@",play:"="},template:'<div></div>',link:function(scope,element){includeYTApi();var w=angular.element($window);var played=false;var player;$window.onYouTubeIframeAPIReady=function(){play();played=true;}
if(!played&&typeof YT!="undefined"){play();}
function play(){var dim=calcDimension(outerWidth());player=new YT.Player(element.children()[0],{playerVars:{autoplay:0,html5:1,theme:"light",modesbranding:0,color:"white",iv_load_policy:3,showinfo:1,controls:1},height:dim.h,width:dim.w,videoId:scope.videoid,});}
function includeYTApi(){var tag=document.createElement('script');tag.src="https://www.youtube.com/iframe_api";var firstScriptTag=document.getElementsByTagName('script')[0];firstScriptTag.parentNode.insertBefore(tag,firstScriptTag);}
function outerWidth(){return element.parent().width();}
function calcDimension(_w){var rw=scope.width;var rh=scope.height;var w=(rw<_w?rw:_w);var h=Math.floor(w*rh/rw);return{"w":w,"h":h}}
scope.$watch('videoid',function(_new,_old){if(_new===_old){return;}
player.cueVideoById(scope.videoid);});scope.$watch(outerWidth,function(_new,_old){if(_new===_old){return;}
if(player){var dim=calcDimension(_new);player.setSize(dim.w,dim.h);}});scope.$watch('play',function(_new,_old){if(_new===_old){return;}
if(_new==1&&player){if(!deviceservice.isIOS()){player.playVideo();}}});w.bind('resize',function(){scope.$apply();});}}}})();(function(){'use strict';angular.module('app.post').controller('PostController',PostController).filter('trustUrl',function($sce){return function(url){return $sce.trustAsResourceUrl(url);};});PostController.$inject=['facebookservice','postservice','likeservice','signinservice','$scope','post','$rootScope','events','$window','constants','$uibModal','listIdx','gaservice','gaevents','applinkservice','$state','$timeout','mkdservice','shoplistservice','cookieservice','metaservice'];function PostController(facebookservice,postservice,likeservice,signinservice,$scope,post,$rootScope,events,$window,constants,$uibModal,listIdx,gaservice,gaevents,applinkservice,$state,$timeout,mkdservice,shoplistservice,cookieservice,metaservice){var vm=this;vm.isMobile=constants.isMobile;vm.postData=post.data;vm.likePeople='';vm.hostName=hostName;vm.toggleLike=toggleLike;vm.clickComment=clickComment;vm.shareToFB=shareToFB;vm.closeModal=closeModal;$scope.currentUser=currentUser;$scope.isSignIn=isSignIn;vm.imgStyle=imgStyle;vm.videoStyle=videoStyle;vm.playBtnPos=playBtnPos;vm.showVideo=showVideo;vm.showVideoOfSubPost=showVideoOfSubPost;vm.playVideo=0;vm.openTryLink=openTryLink;vm.openLink=openLink;vm.linkClass=linkClass;vm.circleIn=circleIn;vm.closeModalIfNecessary=closeModalIfNecessary;vm.currentState=$state.current.name;vm.currentParams=$state.params;vm.addedCircle={};vm.showAddedCircle=false;vm.isAddedCircleVisible=isAddedCircleVisible;vm.getAddedCircleName=getAddedCircleName;vm.signIn=signIn;vm.isVideo=isVideo;vm.isLiveVideo=isLiveVideo;vm.showLiveInstall=showLiveInstall;vm.launchApp=launchApp;vm.isBuyable=isBuyable;vm.openBuyableLink=openBuyableLink;vm.openBuyableLink2=openBuyableLink2;vm.openSubBuyableLink=openSubBuyableLink;vm.openSubBuyableLink2=openSubBuyableLink2;vm.getBuyIt=getBuyIt;vm.getBuyIt2=getBuyIt2;vm.getTitle=getTitle;vm.hasMainPostTryText=hasMainPostTryText;vm.hasSubPostTryText=hasSubPostTryText;vm.getMainPostTryText=getMainPostTryText;vm.getSubPostTryText=getSubPostTryText;vm.hasTitle=hasTitle;vm.hasTryIt=hasTryIt;vm.hasSubTitle=hasSubTitle;vm.hasSubTitle2=hasSubTitle2;vm.hasSubActBtns=hasSubActBtns;vm.hasSubActBtns2=hasSubActBtns2;vm.getSubTitle=getSubTitle;vm.getSubTitle2=getSubTitle2;vm.getSubBuyIt=getSubBuyIt;vm.getSubBuyIt2=getSubBuyIt2;vm.getPostContent=getPostContent;vm.isSoldOut=isSoldOut;vm.hasHoroscopeMaster=hasHoroscopeMaster;vm.hasDyTxts=hasDyTxts;vm.getDyTxtsPrice=getDyTxtsPrice;vm.getVideoUrl=getVideoUrl;vm.isMp4=isMp4;vm.getLiveTime=getLiveTime;activate();function activate(){metaservice.setMetaData(vm.postData);$rootScope.$broadcast(events.META_CHANGED,{title:vm.postData.title+' | '+vm.postData.author.displayName,description:vm.postData.content,alternateUri:'/ybc/post/'+vm.postData.postId});if(vm.postData.isLiked){$('#unlikeicon').hide();}else{$('#likeicon').hide();}}
function currentUser(){return signinservice.currentUser;}
function signIn(){$rootScope.$broadcast(events.LOGIN_REQUIRED);}
function isSignIn(){return signinservice.isSignIn;}
function hostName(url){if(url!=null){var match=url.match(/:\/\/(www[0-9]?\.)?(.[^/:]+)/i);if(match!=null&&match.length>2&&typeof match[2]==='string'&&match[2].length>0){return match[2];}}
return null;}
function toggleLike(){var isLiked=!vm.postData.isLiked;if(isLiked){$('#unlikeicon').hide();$('#likeicon').show().addClass('animated pulse');}else{$('#likeicon').hide();$('#unlikeicon').show().addClass('animated pulse');}
likeservice.likePost(vm.postData.postId,isLiked).then(function(response){vm.postData.isLiked=isLiked;vm.postData.likeCount+=(isLiked)?1:-1;$rootScope.$broadcast(events.POST_LIKE_COUNT_CHANGED,isLiked,vm.postData.likeCount,listIdx);},function(response){vm.postData.isLiked=!isLiked;vm.postData.likeCount+=(isLiked)?-1:1;$rootScope.$broadcast(events.POST_LIKE_COUNT_CHANGED,isLiked,vm.postData.likeCount,listIdx);})['finally'](function(){});eventTrack((isLiked?gaevents.post.action.liked:gaevents.post.action.unliked),vm.postData.postId);}
function shareToFB(){var url=window.location.href;facebookservice.share(url);eventTrack(gaevents.post.action.fbShared,vm.postData.postId);}
function closeModal(){$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'post'});}
function clickComment(){if(signinservice.isSignIn){var commentInput=document.getElementById('newCommentInput');if(commentInput!==undefined){commentInput.focus();}}else{$rootScope.$broadcast(events.LOGIN_REQUIRED);}}
$rootScope.$on(events.COMMENT_COUNT_CHANGED,function(event,count){vm.postData.commentCount=count;});function calWidth(photo){if(!photo.metadata){return{"width":"100%","height":"auto"}}
var _w=$('.post_detail_mid').width();var rw=photo.metadata.width;var rh=photo.metadata.height;var w=_w;if(!constants.isMobile){w=(_w<rw?_w:rw);}
var h=Math.floor(rh*(w/rw));return{"width":w,"height":h};}
function calPosition(){var _bw=($('.playBtn').width()/2);var _h=$('.post_detail_mid').height();var _w=$('.post_detail_mid').width();var t=Math.floor((_h/2)-_bw);var l=Math.floor((_w/2)-_bw);return{"top":t,"left":l};}
function imgStyle(photo,id){$("#"+id).css(calWidth(photo));}
function videoStyle(video,id){$("#video_"+id).css(calWidth(video));}
function playBtnPos(elementId){$("#"+elementId).css(calPosition());}
function showVideo(id){$('#coverImage, #playBtn').hide();$('#video').show();if($.inArray(post.data.photo.metadata.source,['youtube','youku'])!=-1){vm.playVideo=1;}else{videojs(document.getElementById('video_'+post.data.postId),{},function(){this.play();});}
$('.vjs-control-bar .vjs-fullscreen-control').on('click',function(){$('#video_'+id+'_html5_api').css({"height":"100%","width":"100%"});});eventTrack(gaevents.post.action.played_video,vm.postData.postId);}
function showVideoOfSubPost(index){$('#playBtn_'+index).hide();$('#subp_'+index).hide();$('#video_'+index).show();vm.playVideo=1;eventTrack(gaevents.post.action.played_video,vm.postData.postId);}
function openTryLink(link){eventTrack(gaevents.post.action.tried_it,vm.postData.postId);if(constants.isMobile){if(link.indexOf('perfectcorp.com')>-1){$window.open(link,'_blank');;return;}
applinkservice.launchAppViaBCSDeeplink(link,'tryit.mobile');return;}
if(link.indexOf('perfectcorp.com')>-1){$window.open(link,'_blank');;return;}
var app=appName(link);var modalType=app;if(app=='ymk'){if(vm.postData.postType=='YMK_LOOK'&&vm.postData.lookDownloadUrl){if(mkdservice.isFromMKD()){modalType='mkd';}else{modalType='looksalon';}}}
if(vm.postData.postType=='YMK_LOOK'&&mkdservice.isDialogSkipped()){location.href=vm.postData.lookDownloadUrl;return;}
if(app=='ycpbc'){modalType='ycp';}
var instance=$uibModal.open({animation:false,templateUrl:'tryit.modal.'+modalType+'.jsp',size:'tryit'+modalType,controller:function($scope,$uibModalInstance,mkdservice){$scope.close=function(){$uibModalInstance.close();};$scope.openStoreLink=applinkservice.openStoreLink;if(vm.postData.postType=='YMK_LOOK'){$scope.lookDownloadUrl=vm.postData.lookDownloadUrl;}
$scope.handleSkipDialog=function(checked){if(checked){mkdservice.disableDialog();}else{mkdservice.enableDialog();}}}});var unsubscribeEvent=$rootScope.$on('$stateChangeStart',function(){event.preventDefault();instance.close();});instance.result['finally'](function(){unsubscribeEvent();});}
function appName(link){var strs=link.split("://");if(strs&&strs.length>0){return strs[0].toLowerCase();}
return"ymk";}
function openLink(){var link=post.data.photo.metadata.extPostLink;if(link&&!isVideo()){$window.open(link,'_blank');eventTrack(gaevents.post.action.clicked_external_link,vm.postData.postId);}}
function linkClass(){var postlink=post.data.photo.metadata.extPostLink;return{link:(postlink&&!isVideo())?true:false};}
function eventTrack(action,label){gaservice.eventTrack(gaevents.post.category,action,label);}
function circleIn(postId){if(signinservice.isSignIn){$state.go('circle-in-modal.native',{sourcePostId:postId,previousState:vm.currentState,previousParams:vm.currentParams,firstState:false},{notify:false,reload:true});var unsubscribeEvent=$rootScope.$on(events.CIRCLE_IN_SUCCESS,function(event,params){unsubscribeEvent();vm.addedCircle=params.circle;vm.showAddedCircle=true;$timeout(function(){vm.showAddedCircle=false},2000);});}else{var referer='/api/post/circleit/native?sourcePostId='+postId;$rootScope.$broadcast(events.LOGIN_REQUIRED,{referer:referer});}}
function closeModalIfNecessary(){$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'post'});}
function isAddedCircleVisible(){return vm.showAddedCircle;}
function getAddedCircleName(){return vm.addedCircle.circleName;}
function isVideo(){if(post.data.photo.metadata.video){return true;}
if('VIDEO'==post.data.postType){return true;}
if(post.data.photo.metadata.redirectUrl&&post.data.photo.metadata.redirectUrl.indexOf('mp4')>-1){return true;}
if(post.data.tags&&post.data.tags.liveTag&&post.data.tags.liveTag.replayUrl&&(post.data.tags.liveTag.replayUrl.indexOf('m3u8')>-1||post.data.tags.liveTag.replayUrl.indexOf('mp4')>-1)){return true;}
return false;}
function isLiveVideo(){if(post.data.tags&&post.data.tags.liveTag&&post.data.tags.liveTag.replayUrl&&post.data.tags.liveTag.replayUrl.indexOf('m3u8')>-1){return true;}
return false;}
function showLiveInstall(){if(post.data.postType=='LIVE'){return true;}
if(post.data.tags&&post.data.tags.liveTag&&post.data.tags.liveTag.replayUrl){return true;}
return false;}
function launchApp(){if(!constants.isMobile){return false;}
var appUrl=applinkservice.getAppUrl($window.location.pathname,'ymk');var fallbackUrl=applinkservice.getFallbackUrl(appUrl,'ymk','bc_ymk_install');applinkservice.launchApp(appUrl,fallbackUrl);}
function isBuyable(){if(post.data.postType=='BUYABLE'){return true;}
return false;}
function getSourceType(){var sourceType=cookieservice.getSourceType();if(sourceType){return sourceType;}
return'bcweb';}
function openBuyableLink(type){if(post.data.tags&&post.data.tags.actBtns&&post.data.tags.actBtns.length>0){var currentUser=signinservice.currentUser;var currentSession=shoplistservice.getShopListSessionId();var sourceType=getSourceType();var param={'y_device':'bcw_'+currentSession,'y_uid':currentUser?currentUser.userId:'','y_source':sourceType,'sourceType':sourceType};var link='';for(var key in param){if(link!=""){link+="&";}
link+=key+"="+param[key];}
switch(type){case'buy':var buyObj=post.data.tags.actBtns[0];if(buyObj.link==''){return false;}
$window.open(buyObj.link+'&utm_source='+sourceType+'&perfectAccId='+encodeURIComponent(link),'_self');return;case'try':var tryObj=undefined===post.data.tags.actBtns[1]?post.data.tags.actBtns[0]:post.data.tags.actBtns[1];if(tryObj.link==''){return false;}
openTryLink(tryObj.link);return;default:return false;}}
return false;}
function openBuyableLink2(type){if(post.data.tags&&post.data.tags.actBtns2&&post.data.tags.actBtns2.length>0){var currentUser=signinservice.currentUser;var currentSession=shoplistservice.getShopListSessionId();var sourceType=getSourceType();var param={'y_device':'bcw_'+currentSession,'y_uid':currentUser?currentUser.userId:'','y_source':sourceType,'sourceType':sourceType};var link='';for(var key in param){if(link!=""){link+="&";}
link+=key+"="+param[key];}
switch(type){case'buy':var dyTxts=post.data.dyTxts;var actBtns2=post.data.tags.actBtns2[0].link;if(/RedirectUrl/g.exec(actBtns2)){$window.open(applinkservice.getParameterByName('RedirectUrl',actBtns2),'_self');return;}
if(!/{{(sbnp:.*?)}}/g.exec(actBtns2)){return false;}
var dyTxt=dyTxts.filter(function(d){return d.id==/{{(sbnp:.*?)}}/g.exec(actBtns2)[1];});if(dyTxt){if(dyTxt[0].value==''){return false;}
$window.open(dyTxt[0].value+'&utm_source='+sourceType+'&perfectAccId='+encodeURIComponent(link),'_self');return;}
return;case'try':var tryObj=post.data.tags.actBtns[1];if(tryObj.link==''){return false;}
openTryLink(tryObj.link);return;default:return false;}}
return false;}
function openSubBuyableLink(type,index){if(post.data.subPosts&&post.data.subPosts.length>0){var currentUser=signinservice.currentUser;var currentSession=shoplistservice.getShopListSessionId();var sourceType=getSourceType();var param={'y_device':'bcw_'+currentSession,'y_uid':currentUser?currentUser.userId:'','y_source':sourceType,'sourceType':sourceType};var link='';for(var key in param){if(link!=""){link+="&";}
link+=key+"="+param[key];}
switch(type){case'buy':if(post.data.subPosts[index].tags&&post.data.subPosts[index].tags.actBtns&&post.data.subPosts[index].tags.actBtns.length>0){var subBuyObj=post.data.subPosts[index].tags.actBtns[0];if(subBuyObj.link==''){return false;}
if(/RedirectUrl/g.exec(subBuyObj.link)){$window.open(applinkservice.getParameterByName('RedirectUrl',subBuyObj.link),'_self');return;}
$window.open(subBuyObj.link+'&utm_source='+sourceType+'&perfectAccId='+encodeURIComponent(link),'_self');return;}
return;case'try':if(post.data.subPosts[index].tags&&post.data.subPosts[index].tags.actBtns&&post.data.subPosts[index].tags.actBtns.length>0){var subTryObj=post.data.subPosts[index].tags.actBtns[1];if(subTryObj.link==''){return false;}
openTryLink(subTryObj.link);return;}
return;default:return false;}}
return false;}
function openSubBuyableLink2(type,index){if(post.data.subPosts&&post.data.subPosts.length>0){var currentUser=signinservice.currentUser;var currentSession=shoplistservice.getShopListSessionId();var sourceType=getSourceType();var param={'y_device':'bcw_'+currentSession,'y_uid':currentUser?currentUser.userId:'','y_source':sourceType,'sourceType':sourceType};var link='';for(var key in param){if(link!=""){link+="&";}
link+=key+"="+param[key];}
switch(type){case'buy':var dyTxts=post.data.dyTxts;var actBtns2=post.data.subPosts[index].tags.actBtns2[0].link;if(/RedirectUrl/g.exec(actBtns2)){$window.open(applinkservice.getParameterByName('RedirectUrl',actBtns2),'_self');return;}
if(!/{{(sbnp:.*?)}}/g.exec(actBtns2)){return false;}
var dyTxt=dyTxts.filter(function(d){return d.id==/{{(sbnp:.*?)}}/g.exec(actBtns2)[1];});if(dyTxt){if(dyTxt[0].value==''){return false;}
$window.open(dyTxt[0].value+'&utm_source='+sourceType+'&perfectAccId='+encodeURIComponent(link),'_self');return;}
return;case'try':if(post.data.subPosts[index].tags&&post.data.subPosts[index].tags.actBtns2&&post.data.subPosts[index].tags.actBtns2.length>0){var subTryObj=post.data.subPosts[index].tags.actBtns2[1];if(subTryObj.link==''){return false;}
openTryLink(subTryObj.link);return;}
return;default:return false;}}
return false;}
function hasMainPostTryText(){if(post.data.tags&&post.data.tags.tryText){return post.data.tags.tryText.length!=0;}
return false;}
function getMainPostTryText(){if(post.data.tags&&post.data.tags.tryText){return post.data.tags.tryText;}
return'';}
function hasSubPostTryText(index){if(post.data.subPosts&&post.data.subPosts[index]&&post.data.subPosts[index].tags&&post.data.subPosts[index].tags.tryText){return post.data.subPosts[index].tags.tryText.length!=0;}
return false;}
function getSubPostTryText(index){if(post.data.subPosts&&post.data.subPosts[index]&&post.data.subPosts[index].tags&&post.data.subPosts[index].tags.tryText){return post.data.subPosts[index].tags.tryText;}
return'';}
function getBuyIt(seq){if(post.data.tags&&post.data.tags.actBtns&&post.data.tags.actBtns.length>0){return post.data.tags.actBtns[seq]?post.data.tags.actBtns[seq].desc:'';}
return'';}
function getBuyIt2(seq){if(post.data.tags&&post.data.tags.actBtns2&&post.data.tags.actBtns2.length>0){var dyTxts=post.data.dyTxts;var actBtns2=post.data.tags.actBtns2[0].desc;if(!/{{(sbnp:.*?)}}/g.exec(actBtns2)){return actBtns2;}
var dyTxt=dyTxts.filter(function(d){return d.id==/{{(sbnp:.*?)}}/g.exec(actBtns2)[1];});var actBtns2=post.data.tags.actBtns2[0].desc;return actBtns2.replace(/{{(sbnp:.*?)}}/g,dyTxt?' '+dyTxt[0].value.replace(/\$/g,'&#36;'):'');}
return'';}
function getSubBuyIt(seq,subPostIndex){if(post.data.subPosts[subPostIndex]&&post.data.subPosts[subPostIndex].tags&&post.data.subPosts[subPostIndex].tags.actBtns&&post.data.subPosts[subPostIndex].tags.actBtns.length>0){return post.data.subPosts[subPostIndex].tags.actBtns[seq]?post.data.subPosts[subPostIndex].tags.actBtns[seq].desc:'';}
return'';}
function getSubBuyIt2(seq,subPostIndex){var dyTxts=post.data.dyTxts;var actBtns2=post.data.subPosts[subPostIndex].tags.actBtns2[seq].desc;if(!/{{(sbnp:.*?)}}/g.exec(actBtns2)){return actBtns2;}
var dyTxt=dyTxts.filter(function(d){return d.id==/{{(sbnp:.*?)}}/g.exec(actBtns2)[1];});var res=actBtns2.replace(/{{(sbnp:.*?)}}/g,dyTxt?' '+dyTxt[0].value.replace(/\$/g,'&#36;'):'');if(post.data.subPosts[subPostIndex]&&post.data.subPosts[subPostIndex].tags&&post.data.subPosts[subPostIndex].tags.actBtns2&&post.data.subPosts[subPostIndex].tags.actBtns2.length>0){return res;}
return'';}
function getTitle(seq){if(post.data.tags&&post.data.tags.sTitles&&post.data.tags.sTitles.length>0){switch(seq){case 0:return post.data.tags.sTitles[seq]?post.data.tags.sTitles[seq]:'';case 1:case 2:return post.data.tags.sTitles[seq]?post.data.tags.sTitles[seq]:'';case 3:if(post.data.tags.sTitles[seq]){var expire=post.data.tags.sTitles[seq].split(':')[1].trim();var d=new Date(expire/10000,(expire%10000/100)-1,expire%100);return d;}
return'';default:return'';}}
return'';}
function hasSubTitle(subPostIndex){return(post.data.subPosts[subPostIndex]&&post.data.subPosts[subPostIndex].tags&&post.data.subPosts[subPostIndex].tags.sTitles&&post.data.subPosts[subPostIndex].tags.sTitles.length>0);}
function hasSubTitle2(subPostIndex){return(post.data.subPosts[subPostIndex]&&post.data.subPosts[subPostIndex].tags&&post.data.subPosts[subPostIndex].tags.sTitles2&&post.data.subPosts[subPostIndex].tags.sTitles2.length>0);}
function hasSubActBtns(subPostIndex){return(post.data.subPosts[subPostIndex]&&post.data.subPosts[subPostIndex].tags&&post.data.subPosts[subPostIndex].tags.actBtns&&post.data.subPosts[subPostIndex].tags.actBtns.length>0);}
function hasSubActBtns2(subPostIndex){return(post.data.subPosts[subPostIndex]&&post.data.subPosts[subPostIndex].tags&&post.data.subPosts[subPostIndex].tags.actBtns2&&post.data.subPosts[subPostIndex].tags.actBtns2.length>0);}
function hasTitle(){if(post.data.tags&&post.data.tags.actBtns&&post.data.tags.actBtns.length>0){var actBtns=post.data.tags.actBtns;var titles=actBtns.filter(function(t){return true===/https?/g.test(t.link);});if(titles.length>0){return true;}}
return false;}
function hasTryIt(){if(post.data.tags&&post.data.tags.actBtns&&post.data.tags.actBtns.length>0){var actBtns=post.data.tags.actBtns;var tryits=actBtns.filter(function(t){return true===/ymk:/g.test(t.link);});if(tryits.length>0){return true;}}
return false;}
function getSubTitle(seq,subPostIndex){if(post.data.subPosts[subPostIndex].tags&&post.data.subPosts[subPostIndex].tags.sTitles&&post.data.subPosts[subPostIndex].tags.sTitles.length>0){switch(seq){case 0:return post.data.subPosts[subPostIndex].tags.sTitles[seq]?post.data.subPosts[subPostIndex].tags.sTitles[seq]:'';case 1:case 2:if(post.data.subPosts[subPostIndex].tags.sTitles[seq]){return post.data.tags.sTitles[seq];}
return'';case 3:if(post.data.subPosts[subPostIndex].tags.sTitles[seq]){var expire=post.data.subPosts[subPostIndex].tags.sTitles[seq].split(':')[1].trim();var d=new Date(expire/10000,(expire%10000/100)-1,expire%100);return d;}
return'';default:return'';}}
return'';}
function getSubTitle2(seq,subPostIndex){if(post.data.subPosts[subPostIndex].tags&&post.data.subPosts[subPostIndex].tags.sTitles2&&post.data.subPosts[subPostIndex].tags.sTitles2.length>0){switch(seq){case 0:var dyTxts=post.data.dyTxts;var sTitles2=post.data.subPosts[subPostIndex].tags.sTitles2[seq];if(!/{{(sbnp:.*?)}}/g.exec(sTitles2)){return sTitles2;}
var dyTxt=dyTxts.filter(function(d){return d.id==/{{(sbnp:.*?)}}/g.exec(sTitles2)[1];});var res=sTitles2.replace(/{{(sbnp:.*?)}}/g,dyTxt?dyTxt[0].value.replace(/\$/g,'&#36;'):'');return post.data.subPosts[subPostIndex].tags.sTitles2[seq]?res:'';case 1:case 2:if(post.data.subPosts[subPostIndex].tags.sTitles2[seq]){return post.data.tags.sTitles2[seq];}
return'';case 3:if(post.data.subPosts[subPostIndex].tags.sTitles2[seq]){var expire=post.data.subPosts[subPostIndex].tags.sTitles2[seq].split(':')[1].trim();var d=new Date(expire/10000,(expire%10000/100)-1,expire%100);return d;}
return'';default:return'';}}
return'';}
function getPostContent(){if(isBuyable()){var content=post.data.content;return content.replace(/(<a.*[^>]*>)|(<[^>]a>)/ig,'');}
return post.data.content;}
function isSoldOut(){if(post.data.subPosts&&!!post.data.subPosts.length){var buyObj=post.data.subPosts[0].tags.actBtns[0];if(!buyObj||buyObj.link==''){return true;}
return false;}
if(post.data.tags&&post.data.tags.actBtns){var buyObj=post.data.tags.actBtns[0];if(!buyObj||buyObj.link==''){return true;}}
return false;}
function hasHoroscopeMaster(){return(post.data.tags.horoscopeTag&&post.data.tags.horoscopeTag.horoscopeMaster!==null);}
function hasDyTxts(){return(post.data.dyTxts&&post.data.dyTxts.length>0);}
function getDyTxtsPrice(type){if('main'==type){var dyTxts=post.data.dyTxts;var sTitles2=post.data.tags.sTitles2[0];if(!/{{(sbnp:.*?)}}/g.exec(sTitles2)){return sTitles2;}
var dyTxt=dyTxts.filter(function(d){return d.id==/{{(sbnp:.*?)}}/g.exec(sTitles2)[1];});return sTitles2.replace(/{{(sbnp:.*?)}}/g,dyTxt?dyTxt[0].value.replace(/\$/g,'&#36;'):'');}else{}}
function getVideoUrl(){if(post.data.tags&&post.data.tags.liveTag&&post.data.tags.liveTag.replayUrl){if(post.data.tags.liveTag.replayUrl.indexOf("https://")>-1){return post.data.tags.liveTag.replayUrl;}
return post.data.tags.liveTag.replayUrl.replace('http','https');}
if(post.data.photo.metadata&&post.data.photo.metadata.redirectUrl){if(post.data.photo.metadata.redirectUrl.indexOf("https://")>-1){return post.data.photo.metadata.redirectUrl;}
return post.data.photo.metadata.redirectUrl.replace('http','https');}
return'';}
function isMp4(){if(post.data.tags&&post.data.tags.liveTag&&post.data.tags.liveTag.replayUrl){return post.data.tags.liveTag.replayUrl.indexOf('mp4')>-1;}
if(post.data.photo.metadata&&post.data.photo.metadata.redirectUrl){return post.data.photo.metadata.redirectUrl.indexOf('mp4')>-1;}
return false;}
function getLiveTime(utc){var gmtDateTime=moment.utc(utc);var local=gmtDateTime.local().format('MM/DD - HH:mm');return local;}}})();(function(){'use strict';angular.module('app.post').controller('CommentController',CommentController);CommentController.$inject=['commentservice','signinservice','numberFilter','post','listIdx','$rootScope','events','gaservice','gaevents','$scope','constants'];function CommentController(commentservice,signinservice,numberFilter,post,listIdx,$rootScope,events,gaservice,gaevents,$scope,constants){var vm=this;vm.comments=[];vm.subComments=[];vm.totalSize=0;vm.totalReplySize=[];vm.oldestCommentTime=0;vm.existedComments={};vm.inputComment="";vm.inputReply=[];vm.formatNumber=formatNumber;vm.createComment=createComment;vm.createReply=createReply;vm.toggleCommentLike=toggleCommentLike;vm.toggleReplyLike=toggleReplyLike;vm.toggleLatestReplyLike=toggleLatestReplyLike;vm.showMoreComment=showMoreComment;vm.showMoreReply=showMoreReply;vm.submitForm=submitForm;vm.submitReply=submitReply;vm.disableForm=false;vm.disableReplyForm=[];vm.disableLink=false;vm.disableReplyLink=[];vm.isLoading=false;vm.replyShowed=[];vm.replyFormShowed=[];vm.clickReply=clickReply;vm.replyCommentId="";vm.closeModalIfNecessary=closeModalIfNecessary;var postData=post.data;var viewMoreClickCount=0;var viewMoreReplyClickCount=[];activate();function activate(){if(postData.commentCount>0){vm.isLoading=true;listComment().then(function(response){vm.isLoading=false;return response;});}}
function listComment(){var firstLimit=4;var secondLimit=10;var remainLimit=50;var limit=firstLimit;var commentId=null;if(vm.comments.length>0)
commentId=vm.comments[0].id;if(viewMoreClickCount===1)
limit=secondLimit;else if(viewMoreClickCount>=2)
limit=remainLimit;return commentservice.listComment(postData.postId,commentId,limit).then(function(response){vm.totalSize=vm.comments.length+response.data.totalSize;for(var i=0;i<response.data.results.length;i++){var comment=response.data.results[i];vm.totalReplySize[comment.id]=response.data.results[i].subCommentCount;if(vm.oldestCommentTime===0||comment.dateOfCreated<=vm.oldestCommentTime){if(!vm.existedComments.hasOwnProperty(comment.id)){vm.comments.unshift(comment);vm.existedComments[comment.id]=comment.id;}}}
$rootScope.$broadcast(events.COMMENT_COUNT_CHANGED,vm.totalSize);return response;});}
function showMoreComment(){vm.disableLink=true;viewMoreClickCount++;listComment().then(function(response){vm.disableLink=false;});}
function listReply(commentId){var replyCommentId=null;if(vm.subComments[commentId]===undefined){vm.subComments[commentId]=[];}
if(vm.subComments[commentId].length>0){replyCommentId=vm.subComments[commentId][0].id;}
return commentservice.listReply(postData.postId,commentId,replyCommentId,vm.totalReplySize[commentId]).then(function(response){vm.replyShowed[commentId]=true;vm.replyFormShowed[commentId]=true;for(var i=0;i<response.data.results.length;i++){var comment=response.data.results[i];vm.subComments[commentId].unshift(comment);}
return response;});}
function showMoreReply(commentId){vm.disableReplyLink[commentId]=true;if(viewMoreReplyClickCount[commentId]===undefined){viewMoreReplyClickCount[commentId]=0;}
viewMoreReplyClickCount[commentId]++;listReply(commentId).then(function(response){vm.disableReplyLink[commentId]=false;vm.replyFormShowed[commentId]=true;});}
function submitForm(form){if(form.$invalid||vm.disableForm)
return;form.exceptions={};vm.disableForm=true;createComment();gaservice.eventTrack(gaevents.post.category,gaevents.post.action.commented,postData.postId);}
function submitReply(form,commentId){if(form.$invalid||vm.disableForm)
return;form.exceptions={};vm.disableReplyForm[commentId]=true;createReply(commentId);gaservice.eventTrack(gaevents.post.category,gaevents.post.action.commented,postData.postId);}
function createComment(){vm.disableForm=true;commentservice.createComment(postData.postId,vm.inputComment).then(function(response){if(response!=""){var comment={};comment.id=response.data.commentId;comment.creator={};comment.creator.displayName=signinservice.currentUser.displayName;comment.creator.avatar=signinservice.currentUser.avatar;comment.dateOfCreated=response.data.lastModified;comment.comment=vm.inputComment;comment.isLiked=false;comment.numOfLikes=0;vm.comments.push(comment);vm.totalSize++;vm.totalReplySize[comment.id]=0;vm.inputComment="";if(constants.isMobile){window.location.hash='#'+comment.id;}
$rootScope.$broadcast(events.COMMENT_COUNT_CHANGED,vm.totalSize,listIdx);}})['finally'](function(){vm.disableForm=false;});}
function createReply(commentId){vm.disableReplyForm[commentId]=true;commentservice.createReply(vm.replyCommentId,vm.inputReply[vm.replyCommentId]).then(function(response){if(response!=""){var comment={};comment.id=response.data.commentId;comment.creator={};comment.creator.displayName=signinservice.currentUser.displayName;comment.creator.avatar=signinservice.currentUser.avatar;comment.dateOfCreated=response.data.lastModified;comment.comment=vm.inputReply[vm.replyCommentId];comment.isLiked=false;comment.numOfLikes=0;if(vm.subComments[vm.replyCommentId]!==undefined){vm.subComments[vm.replyCommentId].push(comment);}else if(vm.totalReplySize[vm.replyCommentId]===0){vm.replyShowed[vm.replyCommentId]=true;vm.subComments[vm.replyCommentId]=[];vm.subComments[vm.replyCommentId].push(comment);}
vm.totalReplySize[vm.replyCommentId]++;vm.inputReply[vm.replyCommentId]="";if(constants.isMobile){window.location.hash='#'+comment.id;}}})['finally'](function(){vm.disableReplyForm[commentId]=false;});}
function toggleCommentLike(index){var comment=vm.comments[index];var isLiked=!comment.isLiked;commentservice.likeComment(comment.id,isLiked).then(function(response){comment.isLiked=isLiked;comment.numOfLikes+=(isLiked)?1:-1;},function(error){comment.isLiked=!isLiked;comment.numOfLikes+=(isLiked)?-1:1;});gaservice.eventTrack(gaevents.comment.category,isLiked?gaevents.comment.action.liked:gaevents.comment.action.unliked,comment.id);}
function toggleReplyLike(commentId,index){var comment=vm.subComments[commentId][index];var isLiked=!comment.isLiked;commentservice.likeComment(comment.id,isLiked).then(function(response){comment.isLiked=isLiked;comment.numOfLikes+=(isLiked)?1:-1;},function(error){comment.isLiked=!isLiked;comment.numOfLikes+=(isLiked)?-1:1;});gaservice.eventTrack(gaevents.comment.category,isLiked?gaevents.comment.action.liked:gaevents.comment.action.unliked,comment.id);}
function toggleLatestReplyLike(index){var comment=vm.comments[index].latestSubComment;var isLiked=!comment.isLiked;commentservice.likeComment(comment.id,isLiked).then(function(response){comment.isLiked=isLiked;comment.numOfLikes+=(isLiked)?1:-1;},function(error){comment.isLiked=!isLiked;comment.numOfLikes+=(isLiked)?-1:1;});gaservice.eventTrack(gaevents.comment.category,isLiked?gaevents.comment.action.liked:gaevents.comment.action.unliked,comment.id);}
function formatNumber(value){return numberFilter(value);}
function clickReply(commentId){if(signinservice.isSignIn){if(!vm.replyShowed[commentId]){if(vm.totalReplySize[commentId]>0){vm.showMoreReply(commentId);}else{vm.replyFormShowed[commentId]=true;}}
$scope.$watch(function(){return angular.element('#newReplyInput'+commentId).is(':visible')},function(){document.getElementById('newReplyInput'+commentId).focus();});}else{$rootScope.$broadcast(events.LOGIN_REQUIRED);}}
function closeModalIfNecessary(){$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'post'});}}})();(function(){'use strict';angular.module('app.post').controller('CircleInController',CircleInController);CircleInController.$inject=['$stateParams','circles','postservice','$timeout','signinservice','constants','$state','$window','$rootScope','events','$scope','postParam'];function CircleInController($stateParams,circles,postservice,$timeout,signinservice,constants,$state,$window,$rootScope,events,$scope,postParam){$scope.innerState="circle.in";$scope.selectedCircle=null;var vm=this;vm.maxlengthOfTitle=256;vm.maxlengthOfContent=2048;vm.url='';vm.media=postParam.data.photo.metadata.originalUrl;vm.title=truncateText(postParam.data.title,vm.maxlengthOfTitle);vm.content=truncateText(postParam.data.content,vm.maxlengthOfContent);vm.circles=circles.data;vm.circleMap={};vm.circleSlides=[];vm.emptyCircleSymbol=emptyCircleSymbol;vm.circleIt=circleIt;vm.toggleEdit=toggleEdit;vm.clickCircle=clickCircle;vm.closeWindow=closeWindow;vm.selectedCircle=null;vm.showForm=false;vm.disableForm=false;vm.isEdit=false;var circlesPerRow=4;var rowsPerSlide=2;var fileToken=null;activate();function activate(){for(var i=0;i<vm.circles.length;i++){var circle=vm.circles[i];vm.circleMap[circle.id]=circle;}
setCssClass('');initCircleSlides();vm.showForm=true;if(constants.isMobile){if(vm.circles.length>0){vm.selectedCircle=vm.circles[0];vm.selectedCircle.cssClass='selected';}}}
function truncateText(text,maxLength){var result=text;if(text!==undefined&&text!==null&&text.length>maxLength){result=result.substring(0,(maxLength-3))+"...";}
return result;}
function emptyCircleSymbol(circleName){if(circleName.length===0){return'';}
return circleName.substring(0,1).toUpperCase();}
function circleIt(circleId){var circle=vm.circleMap[circleId];vm.disableForm=true;if(!constants.isMobile){setCssClass('no_loading');circle.cssClass='loading';}
postservice.circleIn(postParam.data.postId,circle.id,vm.title).then(function(response){$timeout(function(){$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'circle-in-modal'});})
$timeout(function(){$rootScope.$broadcast(events.CIRCLE_IN_SUCCESS,{circle:circle})},500);})['finally'](function(){if(!constants.isMobile){setCssClass('');}
vm.disableForm=false;});}
function setCssClass(value){for(var i=0;i<vm.circles.length;i++){vm.circles[i]['cssClass']=value;}}
function initCircleSlides(){var slide=[];var row=[];for(var i=0;i<vm.circles.length;i++){if(i%(circlesPerRow*rowsPerSlide)===0){slide=[];vm.circleSlides.push(slide);}
if(i%circlesPerRow===0){row=[];slide.push(row);}
row.push(vm.circles[i]);}}
function toggleEdit(objectId){if(vm.disableForm)
return;vm.isEdit=!vm.isEdit;if(vm.isEdit){$timeout(function(){var object=document.getElementById(objectId);if(object!==undefined&&object!==null){object.focus();}});}}
function clickCircle(circleId){if(vm.disableForm)
return;setCssClass('');vm.circleMap[circleId].cssClass='selected';vm.selectedCircle=vm.circleMap[circleId];}
function closeWindow(){$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'circle-in-modal'});}}})();(function(){'use strict';angular.module('app.post').controller('CircleInCompletedController',CircleInCompletedController);CircleInCompletedController.$inject=['$rootScope','$scope','events','$timeout','$interval'];function CircleInCompletedController($rootScope,$scope,events,$timeout,$interval){var vm=this;vm.circleName=$scope.selectedCircle.circleName;vm.countdown=1;activate();function activate(){$timeout(function(){$rootScope.$broadcast(events.MODAL_CLOSE,{modalName:'circle-in-modal'});},vm.countdown*10000);var promise=$interval(function(){vm.countdown--;if(vm.countdown===0){$interval.cancel(promise);}},1000);}}})();(function(){'use strict';angular.module('app.post').controller('CircleItController',CircleItController);CircleItController.$inject=['$stateParams','circles','postservice','$timeout','signinservice','constants','$state','$window','$uibModal','$rootScope','events','$scope'];function CircleItController($stateParams,circles,postservice,$timeout,signinservice,constants,$state,$window,$uibModal,$rootScope,events,$scope){$scope.innerState="circle.it";$scope.selectedCircle=null;var vm=this;vm.maxlengthOfTitle=256;vm.maxlengthOfContent=2048;vm.url=$stateParams.url;vm.media=$stateParams.media;vm.title=truncateText($stateParams.title,vm.maxlengthOfTitle);vm.content=truncateText($stateParams.content,vm.maxlengthOfContent);vm.circles=circles.data;vm.circleMap={};vm.circleSlides=[];vm.emptyCircleSymbol=emptyCircleSymbol;vm.circleIt=circleIt;vm.toggleEdit=toggleEdit;vm.clickCircle=clickCircle;vm.closeWindow=closeWindow;vm.selectedCircle=null;vm.showForm=false;vm.disableForm=false;vm.isEdit=false;vm.focusEditTarget='titleInput';vm.switchTabs=switchTabs;vm.isEmptyTextarea=false;var circlesPerRow=4;var rowsPerSlide=2;var fileToken=null;activate();function activate(){if(!signinservice.isSignIn){if(constants.isMobile){$state.go('mobile-signin',{referer:$window.location.href});}else{var instance=$uibModal.open({size:'signin',keyboard:false,backdrop:false,animation:true,templateUrl:'/app/user/controllers/sign-in.jsp',controller:'SignInController',controllerAs:'vm',bindToController:true,resolve:{eventParams:function(){var params={referer:$window.location.href};return params;}}});$rootScope.$broadcast(events.MODAL_OPEN,{modalName:'signin',modalInstance:instance});resizeWindow({'width':750,'height':516});}
vm.showForm=false;return;}
for(var i=0;i<vm.circles.length;i++){var circle=vm.circles[i];vm.circleMap[circle.id]=circle;}
setCssClass('');initCircleSlides();vm.showForm=true;if(!constants.isMobile){resizeWindow({'id':'circleItContainer'});}else{if(vm.circles.length>0){vm.selectedCircle=vm.circles[0];vm.selectedCircle.cssClass='selected';}}
$timeout(function(){uploadMedia();});}
function uploadMedia(){return postservice.uploadMedia(vm.media,vm.url).then(function(response){if(response!==""&&response.data.taskToken!==undefined){fileToken=response.data.taskToken;}});}
function truncateText(text,maxLength){var result=text;if(text!==undefined&&text!==null&&text.length>maxLength){result=result.substring(0,(maxLength-3))+"...";}
return result;}
function emptyCircleSymbol(circleName){if(circleName.length===0){return'';}
return circleName.substring(0,1).toUpperCase();}
function circleIt(circleId){var circle=vm.circleMap[circleId];vm.disableForm=true;if(!constants.isMobile){setCssClass('no_loading');circle.cssClass='loading';}
postservice.circleIt(circle.id,fileToken,vm.title,vm.content,twttr.txt.extractHashtags(vm.content)).then(function(response){if(response!==""){$scope.innerState='circle.it.completed';$scope.selectedCircle=circle;}})['finally'](function(){if(!constants.isMobile){setCssClass('');}
vm.disableForm=false;});}
function setCssClass(value){for(var i=0;i<vm.circles.length;i++){vm.circles[i]['cssClass']=value;}}
function initCircleSlides(){var slide=[];var row=[];for(var i=0;i<vm.circles.length;i++){if(i%(circlesPerRow*rowsPerSlide)===0){slide=[];vm.circleSlides.push(slide);}
if(i%circlesPerRow===0){row=[];slide.push(row);}
row.push(vm.circles[i]);}}
function switchTabs(tabId,objectId){vm.focusEditTarget=objectId;var activeTab=document.getElementsByClassName("circle_it_tab active")[0];activeTab.classList.remove('active');document.getElementById(tabId).classList.add('active');}
function toggleEdit(objectId){if(vm.disableForm)
return;vm.isEdit=!vm.isEdit;var object=document.getElementById(objectId);if(vm.isEdit){$timeout(function(){if(object!==undefined&&object!==null){vm.focusEditTarget=objectId;object.focus();}});}else{if(object.value.length==0){vm.isEmptyTextarea=true;}else{vm.isEmptyTextarea=false;}}}
function clickCircle(circleId){if(vm.disableForm)
return;setCssClass('');vm.circleMap[circleId].cssClass='selected';vm.selectedCircle=vm.circleMap[circleId];}
function closeWindow(){$window.opener=null;$window.close();}
function resizeWindow(params){$timeout(function(){var containerId=typeof params.id!=='undefined'?params.id:null;var containerWidth=typeof params.width!=='undefined'?params.width:null;var containerHeight=typeof params.height!=='undefined'?params.height:null;var container=containerId!==null?angular.element(document.getElementById(containerId)):null;var baseWidth=containerWidth!==null?containerWidth:(container!==null?container.width():0);var baseHeight=containerHeight!==null?containerHeight:(container!==null?container.height():0);var widthOffset=$window.outerWidth-$window.innerWidth;var heightOffset=$window.outerHeight-$window.innerHeight;baseWidth+=120+widthOffset;baseHeight+=104+heightOffset;$window.resizeTo(baseWidth,baseHeight);});}}})();(function(){'use strict';angular.module('app.post').controller('CircleItCompletedController',CircleItCompletedController);CircleItCompletedController.$inject=['$scope','$window','$timeout','$interval'];function CircleItCompletedController($scope,$window,$timeout,$interval){var vm=this;vm.circleName=$scope.selectedCircle.circleName;vm.countdown=3;activate();function activate(){$timeout(function(){$window.opener=null;$window.close();},vm.countdown*1000);var promise=null;promise=$interval(function(){vm.countdown--;if(vm.countdown===0){$interval.cancel(promise);}},1000);}}})();(function(){'use strict';angular.module('app.circle',[]);})();(function(){'use strict';angular.module('app.circle').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('circle',{url:'^/circle/:circleId',views:{'':{templateUrl:'/app/circle/controllers/circle.jsp',controller:'CircleController',controllerAs:'vm',resolve:{circle:['$stateParams','circleservice',function($stateParams,circleservice){return circleservice.circleInfo($stateParams.circleId);}]}},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm'}}});$stateProvider.state('circle-type',{url:'^/category/:circleTypeId',views:{'':{templateUrl:'/app/circle/controllers/circle-type.jsp',controller:'CircleTypeController',controllerAs:'vm',resolve:{circleType:['$stateParams','circletypeservice',function($stateParams,circletypeservice){return circletypeservice.queryCircleType($stateParams.circleTypeId);}]}},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm'}}});}})();(function(){'use strict';angular.module('app.circle').controller('CircleController',CircleController);CircleController.$inject=['$scope','$rootScope','$controller','postservice','circle','constants','events'];function CircleController($scope,$rootScope,$controller,postservice,circle,constants,events){angular.extend(this,$controller('MasonryController',{$scope:$scope}));$scope.listposts=postservice.listCirclePosts;$scope.searchId=circle.data.id;var vm=this;vm.isMobile=constants.isMobile;vm.circle=circle.data;vm.scrollToFixedOptions={preFixed:function(){$(this).addClass('collapsed');},postFixed:function(){$(this).removeClass('collapsed');}}
activate();function activate(){$rootScope.$broadcast(events.META_CHANGED,{title:vm.circle.circleName+' | '+vm.circle.creator.displayName,description:vm.circle.circleName,alternateUri:'/ybc/circle/'+vm.circle.id});}}})();(function(){'use strict';angular.module('app.circle').controller('CircleTypeController',CircleTypeController);CircleTypeController.$inject=['$scope','$rootScope','$controller','postservice','circleType','constants','events'];function CircleTypeController($scope,$rootScope,$controller,postservice,circleType,constants,events){angular.extend(this,$controller('MasonryController',{$scope:$scope}));$scope.listposts=postservice.listPostByCircleTypeId;$scope.searchId=circleType.data.id;var vm=this;vm.circleType=circleType.data;vm.isMobile=constants.isMobile;vm.isHowTo=isHowTo;activate();function activate(){$rootScope.$broadcast(events.META_CHANGED,{title:vm.circleType.circleTypeName,description:vm.circleType.circleTypeName,alternateUri:'/ybc/category/'+vm.circleType.id});}
function isHowTo(){return vm.circleType.defaultType.indexOf('HOW-TO')!=-1;}}})();(function(){'use strict';angular.module('app.circle').factory('circleservice',circleservice);circleservice.$inject=['$http','cacheservice'];function circleservice($http,cacheservice){var service={listUserCircle:listUserCircle,circleInfo:circleInfo,listCircleWithDefault:listCircleWithDefault};return service;function listUserCircle(userId){return $http.get('/circle/circle.action?listUserCircle&userId='+userId.toString(),{cache:cacheservice.cache});}
function circleInfo(circleId){return $http.get('/circle/circle.action?info&circleId='+circleId,{cache:cacheservice.cache});}
function listCircleWithDefault(){return $http.get('/circle/circle.action?listCircleWithDefault',{cache:cacheservice.cache});}}})();(function(){'use strict';angular.module('app.circle').factory('circletypeservice',circletypeservice);circletypeservice.$inject=['$http','cacheservice'];function circletypeservice($http,cacheservice){var service={listCircleTypes:listCircleTypes,queryCircleType:queryCircleType};return service;function listCircleTypes(){return $http.get('/circle/circle-type.action',{cache:cacheservice.cache});}
function queryCircleType(circleTypeId){return $http.get('/circle/circle-type.action?info=&circleTypeId='+circleTypeId,{cache:cacheservice.cache});}}})();(function(){angular.module('app.circle').directive('scrollToFixed',scrollToFixed);function scrollToFixed(){return{'require':'?ngModel','restrict':'A','link':function link(scope,element,attrs){element.scrollToFixed(scope.$eval(attrs.scrollToFixed));if(attrs.ngModel){scope.$watch(attrs.ngModel,function watchNgModel(){element.trigger('resize');},true);}
element.bind('update',function update(){element.trigger('resize');});element.bind('$destroy',function destroy(){element.trigger('detach.ScrollToFixed');});}};}})();(function(){'use strict';angular.module('app.look',[]);})();(function(){'use strict';angular.module('app.look').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('look',{url:'^/looksalon',views:{'':{templateUrl:'/app/look/controllers/look-salon.jsp',controller:'LookSalonController',controllerAs:'vm'},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm'}}});}})();(function(){'use strict';angular.module('app.look').controller('LookSalonController',LookSalonController);LookSalonController.$inject=['$scope','$rootScope','$controller','postservice','constants','events','applinkservice','deviceservice','$window','$location','mkdservice','$state'];function LookSalonController($scope,$rootScope,$controller,postservice,constants,events,applinkservice,deviceservice,$window,$location,mkdservice,$state){angular.extend(this,$controller('MasonryController',{$scope:$scope}));$scope.listposts=postservice.listPostByLookType;var vm=this;vm.isMobile=constants.isMobile;vm.goToStorePage=goToStorePage;vm.random=0;vm.getRandom=getRandom;vm.goToSignUpPage=goToSignUpPage;activate();function activate(){handleIfFromMKD();vm.random=new Date().getTime()%2;$rootScope.$broadcast(events.META_CHANGED,{title:"Look Salon",description:"Try on the latest trending makeup looks instantly on your selfie",alternateUri:'/ybc/looksalon'});}
function getRandom(){return vm.random;}
function handleIfFromMKD(){var search=$location.search();if(search&&search.source=='makeupdirector'){mkdservice.setFromMKD();}}
function goToStorePage(){if(deviceservice.isIOS()){applinkservice.launchApp('ymkbc://looksalon',applinkservice.getStoreLink('bc_web_looksalon','ios','ymk'));}
if(deviceservice.isAndroid()){applinkservice.launchApp('ymkbc://looksalon',applinkservice.getStoreLink('looksalon','android','ymk'));}}
function goToSignUpPage(){$state.go('mobile-signin',{isSignInFlow:false})}}})();(function(){'use strict';angular.module('app.profile',['app.circle']);})();(function(){'use strict';angular.module('app.profile').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('profile',{abstract:true,params:{userId:null},views:{'':{templateUrl:'/app/profile/controllers/profile.jsp',controller:'ProfileController',controllerAs:'vm',resolve:{user:['$stateParams','userservice','signinservice',function($stateParams,userservice,signinservice){if($stateParams.userId){return userservice.queryUser($stateParams.userId);}
if(signinservice.currentUser){return userservice.queryUser(signinservice.currentUser.userId);}
return null;}]}},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm'}}});$stateProvider.state('profile.me',{url:'^/profile/',templateUrl:'/app/profile/controllers/profile-circle.jsp',controller:'ProfileCircleController',controllerAs:'vm',resolve:{userId:['$stateParams','signinservice',function($stateParams,signinservice){if($stateParams.userId){return $stateParams.userId;}
if(signinservice.currentUser){return signinservice.currentUser.userId;}
return null;}]}});$stateProvider.state('profile.main',{url:'^/profile/:userId',templateUrl:'/app/profile/controllers/profile-circle.jsp',controller:'ProfileCircleController',controllerAs:'vm',resolve:{userId:['$stateParams',function($stateParams){return $stateParams.userId;}]}});$stateProvider.state('profile.circles',{url:'^/profile/:userId/circles',templateUrl:'/app/profile/controllers/profile-circle.jsp',controller:'ProfileCircleController',controllerAs:'vm',resolve:{userId:['$stateParams',function($stateParams){return $stateParams.userId;}]}});$stateProvider.state('profile.posts',{url:'^/profile/:userId/posts',templateUrl:'/app/profile/controllers/profile-post.jsp',controller:'ProfilePostController',controllerAs:'vm',resolve:{userId:['$stateParams',function($stateParams){return $stateParams.userId;}]}});$stateProvider.state('profile.likes',{url:'^/profile/:userId/likes',templateUrl:'/app/profile/controllers/profile-like.jsp',controller:'ProfileLikeController',controllerAs:'vm',resolve:{userId:['$stateParams',function($stateParams){return $stateParams.userId;}]}});}})();(function(){'use strict';angular.module('app.profile').controller('ProfileController',ProfileController);ProfileController.$inject=['$rootScope','events','$window','$state','numberFilter','user','signinservice'];function ProfileController($rootScope,events,$window,$state,numberFilter,user,signinservice){var vm=this;vm.user=null;vm.getCountClass=getCountClass;vm.formatNumber=formatNumber;vm.showTitle=showTitle;vm.showSubType=showSubType;vm.renderUrl=renderUrl;vm.childState='circles';vm.numOfCircles=0;vm.isVogue=isVogue;activate();function activate(){if(user){vm.user=user.data;vm.numOfCircles=vm.user.numOfPublicCircles;}else{$state.go('home');}
$rootScope.$on(events.PROFILE_CHILD_STATE_CHANGED,function(event,params){vm.childState=params.childState;});$rootScope.$broadcast(events.META_CHANGED,{title:vm.user.displayName,description:vm.user.description,alternateUri:'/ybc/profile/'+vm.user.userId});if(signinservice.currentUser!=null&&signinservice.currentUser.userId==vm.user.userId){vm.numOfCircles=vm.user.numOfCircles;}}
function isVogue(){return vm.user.userId==2458556171;}
function getCountClass(stateName){if(stateName===vm.childState)
return{text_pink:true};else
return{text_pink:false};}
function formatNumber(value){return numberFilter(value);}
function showTitle(title,userType){if(title===userType)
return true;return false;}
function showSubType(title,user){if(user.userType!=="Brand")
return false;if(title===user.userSubType)
return true;return false;}
function renderUrl(value){if(value===null||value==="")
return"";if(value.indexOf("http://")===0||value.indexOf("https://")===0){return value;}
return"http://"+value;}}})();(function(){'use strict';angular.module('app.profile').controller('ProfileCircleController',ProfileCircleController);ProfileCircleController.$inject=['numberFilter','userId','signinservice','circleservice','$rootScope','events','applinkservice'];function ProfileCircleController(numberFilter,userId,signinservice,circleservice,$rootScope,events,applinkservice){var vm=this;vm.circles=[];vm.formatNumber=formatNumber;vm.isLoading=true;vm.isSelf=false;vm.isEmptyResult=false;vm.openStoreLink=applinkservice.openStoreLink;activate();function activate(){if(userId==null){return;}
if(signinservice.currentUser!=null){vm.isSelf=signinservice.currentUser.userId==userId;}
$rootScope.$broadcast(events.PROFILE_CHILD_STATE_CHANGED,{childState:'circles'});listCircle();}
function listCircle(){vm.isLoading=true;return circleservice.listUserCircle(userId).then(function(response){vm.circles=response.data;vm.isEmptyResult=response.data.length==0;})['finally'](function(){vm.isLoading=false;});}
function formatNumber(value){return numberFilter(value);}}})();(function(){'use strict';angular.module('app.profile').controller('ProfilePostController',ProfilePostController);ProfilePostController.$inject=['$scope','$controller','postservice','userId','$rootScope','events','applinkservice','circleservice'];function ProfilePostController($scope,$controller,postservice,userId,$rootScope,events,applinkservice,circleservice){angular.extend(this,$controller('MasonryController',{$scope:$scope}));$scope.listposts=postservice.listUserPosts;$scope.searchId=userId;var vm=this;vm.openStoreLink=applinkservice.openStoreLink;vm.ownedCircleIds={};vm.belongToOwnedCircleIds=belongToOwnedCircleIds;$scope.filter=function(posts){var r=[];for(var i=0;i<posts.length;i++){var post=posts[i];if(vm.belongToOwnedCircleIds(post.circleId)){r.push(post);}}
return r;};activate();function activate(){$rootScope.$broadcast(events.PROFILE_CHILD_STATE_CHANGED,{childState:'posts'});circleservice.listUserCircle(userId).then(function(response){var circles=response.data;for(var i=0;i<circles.length;i++){vm.ownedCircleIds[circles[i].id]=1;}});}
function belongToOwnedCircleIds(circleId){return vm.ownedCircleIds[circleId]==1;}}})();(function(){'use strict';angular.module('app.profile').controller('ProfileLikeController',ProfileLikeController);ProfileLikeController.$inject=['$scope','$controller','postservice','userId','$rootScope','events'];function ProfileLikeController($scope,$controller,postservice,userId,$rootScope,events){angular.extend(this,$controller('MasonryController',{$scope:$scope}));$scope.listposts=postservice.listUserLikedPosts;$scope.searchId=userId;activate();function activate(){$rootScope.$broadcast(events.PROFILE_CHILD_STATE_CHANGED,{childState:'likes'});}}})();(function(){angular.module('app.profile').directive('thumbStyle',thumbStyle);function thumbStyle(){return{scope:{imgsrc:"@"},link:function(scope,element){function calcLeft(imgW,boxW){return(-1*Math.floor((imgW/2)-(boxW/2)));}
function calcTop(isPortrait,imgH,boxH){if(isPortrait){var t=Math.floor((imgH/2)-(boxH/2));return(-1*(t/2));}else{return(-1*Math.floor((imgH/2)-(boxH/2)));}}
function calcDimension(rw,rh,_w,_h){var isLandscape=(rw>rh);var magic=(isLandscape?2:1.5);var auto_h=true;var w=_w*magic;if(w>rw){w=rw;}
var h=Math.floor(w*(rh/rw));if(h<_h){auto_h=false;h=_h*magic;if(h>rh){h=rh;}
w=Math.floor(h*(rw/rh));}
return{"w":w,"h":h,"auto_h":auto_h}}
function calc(rw,rh){var _w=element.parent().width();var _h=element.parent().height();var dim=calcDimension(rw,rh,_w,_h);var l=calcLeft(dim.w,_w);var t=calcTop(rh>rw,dim.h,_h);element[0].src=scope.imgsrc;element.css({"width":(dim.auto_h?dim.w+"px":"auto"),"height":(dim.auto_h?"auto":dim.h+"px"),"left":l+"px","top":t+"px"});}
function getImageNaturalSize(callback){var i=new Image;i.onload=function(){callback(this.width,this.height);}
i.src=scope.imgsrc;}
function setDefaultThumb(){element[0].src="/assets/images/bg.gif";}
if(!scope.imgsrc){setDefaultThumb();}else{getImageNaturalSize(calc);}}}}})();(function(){'use strict';angular.module('app.account-setting',['app.user','ngMessages','ngFileUpload']);})();(function(){'use strict';angular.module('app.account-setting').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('account-setting',{url:'^/account-setting',views:{'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'':{templateUrl:'/app/account-setting/controllers/account-setting.jsp',controller:'AccountSettingController',controllerAs:'vm'}}});$stateProvider.state('mobile-account-setting',{url:'^/m/account-setting',views:{'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'':{templateUrl:'/app/account-setting/controllers/mobile-account-setting.jsp',controller:'AccountSettingController',controllerAs:'vm'}},params:{isMobileSignUpSetting:false,referer:null}});$stateProvider.state('mobile-mkd-redeem',{url:'^/m/mkd-redeem?email',views:{'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'':{templateUrl:'/app/account-setting/controllers/mobile-mkd-redeem.jsp',controller:'MobileMkdRedeemController',controllerAs:'vm'}},params:{email:null}});$stateProvider.state('mobile-mkd-download-modal',{views:{'header@':{templateUrl:'/app/home/controllers/gdprheader.jsp',controller:'HeaderController',controllerAs:'vm'},'':{templateUrl:'/app/account-setting/controllers/mobile-mkd-download.jsp',controller:'MkdDownloadController',controllerAs:'vm'}}});$stateProvider.state('mkd-download-modal.download',{url:'^/mkd/download',views:{'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'mkd-download-modal@mkd-download-modal':{templateUrl:'/app/account-setting/controllers/mkd-download.jsp',controller:'MkdDownloadController',controllerAs:'vm'}}});$stateProvider.state('mkd-download-modal',{abstract:true,onEnter:['constants','$rootScope','events','$state','$stateParams','$uibModal',function(constants,$rootScope,events,$state,$stateParams,$uibModal){if(constants.isMobile){$state.go('mobile-mkd-download-modal');return;}
var instance=$uibModal.open({template:'<div ui-view="modalRoot"></div>',size:'signin',animation:true});$rootScope.$broadcast(events.MODAL_OPEN,{modalName:'signin',modalInstance:instance});var unsubscribeEvent=$rootScope.$on('$stateChangeStart',function(event,toState,toParams,fromState,fromParams){if(toState.name!=='mkd-download-modal.download'){unsubscribeEvent();}
if(toState.name==$stateParams.previousState){event.preventDefault();instance.close();}});instance.result['finally'](function(){unsubscribeEvent();$state.go('home');});}],onExit:['$rootScope','$stateParams','events',function($rootScope,$stateParams,events){$rootScope.$broadcast(events.META_CHANGED,{})}],views:{'modalRoot@':{template:'<div id="mkd-download-modal" ui-view="mkd-download-modal"></div>'}}});}})();(function(){'use strict';angular.module('app.account-setting').controller('AccountSettingController',AccountSettingController);AccountSettingController.$inject=['$state','$stateParams','$timeout','constants','signinservice','userservice','$window'];function AccountSettingController($state,$stateParams,$timeout,constants,signinservice,userservice,$window){var vm=this;vm.accountSetting={};vm.formSetting={isPending:false,isShowBeautyProfile:false,isShowUniqueId:false,isShowCountry:false,isShowLanguage:false,isShowChangePassword:false,isShowSubscription:false,maxlengthOfDisplayName:50,maxlengthOfDescription:255,minlengthOfPassword:6,maxlengthOfPassword:20,languages:[],countries:[]};vm.isMobileSignUpSetting=isMobileSignUpSetting;vm.referer=$stateParams.referer;vm.isFacebookAccount=isFacebookAccount;vm.isShowMailSubscription=isShowMailSubscription;vm.pervAvatarFile=null;vm.getAvatar=getAvatar;vm.getBirthdayYearRange=getBirthdayYearRange;vm.getBirthdayDayRange=getBirthdayDayRange;vm.toggleBeautyProfile=toggleBeautyProfile;vm.toggleUniqueId=toggleUniqueId;vm.toggleCountry=toggleCountry;vm.toggleLanguage=toggleLanguage;vm.toggleSubscription=toggleSubscription;vm.toggleChangePassword=toggleChangePassword;vm.hasUniqueId=false;vm.showUniqueId=true;vm.uniqueIdOnChange=uniqueIdOnChange;vm.save=save;vm.cancel=cancel;vm.closeAccount=closeAccount;vm.isShowPromoSubscription=false;function isMobileSignUpSetting(){return $stateParams.isMobileSignUpSetting;}
function isFacebookAccount(){return signinservice.authSource==='Facebook';}
function isShowMailSubscription(){if(vm.accountSetting.subscribeMail){if(vm.accountSetting.subscribeMail.isValid){return true;}}
return false;}
function getAvatar(){if(vm.accountSetting.avatarFile!=null)
vm.pervAvatarFile=vm.accountSetting.avatarFile;return vm.pervAvatarFile||vm.accountSetting.avatarFile||vm.accountSetting.avatar;}
function getBirthdayYearRange(){var result=[];var lastYear=new Date().getFullYear();for(var i=lastYear;i>=lastYear-100;i--){result.push(i);}
return result;}
function getBirthdayDayRange(){if(!vm.accountSetting.birthday||!vm.accountSetting.birthday.year||!vm.accountSetting.birthday.month){return[];}
var result=[];var lastDate=new Date(vm.accountSetting.birthday.year,vm.accountSetting.birthday.month,0).getDate();for(var i=1;i<=lastDate;i++){result.push(i);}
return result;}
function toggleBeautyProfile(){var value=!vm.formSetting.isShowBeautyProfile;closeAllSettingBlocksIfNeed();vm.formSetting.isShowBeautyProfile=value;}
function toggleUniqueId(){var value=!vm.formSetting.isShowUniqueId;closeAllSettingBlocksIfNeed();vm.formSetting.isShowUniqueId=value;}
function closeAllSettingBlocksIfNeed(){if(constants.isMobile){vm.formSetting.isShowBeautyProfile=false;vm.formSetting.isShowCountry=false;vm.formSetting.isShowChangePassword=false;vm.formSetting.isShowSubscription=false;}}
function toggleCountry(){var value=!vm.formSetting.isShowCountry;closeAllSettingBlocksIfNeed();vm.formSetting.isShowCountry=value;}
function toggleLanguage(){var value=!vm.formSetting.isShowLanguage;closeAllSettingBlocksIfNeed();vm.formSetting.isShowLanguage=value;}
function toggleSubscription(){var value=!vm.formSetting.isShowSubscription;closeAllSettingBlocksIfNeed();vm.formSetting.isShowSubscription=value;}
function toggleChangePassword(){var value=!vm.formSetting.isShowChangePassword;closeAllSettingBlocksIfNeed();vm.formSetting.isShowChangePassword=value;}
function uniqueIdOnChange(){vm.showUniqueId=false;if(vm.accountSettingForm.$submitted){vm.accountSettingForm.exceptions.uniqueId={};}}
function save(){if(vm.accountSettingForm.$invalid){vm.formSetting.isShowBeautyProfile=true;vm.formSetting.isShowCountry=true;vm.formSetting.isShowChangePassword=true;return;}
vm.accountSettingForm.exceptions={};vm.accountSettingForm.exceptions.uniqueId={};vm.formSetting.isPending=true;if(!vm.hasUniqueId&&vm.accountSetting.uniqueId){if(invalidateUniqueIdFormat()){return;}
userservice.existsUniqueId(vm.accountSetting.uniqueId).then(function(response){if(response.data.exists&&vm.accountSetting.userId!=response.data.userId){vm.accountSettingForm.exceptions.uniqueId.exists=true;vm.formSetting.isPending=false;}else{updateAccountInfo();}},function(error){vm.accountSettingForm.exceptions.uniqueId.exists=true;vm.formSetting.isPending=false;});}else{updateAccountInfo();}}
function updateAccountInfo(){var params={displayName:vm.accountSetting.displayName,uniqueId:vm.accountSetting.uniqueId,description:vm.accountSetting.description,avatarFile:vm.accountSetting.avatarFile,websiteUrl:vm.accountSetting.websiteUrl,gender:vm.accountSetting.gender,birthday:toUserBirthday(vm.accountSetting.birthday),region:vm.accountSetting.region,skinType:vm.accountSetting.skinType,skinColor:vm.accountSetting.skinColor,underTone:vm.accountSetting.underTone,isSensitive:vm.accountSetting.isSensitive,eyeColor:vm.accountSetting.eyeColor,lashLength:vm.accountSetting.lashLength,hairTexture:vm.accountSetting.hairTexture,hairColor:vm.accountSetting.hairColor,hairType:vm.accountSetting.hairType,oldPassword:vm.accountSetting.password,newPassword:vm.accountSetting.newPassword,locale:vm.accountSetting.locale,trend:vm.accountSetting.subscribeMail?vm.accountSetting.subscribeMail.isNewsLetter:false,promo:vm.accountSetting.subscribeMail?vm.accountSetting.subscribeMail.isPromote:false};if(!vm.isShowPromoSubscription){params.promo=true;}
userservice.updateUser(params).then(function(response){signinservice.refreshCurrentUser(response.data.userInfo);vm.accountSetting.avatar=signinservice.currentUser.avatar;vm.accountSetting.avatarFile=null;if(response.data.errors.indexOf("ChangePasswordFail")===-1){vm.accountSetting.password=null;vm.accountSetting.newPassword=null;vm.accountSetting.newPasswordConfirm=null;}else{vm.accountSettingForm.exceptions.incorrectPasswordError=true;}
if(response.data.reload){$window.location.reload();}
if(vm.isMobileSignUpSetting()){if(vm.referer){$window.location.href=vm.referer;}else{$state.go('home');}}})['finally'](function(){$timeout(function(){vm.accountSettingForm.$setPristine();vm.accountSettingForm.$setUntouched();if(vm.accountSetting.uniqueId&&!vm.accountSettingForm.exceptions.uniqueId.exists&&!checkUniqueIdIsRandomFormat()){vm.hasUniqueId=true;}else if(!vm.accountSettingForm.exceptions.uniqueId.exists&&checkUniqueIdIsRandomFormat()){vm.showUniqueId=true;}
vm.formSetting.isPending=false;},1000);});}
function invalidateUniqueIdFormat(){if(!validateUniqueIdFormat()){vm.formSetting.isPending=false;return true;}
return false;}
function validateUniqueIdFormat(){var containLetterRegex=/[a-zA-Z]/;if(!containLetterRegex.test(vm.accountSetting.uniqueId)&&vm.accountSetting.uniqueId){vm.accountSettingForm.exceptions.uniqueId.letter=true;return false;}
var containSpecialCharRegex=/[^a-zA-Z_\d]/;if(containSpecialCharRegex.test(vm.accountSetting.uniqueId)){vm.accountSettingForm.exceptions.uniqueId.character=true;return false;}
return true;}
function checkUniqueIdIsRandomFormat(){var randomRegex=/(_[\d]{5})$/;return randomRegex.test(vm.accountSetting.uniqueId);}
function toUserBirthday(accountSettingBirthday){if(!accountSettingBirthday){return null;}
return accountSettingBirthday.year+'-'+padzero(accountSettingBirthday.month,2)+'-'
+padzero(accountSettingBirthday.day,2);}
function padzero(value,number){return value.length<number?padzero('0'+value,number):value;}
function cancel(){$state.go('profile.main',{userId:signinservice.currentUser.userId,childState:"self"});}
function closeAccount(){$state.go('bc-account-delete');}
activate();function activate(){if(!signinservice.isSignIn){$state.go('home');return;}
vm.formSetting.isPending=true;var currentUserId=signinservice.currentUser.userId;userservice.queryUser(currentUserId).then(function(response){var user=response.data;vm.accountSetting={userId:user.userId,displayName:user.displayName,uniqueId:user.uniqueId,description:user.description,avatar:user.avatar,avatarFile:null,websiteUrl:user.websiteUrl,gender:user.gender,birthday:toAccountSettingBirthday(user.birthday),region:user.region,email:user.email,skinType:user.attribute.skinType,skinColor:user.attribute.skinColor,underTone:user.attribute.underTone,isSensitive:user.attribute.isSensitive,eyeColor:user.attribute.eyeColor,lashLength:user.attribute.lashLength,hairTexture:user.attribute.hairTexture,hairColor:user.attribute.hairColor,hairType:user.attribute.hairType,locale:signinservice.locale};if(vm.accountSetting.uniqueId&&!checkUniqueIdIsRandomFormat()){vm.hasUniqueId=true;}
if(user.region=='en_US'){vm.isShowPromoSubscription=true;}
if(user.subscribeMail){vm.accountSetting.subscribeMail=user.subscribeMail;}})['finally'](function(){userservice.getSupportedSetting().then(function(response){var supportedObj=response.data;vm.formSetting.languages=supportedObj.languages;vm.formSetting.countries=supportedObj.countries;})['finally'](function(){$timeout(function(){vm.formSetting.isPending=false;},500);});});}
function toAccountSettingBirthday(userBirthday){if(!userBirthday){return null;}
var date=new Date(userBirthday);return{year:date.getFullYear().toString(),month:(date.getMonth()+1).toString(),day:date.getDate().toString()};}}})();(function(){'use strict';angular.module('app.account-setting').controller('MobileMkdRedeemController',MobileMkdRedeemController);MobileMkdRedeemController.$inject=['$state','$stateParams','$timeout','constants','signinservice','userservice','$window','deviceservice'];function MobileMkdRedeemController($state,$stateParams,$timeout,constants,signinservice,userservice,$window,deviceservice){var vm=this;vm.submitForm=submitForm;vm.email=$stateParams.email;vm.disableForm=false;vm.status='form';vm.handleSkip=handleSkip;vm.handleClose=handleClose;function submitForm(form){form.exceptions={};if(form.$invalid){return;}
vm.disableForm=true;userservice.sendMkdMail(vm.email,'').then(function(response){vm.status='result';})['finally'](function(){vm.disableForm=false;});}
function handleSkip(){if(constants.isMobile){if(deviceservice.isYMK()){location.href='ybc://profile';return;}
if(deviceservice.isYCP()){location.href='ycpbc://profile';return;}
if(deviceservice.isYCN()){location.href='ycnbc://profile';return;}
if(deviceservice.isYBC()){location.href='ybc://profile';return;}}
$state.go('home');}
function isKnownUserAgent(){var ua=$window.navigator.userAgent;if(ua.indexOf('cyberlink')!=-1){return true;}
if(ua.indexOf('perfectcorp')!=-1){return true;}
false;}
function handleClose(){if(constants.isMobile){if(deviceservice.isYMK()){location.href='ybc://action_back';return;}
if(deviceservice.isYCP()){location.href='ycpbc://action_back';return;}
if(deviceservice.isYCN()){location.href='ycnbc://action_back';return;}
if(deviceservice.isYBC()){location.href='ybc://action_back';return;}}
$state.go('home');}}})();(function(){'use strict';angular.module('app.account-setting').controller('MkdDownloadController',MkdDownloadController);MkdDownloadController.$inject=['$analytics'];function MkdDownloadController($analytics){var vm=this;}})();(function(){'use strict';angular.module('app.help',[]);})();(function(){'use strict';angular.module('app.help').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('help',{abstract:true,views:{'':{templateUrl:'/app/help/controllers/help.jsp',controller:'HelpController',controllerAs:'vm'},'header@':{templateUrl:'/app/help/controllers/help-header.jsp',controller:'HelpHeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/help/controllers/help-footer.jsp',controller:'HelpFooterController',controllerAs:'vm'}}});$stateProvider.state('help.aboutus',{url:'^/help/aboutus',templateUrl:'/app/help/controllers/help-aboutus.jsp',controller:'HelpAboutusController',controllerAs:'vm'});$stateProvider.state('help.developer',{url:'^/help/developer',templateUrl:'/app/help/controllers/help-developer.jsp',controller:'HelpDeveloperController',controllerAs:'vm'});}})();(function(){'use strict';angular.module('app.help').controller('HelpController',HelpController);HelpController.$inject=[];function HelpController(){var vm=this;}})();(function(){'use strict';angular.module('app.help').controller('HelpAboutusController',HelpAboutusController);HelpAboutusController.$inject=['$scope','$timeout','$rootScope','events','chromeservice'];function HelpAboutusController($scope,$timeout,$rootScope,events,chromeservice){var vm=this;vm.ableToShow=false;vm.installChromePlugin=chromeservice.installPlugin;vm.pluginInstalled=true;activate();function activate(){$rootScope.$broadcast(events.HELP_CENTER_STATE_CHANGED);}
$rootScope.$on(events.CHROME_PLUGIN_INSTALLED,function(){$scope.$apply(function(){vm.pluginInstalled=true;});});$timeout(function(){vm.ableToShow=true;},100);$timeout(function(){vm.pluginInstalled=chromeservice.isPluginInstalled();},200);}})();(function(){'use strict';angular.module('app.help').controller('HelpDeveloperController',HelpDeveloperController);HelpDeveloperController.$inject=['$timeout','$rootScope','events','constants'];function HelpDeveloperController($timeout,$rootScope,events,constants){var vm=this;vm.ableToShow=false;vm.buildButtonScript=buildButtonScript;vm.openPreview=openPreview;vm.toggleButtonType=toggleButtonType;vm.button={'circleitDo':'circleitButton','customImage':'','customImageDefault':constants.url+"/assets/images/beautycircle.png",'url':constants.url,'image':constants.url+"/assets/images/bcimage.jpg",'title':'','content':'','script':'','preview':''};vm.buttonTypes={'oneImage':true,'imageHover':false};activate();function activate(){$rootScope.$broadcast(events.HELP_CENTER_STATE_CHANGED);}
function buildButtonScript(){vm.button.preview=buildButtonPreview();var customImage=(vm.button.customImage==''?vm.button.customImageDefault:vm.button.customImage);vm.button.script="<a data-circleit-do=\""+vm.button.circleitDo+"\" ";if(vm.button.customImage!==''){vm.button.script+="data-circleit-custom=\"true\" ";}
vm.button.script+="href=\""+vm.button.preview+"\">";if(vm.button.customImage!==''){vm.button.script+="<img src=\""+customImage+"\" height=\"25\" alt=\"Circle it!\"/>";}
vm.button.script+="</a>";}
function buildButtonPreview(){return constants.url+"/api/post/circleit/button?url="+encodeURI(vm.button.url)+"&media="
+encodeURI(vm.button.image)+"&title="+encodeURI(vm.button.title)+"&content="
+encodeURI(vm.button.content);}
function openPreview(){var w=750;var h=512;var left=(screen.width/2)-(w/2);var top=(((screen.height/2)-(h/2))/2);window.open(vm.button.preview,'',"width="+w+",height="+h+",top="+top+",left= "+left);}
function toggleButtonType(buttonType,$event){var parent=$event.currentTarget.parentNode;var parentRoot=$event.currentTarget.parentNode.parentNode
angular.forEach(vm.buttonTypes,function(v,k){if(buttonType==k){vm.buttonTypes[k]=true;for(var i=0;i<parentRoot.children.length;i++){angular.element(parentRoot.children[i]).removeClass();}
angular.element(parent).addClass('active');}else{vm.buttonTypes[k]=false;}});}
$timeout(function(){vm.ableToShow=true;},100);}})();(function(){'use strict';angular.module('app.help').controller('HelpFooterController',HelpFooterController);HelpFooterController.$inject=['$state','$timeout','$rootScope','events'];function HelpFooterController($state,$timeout,$rootScope,events){var vm=this;vm.ableToShow=false;vm.currentState=$state.current.name;vm.year=new Date().getYear()+1900;activate();function activate(){}
$rootScope.$on(events.HELP_CENTER_STATE_CHANGED,function(event){vm.currentState=$state.current.name;});$timeout(function(){vm.ableToShow=true;},100);}})();(function(){'use strict';angular.module('app.help').controller('HelpHeaderController',HelpHeaderController);HelpHeaderController.$inject=['$state','$timeout','$rootScope','events'];function HelpHeaderController($state,$timeout,$rootScope,events){var vm=this;vm.ableToShow=false;vm.currentState=$state.current.name;activate();function activate(){}
$rootScope.$on(events.HELP_CENTER_STATE_CHANGED,function(event){vm.currentState=$state.current.name;});$timeout(function(){vm.ableToShow=true;},100);}})();(function(){angular.module('app.common').directive('helpTip',helpTip);helpTip.$inject=['constants','deviceservice','events','$rootScope','$window','$document','chromeservice'];function helpTip(constants,deviceservice,events,$rootScope,$window,$document,chromeservice){return{restrict:'E',replace:true,templateUrl:'/app/help/controllers/help-tip.jsp',controller:function($scope){$scope.ableToShowHelp=ableToShowHelp;$scope.ableToShowHelpMenu=false;$scope.installChromePlugin=chromeservice.installPlugin;$scope.openLearnMore=openLearnMore;$scope.pluginInstalled=false;function ableToShowHelp(){if(constants.isMobile){return false;}
if(!deviceservice.isChrome()){return false;}
return false;}
function openLearnMore(){var link="/help/aboutus"
$window.open(link);}
$rootScope.$on(events.CHROME_PLUGIN_INSTALLED,function(){$scope.pluginInstalled=true;});},link:function($scope,element,attrs){element.on('click',function(e){e.stopPropagation();$scope.$apply(function(){toggleHelpTip();});});function toggleHelpTip(){if(isPluginInstalled()){$scope.openLearnMore();return;}
$scope.ableToShowHelpMenu=!$scope.ableToShowHelpMenu;$document.one('click',function(){$scope.$apply(function(){if($scope.ableToShowHelpMenu){$scope.ableToShowHelpMenu=!$scope.ableToShowHelpMenu;}});});}
function isPluginInstalled(){if($scope.pluginInstalled){return true;}
return chromeservice.isPluginInstalled();}}}}})();(function(){angular.module('app.common').directive('imgSrcError',imgSrcError);imgSrcError.$inject=['constants','deviceservice','events','$rootScope','$window','$document','chromeservice'];function imgSrcError(constants,deviceservice,events,$rootScope,$window,$document,chromeservice){return{restrict:'A',link:function(scope,element,attr){element.on('error',function(){element.attr('src',attr.imgSrcError);})}}}})();(function(){'use strict';angular.module('app.search',['app.common','app.circle']);})();(function(){'use strict';angular.module('app.search').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('search',{url:'^/search/posts?q',views:{'':{templateUrl:'/app/search/controllers/search.jsp',controller:'SearchController',controllerAs:'vm'},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm'}},resolve:{keyword:['$stateParams',function($stateParams){return $stateParams.q;}],circleTypes:['circletypeservice',function(circletypeservice){return circletypeservice.listCircleTypes();}]}});$stateProvider.state('mobile-search',{url:'^/m/search/posts?q',views:{'':{templateUrl:'/app/search/controllers/search.jsp',controller:'SearchController',controllerAs:'vm'},'header@':{templateUrl:'/app/search/controllers/mobile-search-header.jsp',controller:'MobileSearchHeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm'}},resolve:{keyword:['$stateParams',function($stateParams){return $stateParams.q;}],circleTypes:['circletypeservice',function(circletypeservice){return circletypeservice.listCircleTypes();}]}});}})();(function(){'use strict';angular.module('app.search').controller('SearchController',SearchController);SearchController.$inject=['$scope','$controller','postservice','keyword','constants','circleTypes','$rootScope','events','$timeout'];function SearchController($scope,$controller,postservice,keyword,constants,circleTypes,$rootScope,events,$timeout){angular.extend(this,$controller('MasonryController',{$scope:$scope}));$scope.listposts=postservice.listPostByKeyword;$scope.searchId=keyword;$scope.maxPageSize=20;var vm=this;vm.isCircleTypesVisible=isCircleTypesVisible;vm.showCircleTypes=false;vm.getCircleTypes=getCircleTypes;activate();function activate(){if(typeof $scope.searchId==='undefined'){$scope.searchId='';}
if(constants.isMobile&&$scope.searchId==''){vm.showCircleTypes=true;$timeout(function(){adjustPositionOfCircleTypes();},200);$timeout(function(){adjustPositionOfCircleTypes();},2000);var unsubscribe=$rootScope.$on(events.SEARCH_INPUTBOX_FOCUS,function(event,params){unsubscribe();vm.showCircleTypes=false;});}}
function adjustPositionOfCircleTypes(){$('.m_category_btn_txt').each(function(idx,e){var h=$(e).height();$(e).css('margin-top',h/2*-1).css('opacity',1);})}
function isCircleTypesVisible(){return vm.showCircleTypes;}
function getCircleTypes(){return circleTypes.data;}}})();(function(){'use strict';angular.module('app.search').controller('MobileSearchHeaderController',MobileSearchHeaderController);MobileSearchHeaderController.$inject=['$stateParams','$controller','$scope'];function MobileSearchHeaderController($stateParams,$controller,$scope){angular.extend(this,$controller('HeaderController',{$scope:$scope}));var vm=this;vm.keyword=$stateParams.q;}})();(function(){angular.module('app.search').directive('searchBar',searchBar);searchBar.$inject=['$cookies','$document','postservice','circletypeservice','$state','$rootScope','events','constants'];function searchBar($cookies,$document,postservice,circletypeservice,$state,$rootScope,events,constants){return{restrict:'E',replace:true,scope:{keywords:"@",barcss:"@",placeholder:"@",clearhistory:"@",initfocus:"="},templateUrl:'/app/search/controllers/search-bar.jsp',controller:function($scope){$scope.submitKeywords=$scope.keywords;$scope.showRecents=false;$scope.showSuggestions=false;$scope.collapseSelf=collapseSelf;$scope.clearCookieRecents=clearCookieRecents;$scope.findSuggestions=findSuggestions;$scope.suggestions=[];$scope.recents=[];$scope.checkKeywords=checkKeywords;$scope.doSearching=false;$scope.submitInput=submitInput;$scope.submitSelected=submitSelected;$scope.changeToTextInput=changeToTextInput;$scope.deleteKeyword=deleteKeyword;$scope.clearKeywords=clearKeywords;$scope.goToHome=goToHome;$scope.toggleCircleType=toggleCircleType;$scope.showCircleType=false;$scope.circleTypesA=[];$scope.circleTypesB=[];$scope.isMobile=constants.isMobile;var current=$state.current.name;var searchState='search';activate();function activate(){if(current==='mobile-search'){searchState=current;}
if($scope.keywords){doKeywordSearch();}else{if(current==='search'){goToHome();}}
getCircleTypes();}
function getCircleTypes(){circletypeservice.listCircleTypes().then(function(response){for(var i=0;i<response.data.length;i++){if(i%2===0){$scope.circleTypesA.push(response.data[i]);}else{$scope.circleTypesB.push(response.data[i]);}}});}
function showRecentSearch(){collapseSelf();$scope.recents=getCookieRecents();if($scope.recents.length>0){$scope.showRecents=true;}}
function findSuggestions(){if(!$scope.keywords){showRecentSearch();return;}
$scope.showRecents=false;postservice.listPostKeywordSuggestion($scope.keywords).then(function(response){$scope.suggestions=response.data;$scope.showSuggestions=true;if(current==='mobile-search'){$('.mask').height($(document).height());}});}
function collapseSelf(){$scope.showRecents=false;$scope.showSuggestions=false;if(!$scope.doSearching){$scope.keywords="";}}
function getCookieRecents(){var r=$cookies.getObject("bcw_recentSearch");if(!r){r=[];}
return r;}
function updateCookieRecents(){$scope.recents=getCookieRecents();if(keywordAlreadyInRecents()){return;}
$scope.recents.push($scope.keywords);if($scope.recents.length>6){var sIndex=$scope.recents.length-6;var eIndex=$scope.recents.length+1;$scope.recents=$scope.recents.slice(sIndex,eIndex);}
$cookies.putObject("bcw_recentSearch",$scope.recents);}
function clearCookieRecents(){$scope.recents=[];$cookies.putObject("bcw_recentSearch",$scope.recents);$scope.showRecents=false;}
function clearKeywords(){$scope.keywords="";$scope.showSuggestions=false;}
function keywordAlreadyInRecents(){for(var i=0;i<$scope.recents.length;i++){if($scope.keywords==$scope.recents[i]){return true;}}
return false;}
function submitInput($event){var keyCode=$event.which||$event.keyCode;if(keyCode===13){doKeywordSearch();}}
function submitSelected(selected){$scope.keywords=selected;doKeywordSearch();}
function doKeywordSearch(){if(!$scope.keywords){if(current==='mobile-search'){return goToSearch();}
return goToHome();}
$scope.doSearching=true;collapseSelf();if($scope.keywords===$scope.submitKeywords){return;}
$scope.submitKeywords=$scope.keywords;updateCookieRecents();goToSearch();}
function changeToTextInput(){$scope.doSearching=false;}
function checkKeywords($event){$rootScope.$broadcast(events.SEARCH_INPUTBOX_FOCUS);if($scope.keywords){findSuggestions();return;}
for(var element=$event.target;element;element=element.parentNode){if(angular.element(element).hasClass("do_input")){showRecentSearch();return;}}}
function deleteKeyword(index){var keywords=$scope.keywords.split(' ');var newKeyword="";for(var i=0;i<keywords.length;i++){if(i!=index){newKeyword+=(newKeyword.length>0?' ':"")+keywords[i];}}
submitSelected(newKeyword);}
function goToHome(){$state.go('home',{},{reload:true});}
function goToSearch(){$state.go(searchState,{q:$scope.keywords},{reload:true});}
function toggleCircleType(event){event.stopPropagation();$scope.showCircleType=!$scope.showCircleType;}},link:function($scope,elem,attrs){var eventHandler=function(e){$scope.showCircleType=false;if(angular.element(elem).hasClass("ng-hide")){return;}
if(!e||!e.target){return;}
for(var element=e.target;element;element=element.parentNode){if(angular.element(element).hasClass("search_bar_top")){return;}}
if($scope.keywords&&$scope.submitKeywords===$scope.keywords){$scope.$apply(function(){$scope.doSearching=true;});}
return $scope.$apply(function(){return $scope.collapseSelf();});};if($scope.initfocus){var input=elem.find("input");input.attr("autofocus",true);}
$document.on('click',eventHandler);$scope.$on('$destroy',function(){$document.off('click',eventHandler);});}}}})();(function(){angular.module('app.home').filter('highlight',highlight);highlight.$inject=['$sce'];function highlight($sce){return function(input,keywords){if(typeof input==='function'){return'';}
if(keywords){var words='('+keywords.split(/\ /).join(' |')+'|'+keywords.split(/\ /).join('|')+')',exp=new RegExp(words,'gi');if(words.length){input=input.replace(exp,"<strong>$1</strong>");}}
return $sce.trustAsHtml(input);};}})();(function(){angular.module('app.home').filter('reverse',reverse);function reverse(){return function(items){return items.slice().reverse();};}})();(function(){angular.module('app.home').filter('spacebreak',spacebreak);function spacebreak(){return function(value){if(!value.length){return;}
var v=" ";var vv="";var words=value.split(" ");for(var i=0;i<words.length;i++){if(words[i].length==0){continue;}
if(v.indexOf(" "+words[i]+" ")>-1){continue;}
v+=words[i]+" ";vv+=(vv.length>0?" ":"")+words[i];}
return vv.split(" ");};}})();(function(){'use strict';angular.module('app.misc',['app.common','app.user']);})();(function(){'use strict';angular.module('app.misc').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('event-page',{url:'/event/:eventId',controller:'EventController',controllerAs:'vm'});$stateProvider.state('ymkevent-page',{url:'/ymkevent/:eventId',controller:'EventController',controllerAs:'vm'});$stateProvider.state('contest-page',{url:'/contest/:contestId',controller:'ContestController',controllerAs:'vm'});$stateProvider.state('go-to-store',{url:'/store/:appName',controller:'GoToStoreController',controllerAs:'vm'});$stateProvider.state('promotion-page',{url:'/promotion_page/:id',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('free-sample',{url:'/free_sample/:id',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('video-tips',{url:'/video_tips/:id',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-upgrade',{url:'/upgrade/:id',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('action-wildcard',{url:'^/action_:action',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('brand-wildcard',{url:'^/brand_:action',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('action-wildcard2',{url:'^/action/:action',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('action-wildcard3',{url:'^/action/:action/',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('action-wildcard4',{url:'^/action_:action/:type',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('action-wildcard5',{url:'^/action/:action/:type',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-launcher',{url:'^/launcher',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-extra',{url:'^/extra/:extra',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-feedback',{url:'^/feedback:feedback',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-faq',{url:'^/faq:faq',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-makeupcam',{url:'^/makeupcam:makeupcam',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-shoppost',{url:'^/shoppost',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-profile',{url:'^/profile/',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-redirect',{url:'^/action/redirect/',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('action-redirect',{url:'^/action_redirect/',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-cutout',{url:'^/cutout',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-live',{url:'^/live_:action',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('app-challenge',{url:'^/challenge',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});$stateProvider.state('iap-page',{url:'^/iap_page',templateUrl:'/app/misc/controllers/un.supported.page.jsp',controller:'UnsupportedPageController',controllerAs:'vm'});}})();(function(){'use strict';angular.module('app.misc').controller('EventController',EventController);EventController.$inject=['constants','deviceservice','$stateParams','$window','applinkservice','cookieservice','$location'];function EventController(constants,deviceservice,$stateParams,$window,applinkservice,cookieservice,$location){var vm=this;activate();function activate(){var app=getApp();var uri=$window.location.pathname;var scheme=applinkservice.getSchemeByApp(app,uri);if(constants.isMobile){if(!hasBeenRedirected()){$window.location.href='/m/continue?appName='+app+'&appUrl='
+encodeURIComponent(scheme+'://event/'+$stateParams.eventId);}
return;}
$window.location.href=applinkservice.getProductUrl(app);}
function getApp(){if($location.search().app){return $location.search().app.toLowerCase();}
if($location.search().appName){return $location.search().appName.toLowerCase();}
var c=cookieservice.getLastUsedApp();return c?c:'ymk';}
function hasBeenRedirected(){return $location.search().r==1;}}})();(function(){'use strict';angular.module('app.misc').controller('ContestController',ContestController);ContestController.$inject=['constants','deviceservice','$stateParams','$window','applinkservice','cookieservice','$location'];function ContestController(constants,deviceservice,$stateParams,$window,applinkservice,cookieservice,$location){var vm=this;activate();function activate(){var app=getApp();var locale=getLocale();var uri=$window.location.pathname;var scheme=applinkservice.getSchemeByApp(app,uri);if(constants.isMobile){if(!hasBeenRedirected()){$window.location.href='/m/continue?appName='+app+'&appUrl='
+encodeURIComponent(scheme+'://contest/'+$stateParams.contestId);}
return;}
$window.location.href=applinkservice.getProductUrl(app,locale);}
function getApp(){var c=cookieservice.getLastUsedApp();return c?c:'ybc';}
function hasBeenRedirected(){return $location.search().r==1;}
function getLocale(){var search=$location.search();if(search&&search.locale){return search.locale;}
return'en_US';}}})();(function(){'use strict';angular.module('app.misc').controller('GoToStoreController',GoToStoreController);GoToStoreController.$inject=['constants','deviceservice','$state','$stateParams','$window','applinkservice'];function GoToStoreController(constants,deviceservice,$state,$stateParams,$window,applinkservice){var vm=this;activate();function activate(){var appName=$stateParams.appName?$stateParams.appName:'ymk';if(constants.isMobile){if(deviceservice.isIOS()){$window.location.href=applinkservice.getStoreLink('bc_web_openstore','ios',appName);setTimeout(function(){$window.location.href=applinkservice.getProductUrl(appName);},3000);return;}
if(deviceservice.isAndroid()){$window.location.href=applinkservice.getStoreLink('openstore','android',appName);return;}}
$window.location.href=applinkservice.getProductUrl(appName);}}})();(function(){'use strict';angular.module('app.misc').controller('UnsupportedPageController',UnsupportedPageController);UnsupportedPageController.$inject=['constants','deviceservice','$state','$stateParams','$window','applinkservice','$location'];function UnsupportedPageController(constants,deviceservice,$state,$stateParams,$window,applinkservice,$location){var vm=this;vm.isWeiboOrWeixin=isWeiboOrWeixin;vm.getHintImage=getHintImage;activate();function activate(){if(isOpenwallet()||isOpennftpage()){var search=$location.search();if(search&&search.url){$window.location.href=search.url;return;}}
if(isTrynftlook()){var search=$location.search()
if(!(search&&search.appOnly)){var fallbackUrl='https://www.perfectcorp.com/nft/try-on/'+search.guid;var firstParam=true;if(!!search.accesscode){fallbackUrl+=(firstParam?'?':'&')+'accesscode='+search.accesscode;firstParam=false;}
if(!!search.is2b){fallbackUrl+=(firstParam?'?':'&')+'is2b='+search.is2b;firstParam=false;}
$window.location.href=fallbackUrl;return;}}
var path=$location.path();if(path=='/action_redirect/'){if(!constants.isMobile){var search=$location.search();if(search.RedirectUrl){$window.location.href=search.RedirectUrl;}
return;}}
var appName=$location.search().ap||$location.search().appName;var store=$location.search().store;var _gl=$location.search()._gl;var locale=getLocale();var utmStr='';if(!constants.isMobile){if(appName){appName=appName.toLowerCase();}else{appName=getAppNameByAppUrl();}
if(appName=='ymk'){if(store=='android'){$window.location.href='https://play.google.com/store/apps/details?id=com.cyberlink.youcammakeup';return;}else if(store=='ios'){$window.location.href=constants.appstore['ymk'][locale];return}
utmStr='?utm_source=universal_link&utm_medium=referral&utm_campaign=universal_link_desktop_redirect';}
if(appName=='ycp'){if(store=='android'){$window.location.href='https://play.google.com/store/apps/details?id=com.cyberlink.youperfect';return;}else if(store=='ios'){$window.location.href=constants.appstore['ycp'][locale];return}
utmStr='?utm_source=universal_link&utm_medium=referral&utm_campaign=universal_link_desktop_redirect';}
if(appName=='ycvb'){if(store=='android'){$window.location.href='https://play.google.com/store/apps/details?id=com.youcam.videoeditor.reface.makeup';return;}else if(store=='ios'){$window.location.href=constants.appstore['ycvb'][locale];return}
utmStr='?utm_source=universal_link&utm_medium=referral&utm_campaign=universal_link_desktop_redirect';}
if(appName=='yce'){utmStr='?utm_source='+getTrackingSource()+'&utm_medium='+getTrackingCode();}
if(_gl){utmStr=(utmStr?utmStr+'&_gl=':'?_gl=')+_gl;}
$window.location.href=applinkservice.getProductUrl(appName,locale)+utmStr;return;}
var app=getAppName();if(path=='/action/skincare'){if(deviceservice.isYoucam()){$window.location.href=decodeURIComponent(getEncodedAppUrl());return;}else{if(deviceservice.isIOS()){$window.location.href=applinkservice.getStoreLink(getTrackingCode(),'ios',app);}
if(deviceservice.isAndroid()){$window.open(applinkservice.getStoreLink(getTrackingCode(),'android',app,getTrackingSource()));}
return;}}
if(!isWeiboOrWeixin()&&!isFromUniversalLink()){if(deviceservice.isIOS9()){var search=$location.search();if(search.appUrl){$window.location.href='/m/continue?appName='+appName+'&appUrl='+getEncodedAppUrl();}}}}
function getAppName(){var search=$location.search();if(search&&search.appName){return search.appName.toLowerCase();}
if(search&&search.app){return search.app.toLowerCase();}
return'ymk';}
function getLocale(){var search=$location.search();if(search&&search.locale){return search.locale;}
return'en_US';}
function getTrackingSource(){return $location.search().SourceType;}
function getTrackingCode(){var search=$location.search();return search.t||search.SourceId;}
function isFromUniversalLink(){return $location.search().isUniversalLink==1;}
function isOpenwallet(){return $location.path().match(/^\/action\/openwallet/i);}
function isOpennftpage(){return $location.path().match(/^\/action\/opennftpage/i);}
function isTrynftlook(){return $location.path().match(/^\/action\/trynftlook/i);}
function getEncodedAppUrl(){var search=$location.search();var appUrl=search.appUrl;var keys=Object.keys(search);appUrl+='?1=1';for(var i=0;i<keys.length;i++){var key=keys[i];if(key=='appUrl'){continue;}
if(key=='appName'){continue;}
if(key=='isUniversalLink'){continue;}
appUrl+='&'+key+'='+search[key];}
return encodeURIComponent(appUrl);}
function isWeiboOrWeixin(){return deviceservice.isWeibo()||deviceservice.isWeixin();}
function getHintImage(){if(deviceservice.isWeibo()){if(deviceservice.isAndroid()){return"hint_weibo_android.png";}else{return"hint_weibo_ios.png";}}
if(deviceservice.isWeixin()){if(deviceservice.isAndroid()){return"hint_weixin_android.png";}else{return"hint_weixin_ios.png";}}
return"hint_weixin_android.png";}
function getAppNameByAppUrl(){var search=$location.search();if(search&&search.appUrl&&search.appUrl.indexOf('://')!=-1){var appName=search.appUrl.split('://')[0];return appName.toLowerCase();}
return null;}}})();(function(){'use strict';angular.module('app.shoplist',['angular-storage']);})();(function(){'use strict';angular.module('app.shoplist').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('shoplist',{url:'^/shoplist/:eventId',views:{'':{templateUrl:'/app/shoplist/controllers/shoplist.jsp',controller:'ShopListController',controllerAs:'vm',resolve:{shoplist:['$stateParams','shoplistservice',function($stateParams,shoplistservice){return shoplistservice.listPostBySpecialEvent($stateParams.eventId);}]}},'header@':{templateUrl:'/app/home/controllers/header.jsp',controller:'HeaderController',controllerAs:'vm'},'footer@':{templateUrl:'/app/home/controllers/footer.jsp',controller:'FooterController',controllerAs:'vm'}}});}})();(function(){'use strict';angular.module('app.shoplist').controller('ShopListController',ShopListController);ShopListController.$inject=['$scope','$rootScope','$controller','postservice','constants','shoplist','$stateParams'];function ShopListController($scope,$rootScope,$controller,postservice,constants,shoplist,$stateParams){angular.extend(this,$controller('MasonryController',{$scope:$scope}));$scope.listposts=postservice.listPostBySpecialEvent;$scope.searchId=$stateParams.eventId;var vm=this;vm.isMobile=constants.isMobile;vm.isShopEvent=true;activate();function activate(){}}})();(function(){'use strict';angular.module('app.shoplist').factory('shoplistservice',shoplistservice);shoplistservice.$inject=['$http','cacheservice','store'];function shoplistservice($http,cacheservice,store){var service={listPostBySpecialEvent:listPostBySpecialEvent,hasShopListSessionId:hasShopListSessionId,genShopListSessionId:genShopListSessionId,getShopListSessionId:getShopListSessionId};return service;function hasShopListSessionId(){return store.get('y_device')!==null;}
function genShopListSessionId(user){var s=(user===null)?Math.floor((Math.random()*10000)+1):user.userId;store.set('y_device',Date.now()+'_'+s);}
function getShopListSessionId(){return store.get('y_device');}
function listPostBySpecialEvent(eventId){return $http.get('/post/post.action?listPostBySpecialEvent&eventId='+eventId,{cache:cacheservice.cache});}}})();(function(){'use strict';angular.module('app.shoplist').run(runBlock);runBlock.$inject=['$state','$rootScope','signinservice','shoplistservice'];function runBlock($state,$rootScope,signinservice,shoplistservice){if(!needGenSessionId()){shoplistservice.genShopListSessionId(signinservice.currentUser);}
function needGenSessionId(){return shoplistservice.hasShopListSessionId();}}})();(function(){'use strict';angular.module('app.dlink',['angular-storage']);})();(function(){'use strict';angular.module('app.dlink').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('dlink',{url:'^/dlink?lang&appName&type',views:{'':{templateUrl:'/app/dlink/controllers/dlink.jsp',controller:'DLinkController',controllerAs:'vm',resolve:{lang:['$stateParams',function($stateParams){return $stateParams.lang;}],appName:['$stateParams',function($stateParams){return $stateParams.appName;}],type:['$stateParams',function($stateParams){return $stateParams.type;}]}}}});}})();(function(){'use strict';angular.module('app.dlink').controller('DLinkController',DLinkController);DLinkController.$inject=['$scope','$rootScope','$controller','constants','lang','appName','type','deviceservice','$stateParams','$window'];function DLinkController($scope,$rootScope,$controller,constants,lang,appName,type,deviceservice,$stateParams,$window){var vm=this;vm.lang=lang?lang:'enu';vm.appName=appName?appName:'ycp';vm.gotoLink=gotoLink;vm.type=type?type:'default';activate();function activate(){if(!constants.isMobile){$window.location.href=getPfAppUrl(lang,appName);return;}}
function gotoLink(){if(vm.lang=='enu'){if(type=='mask'){$window.location.href='https://youmakeup.page.link/ig_mask_en';return;}
$window.location.href='https://youmakeup.page.link/ig_youcamapps';return;}else{if(type=='mask'){$window.location.href='https://youmakeup.page.link/igmask_jp';return;}
$window.location.href='https://youmakeup.page.link/igunlockpremium-jp';return;}}
function getPfAppUrl(lang,appName){if(lang=='enu'){return constants.pfUrl['en_US']+'consumer/apps/'+appName;}
if(lang=='cht'){return constants.pfUrl['zh_TW']+'consumer/apps/'+appName;}
if(lang=='chs'){return constants.pfUrl['zh_CN']+'consumer/apps/'+appName;}
if(lang=='jpn'){return constants.pfUrl['ja_JP']+'consumer/apps/'+appName;}
if(lang=='kor'){return constants.pfUrl['ko_KR']+'consumer/apps/'+appName;}
if(lang=='deu'){return constants.pfUrl['de_DE']+'consumer/apps/'+appName;}
if(lang=='fra'){return constants.pfUrl['fr_FR']+'consumer/apps/'+appName;}
if(lang=='esp'){return constants.pfUrl['es_ES']+'consumer/apps/'+appName;}
if(lang=='ptb'){return constants.pfUrl['pt_BR']+'consumer/apps/'+appName;}
return constants.pfUrl['en_US']+'consumer';}}})();(function(){'use strict';angular.module('app.dlink').factory('dlinkservice',dlinkservice);dlinkservice.$inject=['$http','store'];function dlinkservice($http,store){var service={};return service;}})();(function(){'use strict';angular.module('app.dlink').run(runBlock);runBlock.$inject=['$state','$rootScope','dlinkservice'];function runBlock($state,$rootScope,dlinkservice){}})();(function(){'use strict';angular.module('app.demostore',['angular-storage']);})();(function(){'use strict';angular.module('app.demostore').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('demostore',{url:'^/demostore?lang',views:{'':{templateUrl:'/app/demostore/controllers/demostore.jsp',controller:'DemoStoreController',controllerAs:'vm',resolve:{lang:['$stateParams',function($stateParams){return $stateParams.lang;}]}}}});}})();(function(){'use strict';angular.module('app.demostore').controller('DemoStoreController',DemoStoreController);DemoStoreController.$inject=['$scope','$rootScope','$controller','constants','lang','deviceservice','$stateParams','$window'];function DemoStoreController($scope,$rootScope,$controller,constants,lang,deviceservice,$stateParams,$window){var vm=this;vm.lang=lang?lang:'enu';activate();function activate(){if(vm.lang=='enu'){$window.location.href='https://www.perfectcorp.com/business/showcase/lip-color';return;}
if(vm.lang=='chs'){$window.location.href='https://www.perfectcorp.com/zh-cn/business/showcase/lip-color';return;}
if(vm.lang=='jpn'){$window.location.href='https://www.perfectcorp.com/ja/business/showcase/lip-color';return;}
if(vm.lang=='fra'){$window.location.href='https://www.perfectcorp.com/fr/business/showcase/lip-color';return;}
$window.location.href='https://www.perfectcorp.com/business/showcase/lip-color';return;}}})();(function(){'use strict';angular.module('app.demostore').factory('demostoreservice',demostoreservice);demostoreservice.$inject=['$http','store'];function demostoreservice($http,store){var service={};return service;}})();(function(){'use strict';angular.module('app.demostore').run(runBlock);runBlock.$inject=['$state','$rootScope','demostoreservice'];function runBlock($state,$rootScope,demostoreservice){}})();(function(){'use strict';angular.module('app.redeem',['angular-storage']);})();(function(){'use strict';angular.module('app.redeem').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('redeem',{url:'^/:app/redeem?code&token&ip&bcCountry',onEnter:['$stateParams','$state','redeemservice',function($stateParams,$state,redeemservice){$state.go('redeem-next',{app:$stateParams.app},{location:'replace'});}],resolve:{redeem:['$stateParams','$state','$window','redeemservice',function($stateParams,$state,$window,redeemservice){redeemservice.setRedeemRegion($stateParams.bcCountry||'en_US');return redeemservice.valid2Redeem($stateParams);}]},views:{'':{templateUrl:'/app/redeem/controllers/redeem-init.jsp',controller:'RedeemActionController',controllerAs:'vm'}}});$stateProvider.state('redeem-next',{url:'^/:app/redeem/next',views:{'':{templateUrl:'/app/redeem/controllers/redeem-next.jsp',controller:'RedeemActionController',controllerAs:'vm',resolve:{redeem:['$stateParams','redeemservice',function($stateParams,redeemservice){$stateParams.bcCountry=redeemservice.getRedeemRegion();return redeemservice.valid2Redeem($stateParams);}]}}}});$stateProvider.state('redeem-final',{url:'^/:app/redeem/final',views:{'':{templateUrl:'/app/redeem/controllers/redeem-final.jsp',controller:'RedeemActionController',controllerAs:'vm',resolve:{redeem:['$stateParams','redeemservice',function($stateParams,redeemservice){$stateParams.bcCountry=redeemservice.getRedeemRegion();return redeemservice.valid2Redeem($stateParams);}]}}}});$stateProvider.state('redeem-oops',{url:'^/:app/redeem/oops',views:{'':{templateUrl:'/app/redeem/controllers/redeem-oops.jsp',controller:'RedeemActionController',controllerAs:'vm',resolve:{redeem:['$stateParams','redeemservice',function($stateParams,redeemservice){$stateParams.bcCountry=redeemservice.getRedeemRegion();return redeemservice.valid2Redeem($stateParams);}]}}}});$stateProvider.state('redeem-invalid',{url:'^/:app/redeem/invalid',views:{'':{templateUrl:'/app/redeem/controllers/redeem-invalid.jsp',controller:'RedeemActionController',controllerAs:'vm',resolve:{redeem:['$stateParams','redeemservice',function($stateParams,redeemservice){$stateParams.bcCountry=redeemservice.getRedeemRegion();return redeemservice.valid2Redeem($stateParams);}]}}}});$stateProvider.state('redeem-terms-and-conditions',{url:'^/:app/redeem/terms-and-conditions',views:{'':{templateUrl:'/app/redeem/controllers/redeem-terms-and-conditions.jsp',controller:'RedeemActionController',controllerAs:'vm',resolve:{redeem:['$stateParams','redeemservice',function($stateParams,redeemservice){$stateParams.bcCountry=redeemservice.getRedeemRegion();return redeemservice.valid2Redeem($stateParams);}]}}}});}})();(function(){'use strict';angular.module('app.redeem').controller('RedeemController',RedeemController);RedeemController.$inject=['$scope','$rootScope','$controller','$window','$state','constants','redeem','$stateParams','redeemservice'];function RedeemController($scope,$rootScope,$controller,$window,$state,constants,redeem,$stateParams,redeemservice){var vm=this;vm.redeem=redeem.data;vm.goSignIn=goSignIn;vm.goRegister=goRegister;activate();function activate(){if(!vm.redeem.valid2Redeem){$state.go('redeem-oops',{app:vm.redeem.app});}}
function goSignIn(){redeemservice.setApp(vm.redeem.app);redeemservice.setIsSignInFlow(true);$state.go('redeem-init',{app:vm.redeem.app});}
function goRegister(){redeemservice.setApp(vm.redeem.app);redeemservice.setIsSignInFlow(false);$state.go('redeem-init',{app:vm.redeem.app});}}})();(function(){'use strict';angular.module('app.redeem').controller('RedeemActionController',RedeemActionController);RedeemActionController.$inject=['$scope','$rootScope','$controller','$window','$state','$timeout','constants','redeem','$stateParams','redeemservice','authService','userservice','signinservice','facebookservice','applinkservice','deviceservice','gaservice'];function RedeemActionController($scope,$rootScope,$controller,$window,$state,$timeout,constants,redeem,$stateParams,redeemservice,authService,userservice,signinservice,facebookservice,applinkservice,deviceservice,gaservice){var vm=this;vm.app=null;vm.isSignInFlow=false;vm.disableForm=false;vm.facebookLoading=false;vm.voucherLoading=false;vm.subscribeLoading=false;vm.ymkLoginLoading=false;vm.resendMailLoading=false;vm.isSubscribe=false;vm.redeemInProgress=false;vm.redeem=redeem.data;$scope.currentUser=currentUser;$scope.isSignIn=isSignIn;vm.signIn=signIn;vm.submitForm=submitForm;vm.submitNextForm=submitNextForm;vm.submitSubscribeForm=submitSubscribeForm;vm.signUpEmail=signUpEmail;vm.signInEmail=signInEmail;vm.signInToken=signInToken;vm.logoutToken=logoutToken;vm.signInFacebook=signInFacebook;vm.toggleIsSignInFlow=toggleIsSignInFlow;vm.getMail=getMail;vm.getCoupon=getCoupon;vm.getExpire=getExpire;vm.getDisplayName=getDisplayName;vm.buildFacebookLogin=buildFacebookLogin;vm.launchApp=launchApp;vm.launchAppByScheme=launchAppByScheme;vm.requestRegion=requestRegion;vm.resendVoucher=resendVoucher;vm.shopNow=shopNow;activate();function activate(){vm.app=vm.redeem.app;redeemservice.setApp(vm.redeem.app);if('redeem'===$state.current.name||'redeem-next'===$state.current.name){if(!vm.redeem.valid2Redeem){$state.go('redeem-oops',{app:vm.app},{location:'replace'});return;}}
if('redeem'===$state.current.name){$scope.$on('$viewContentLoaded',function(event){$timeout(function(){var ua=window.navigator.userAgent;$window.addEventListener('youcam-event',function(event){var e=event.detail;switch(e.type){case'session.created':vm.ymkLoginLoading=true;vm.signInToken(e.token);break;case'session.deleted':break;}});var app='ycs';if(ua.indexOf('youcammakeup')!=-1){app='ymk';}
if(ua.indexOf('youperfect')!=-1){app='ycp';}
if(ua.indexOf('ycn')!=-1){app='ycn';}
var e=document.createElement('iframe');e.src=app+'://web_ready';e.style.display='none';document.body.appendChild(e);document.body.removeChild(e);},500);});}
if('redeem'===$state.current.name){if($stateParams.token&&$stateParams.token!==''&&$stateParams.token!=='null'){vm.signInToken($stateParams.token);}
if($stateParams.code&&$stateParams.code!==''&&$stateParams.code!=='null'){vm.facebookLoading=true;vm.buildFacebookLogin($stateParams.code);}}
if('redeem'===$state.current.name){if(redeemservice.getRedeemUid()!==null&&redeemservice.getRedeemMail()!==null&&redeemservice.getRedeemName()!==null){if(redeemservice.getRedeemNext()===null){$state.go('redeem-next',{app:vm.app},{location:'replace'});return;}else{$state.go('redeem-final',{app:vm.app},{location:'replace'});return;}}}
if('redeem-next'===$state.current.name){if(redeemservice.getRedeemUid()!==null&&redeemservice.getRedeemMail()!==null&&redeemservice.getRedeemName()!==null&&redeemservice.getRedeemNext()!==null){$state.go('redeem-final',{app:vm.app},{location:'replace'});return;}}
if('redeem-final'===$state.current.name){if(redeemservice.getRedeemMail()===null||redeemservice.getRedeemName()===null){$state.go('redeem-next',{app:vm.app},{location:'replace'});return;}}}
function currentUser(){return signinservice.currentUser;}
function isSignIn(){return signinservice.isSignIn;}
function signIn(){$rootScope.$broadcast(events.LOGIN_REQUIRED);}
function submitForm(form){form.exceptions={};if(form.$invalid){return;}
if(vm.isSignInFlow){signInEmail(form);}else{signUpEmail(form);}}
function submitNextForm(form){vm.redeemInProgress=true;vm.voucherLoading=true;form.exceptions={};if(form.$invalid){vm.voucherLoading=false;vm.redeemInProgress=false;return;}
redeemservice.doRedeem(redeemservice.getRedeemUid(),vm.email,vm.requestRegion()).then(function(redeemResponse){gaservice.eventTrack('Redeem','Click','GetCoupon_'+requestRegion().split('_')[1]);if(redeemResponse&&redeemResponse.data.voucher){redeemservice.setRedeemCoupon(redeemResponse.data.voucher);}
var url=constants.universalLinkPrefix+'/ap/ycs/launcher?SourceType=Redeem_Mail&SourceId=Redeem_Mail&appName=ycs&bts=1';redeemservice.setRedeemNext();redeemservice.setRedeemMail(vm.email);if(redeemservice.getRedeemName()==null){redeemservice.setRedeemName(vm.email.split('@')[0]);}
redeemservice.setRedeemName(redeemservice.getRedeemName());redeemservice.sendRedeemMail(redeemservice.getRedeemUid(),vm.email,redeemservice.getRedeemName(),url,vm.requestRegion()).then(function(res){vm.voucherLoading=false;$state.go('redeem-final',{app:vm.app},{location:'replace'});return;});});}
function submitSubscribeForm(form){vm.subscribeLoading=true;form.exceptions={};if(form.$invalid){vm.subscribeLoading=false;return;}
redeemservice.doSubscribe(vm.email).then(function(subscribeResponse){if(subscribeResponse.data.email){vm.subscribeLoading=false;vm.isSubscribe=true;}});}
function toggleIsSignInFlow(form){vm.isSignInFlow=!vm.isSignInFlow;redeemservice.setIsSignInFlow(vm.isSignInFlow);}
function signUpEmail(form){vm.disableForm=true;signinservice.signUpEmail(vm.email,vm.password,false).then(function(response){handleSignUpResponse(response,form,'email',vm.email);},function(error){form.exceptions.signuperror=true;})['finally'](function(){vm.disableForm=false;});}
function signInEmail(form){vm.disableForm=true;signinservice.signInEmail(vm.email,vm.password,false).then(function(response){var status=response.data.status;if(status==="OK"||status==="AccountCreated"){handleSignUpResponse(response,form,'email');}else if(status==="WaitValidate"){form.exceptions.waitvalidate=true;}else{form.exceptions.signinerror=true;}},function(error){form.exceptions.signinerror=true;})['finally'](function(){vm.disableForm=false;});}
function logoutToken(){redeemservice.logout();}
function signInToken(redeemToken){vm.disableForm=true;userservice.queryUserByToken(redeemToken).then(function(result){authService.loginConfirmed();userservice.queryUser(result.data.userId).then(function(userResponse){signinservice.refreshCurrentUser(userResponse.data);if(userResponse.data.email!==null){redeemservice.setRedeemMail(userResponse.data.email);}
redeemservice.setRedeemUid(userResponse.data.userId);redeemservice.setRedeemName(signinservice.currentUser.displayName);$state.go('redeem-next',{app:vm.app},{location:'replace'});return;});});signinservice.signInEmail(vm.email,vm.password,false).then(function(response){var status=response.data.status;if(status==="OK"||status==="AccountCreated"){handleSignUpResponse(response,form,'email');}else if(status==="WaitValidate"){form.exceptions.waitvalidate=true;vm.ymkLoginLoading=false;}else{form.exceptions.signinerror=true;vm.ymkLoginLoading=false;}},function(error){form.exceptions.signinerror=true;vm.ymkLoginLoading=false;})['finally'](function(){vm.disableForm=false;vm.ymkLoginLoading=false;});}
function signInFacebook(form){resetForm(form);$window.location.href='https://www.facebook.com/v12.0/dialog/oauth?client_id='+constants.facebookAppId+'&scope=public_profile,user_friends,email&display=page'+'&redirect_uri='+encodeURIComponent(constants.url+'/ycs/redeem');return;}
function buildFacebookLogin(redeemCode){redeemservice.getFaceBookToken(redeemCode).then(function(response){var r=JSON.parse(response.data);if(r.access_token){redeemservice.getFaceBookEmail(r.access_token).then(function(res){var rr=JSON.parse(res.data);if(rr.email){redeemservice.setRedeemMail(rr.email);}
signinservice.signInFacebook(r.access_token,false).then(function(response){handleSignUpResponse(response,form,'fb');},function(error){vm.facebookLoading=false;form.exceptions.signuperror=true;})['finally'](function(){vm.facebookLoading=false;});});}else{vm.facebookLoading=false;form.exceptions.signuperror=true;}});}
function handleSignUpResponse(response,form,from,email){if(response.data.status==="OK"||response.data.status==="AccountCreated"){authService.loginConfirmed();var userId=response.data.userInfo.userId;userservice.queryUser(userId).then(function(userResponse){signinservice.refreshCurrentUser(userResponse.data);if(response.data.userInfo.email!==null){redeemservice.setRedeemMail(response.data.userInfo.email);}
redeemservice.setRedeemUid(userId);redeemservice.setRedeemName(signinservice.currentUser.displayName);$state.go('redeem-next',{app:vm.app},{location:'replace'});return;});}else if(response.data.status==="WaitValidate"){$state.go('redeem',{app:vm.app},{location:'replace'});return;}else{form.exceptions.signuperror=true;}}
function resetForm(form){form.exceptions={};form.$setPristine();form.$setUntouched();}
function getMail(){return redeemservice.getRedeemMail();}
function getCoupon(){return redeemservice.getRedeemCoupon();}
function getExpire(){var expire=moment().add(3,'M').format('MM/DD/YYYY');return expire;}
function getUserId(){return redeemservice.getRedeemUid();}
function getDisplayName(){return redeemservice.getRedeemName();}
function launchApp(){gaservice.eventTrack('Redeem','Click','GoShopping_'+requestRegion().split('_')[1]);var appUrl=getAppUrl();var fallbackUrl=getFallbackUrl(appUrl);if(constants.isMobile&&deviceservice.isYCS()){applinkservice.launchApp(appUrl,fallbackUrl);}else{$window.location.href=constants.ycsUrl;}}
function launchAppByScheme(){if(constants.isMobile){if(deviceservice.isYMK()){$window.location.href=constants.universalLinkPrefix+'/ap/ymk/launcher?app=ymk&appName=ymk';}
if(deviceservice.isYCS()){launchApp();}}else{$window.location.href=applinkservice.getProductUrl(vm.app);}}
function getFallbackUrl(appUrl){return applinkservice.getFallbackUrl(appUrl,'ycs','redeem_goshopping');}
function getAppUrl(){return applinkservice.getAppUrl($window.location.pathname,'ycs');}
function requestRegion(){return $('#__request-region__').attr('region');}
function resendVoucher(){gaservice.eventTrack('Redeem','Click','Resend_'+requestRegion().split('_')[1]);if(redeemservice.getRedeemMail()!==null&&redeemservice.getRedeemName()!==null){vm.resendMailLoading=true;var url=constants.universalLinkPrefix+'/ap/ycs/launcher?SourceType=Redeem_Mail&SourceId=Redeem_Mail&appName=ycs&bts=1';redeemservice.sendRedeemMail(redeemservice.getRedeemUid(),redeemservice.getRedeemMail(),redeemservice.getRedeemName(),url,vm.requestRegion()).then(function(res){vm.resendMailLoading=false;});}}
function shopNow(){$window.open('https://www.youcamshop.com','_blank');}}})();(function(){'use strict';angular.module('app.redeem').factory('redeemservice',redeemservice);redeemservice.$inject=['$http','$httpParamSerializer','cacheservice','store','constants'];function redeemservice($http,$httpParamSerializer,cacheservice,store,constants){var service={setApp:setApp,getApp:getApp,setRedeemUid:setRedeemUid,getRedeemUid:getRedeemUid,setRedeemMail:setRedeemMail,getRedeemMail:getRedeemMail,setRedeemName:setRedeemName,getRedeemName:getRedeemName,setRedeemNext:setRedeemNext,getRedeemNext:getRedeemNext,setRedeemRegion:setRedeemRegion,getRedeemRegion:getRedeemRegion,setRedeemCoupon:setRedeemCoupon,getRedeemCoupon:getRedeemCoupon,setIsSignInFlow:setIsSignInFlow,getIsSignInFlow:getIsSignInFlow,valid2Redeem:valid2Redeem,getIpCountry:getIpCountry,doRedeem:doRedeem,doSubscribe:doSubscribe,sendRedeemMail:sendRedeemMail,getFaceBookToken:getFaceBookToken,getFaceBookEmail:getFaceBookEmail,logout:logout};return service;function valid2Redeem(param){var app=param.app||null;var code=param.code||null;var region=param.bcCountry||null;return $http.get('/api/redeem/redeem.action?valid2Redeem&region='+region+'&app='+app+'&code='+code,{});}
function getIpCountry(){return $http.get('/api/redeem/redeem.action?getIpCountry',{});}
function doRedeem(userId,email,region){var data={userId:userId,email:email,region:region};return $http({method:'POST',url:'/api/redeem/redeem.action?doRedeem',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function doSubscribe(email){var data={email:email};return $http({method:'POST',url:'/api/redeem/redeem.action?doSubscribe',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function sendRedeemMail(userId,email,displayName,url,region){var data={userId:userId,email:email,displayName:displayName,url:url,region:region};return $http({method:'POST',url:'/api/redeem/send-redeem-mail.action',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function getFaceBookToken(verificationCode){var data={verificationCode:verificationCode,redirectUri:constants.url+'/ycs/redeem'};return $http({method:'POST',url:'/api/redeem/redeem.action?getFacebookAccessToken',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function getFaceBookEmail(accessToken){var data={accessToken:accessToken};return $http({method:'POST',url:'/api/redeem/redeem.action?getFacebookEmail',headers:{'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'},data:$httpParamSerializer(data)});}
function setApp(app){store.set('ycs_redeem_app',app);}
function getApp(){var app=store.get('ycs_redeem_app');if(app==null){return'ycs';}
return app;}
function setIsSignInFlow(boo){store.set('ycs_redeem_signinflow',boo);}
function getIsSignInFlow(){var isSignInFlow=store.get('ycs_redeem_signinflow');if(isSignInFlow==null){return true;}
return isSignInFlow;}
function setRedeemUid(uid){store.set('ycs_redeem_uid',uid);}
function getRedeemUid(){var uid=store.get('ycs_redeem_uid');if(uid==null){return null;}
return uid;}
function setRedeemMail(email){store.set('ycs_redeem_email',email);}
function getRedeemMail(){var email=store.get('ycs_redeem_email');if(email==null){return null;}
return email;}
function setRedeemName(displayName){store.set('ycs_redeem_name',displayName);}
function getRedeemName(){var displayName=store.get('ycs_redeem_name');if(displayName==null){return null;}
return displayName;}
function setRedeemNext(){store.set('ycs_redeem_next',true);}
function getRedeemNext(){var goNext=store.get('ycs_redeem_next');if(goNext==null){return null;}
return goNext;}
function setRedeemRegion(region){store.set('ycs_redeem_region',region);}
function getRedeemRegion(){var region=store.get('ycs_redeem_region');if(region==null){return null;}
return region;}
function setRedeemCoupon(coupon){store.set('ycs_redeem_coupon',coupon);}
function getRedeemCoupon(){var coupon=store.get('ycs_redeem_coupon');if(coupon==null){return null;}
return coupon;}
function logout(){store.remove('ycs_redeem_uid');store.remove('ycs_redeem_name');store.remove('ycs_redeem_email');store.remove('ycs_redeem_next');}}})();(function(){'use strict';angular.module('app.redeem').run(runBlock);runBlock.$inject=['$state','$rootScope','signinservice','redeemservice'];function runBlock($state,$rootScope,signinservice,redeemservice){}})();(function(){'use strict';angular.module('app.deeplink',['angular-storage']);})();(function(){'use strict';angular.module('app.deeplink').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('deeplink-init',{url:'^/deeplink/:socialnetwork/:page?app&type',views:{'':{templateUrl:'/app/deeplink/controllers/deeplink.jsp',controller:'DeepLinkController',controllerAs:'vm'}},resolve:{socialnetwork:['$stateParams',function($stateParams){return $stateParams.socialnetwork;}],page:['$stateParams',function($stateParams){return $stateParams.page;}],type:['$stateParams',function($stateParams){return $stateParams.type;}],app:['$stateParams',function($stateParams){return $stateParams.app;}]},});}})();(function(){'use strict';angular.module('app.deeplink').controller('DeepLinkController',DeepLinkController);DeepLinkController.$inject=['$scope','$rootScope','$controller','$window','$state','constants','$stateParams','$timeout','$location','deviceservice','deeplinkservice','socialnetwork','page','type','app'];function DeepLinkController($scope,$rootScope,$controller,$window,$state,constants,$stateParams,$timeout,$location,deviceservice,deeplinkservice,socialnetwork,page,type,app){var vm=this;vm.app=null;activate();function activate(){if(!socialnetwork){$window.location.href='/';return;}
if(!page){$window.location.href='/';return;}
if(!deeplinkservice.isSupported(socialnetwork)){$window.location.href='/';return;}
var appName=$location.search().app||$location.search().appName;vm.app=appName;var domain=deeplinkservice.getDoamin(socialnetwork,type);var actionDomain=deeplinkservice.getActionDoamin(socialnetwork,page,type);if(deviceservice.isAndroid()&&deviceservice.isInstagram()){$timeout(function(){$window.location.href=domain+'/'+$stateParams.page;},500);$window.location.href=actionDomain;return;}
if(deviceservice.isIOS()&&socialnetwork==='yt'){$timeout(function(){$window.location.href=domain+(type==='watch'?'':'/')+$stateParams.page;},500);$window.location.href=actionDomain+$stateParams.page;return;}
$timeout(function(){$window.location.href=domain+'/'+$stateParams.page;},500);$window.location.href=actionDomain+$stateParams.page;return;}}})();(function(){'use strict';angular.module('app.deeplink').factory('deeplinkservice',deeplinkservice);deeplinkservice.$inject=['$http','$httpParamSerializer','cacheservice','store','constants','deviceservice'];function deeplinkservice($http,$httpParamSerializer,cacheservice,store,constants,deviceservice){var service={isSupported:isSupported,getDoamin:getDoamin,getActionDoamin:getActionDoamin};return service;function isSupported(socialnetwork){if(socialnetwork=='fb'){return true;}
if(socialnetwork=='ig'){return true;}
if(socialnetwork=='tt'){return true;}
if(socialnetwork=='yt'){return true;}
return false;}
function getDoamin(socialnetwork,type){if(socialnetwork=='fb'){if(constants.isMobile){return constants.facebookMobileUrl;}
return constants.facebookUrl;}
if(socialnetwork=='ig'){if(constants.isMobile){return constants.instagramMobileUrl;}
return constants.instagramUrl;}
if(socialnetwork=='tt'){if(constants.isMobile){return constants.twitterMobileUrl;}
return constants.twitterUrl;}
if(socialnetwork=='yt'){if(constants.isMobile){return type==='watch'?constants.youtubeWatchMobileUrl:constants.youtubeMobileUrl;}
return type==='watch'?constants.youtubeWatchUrl:constants.youtubeUrl;}}
function getActionDoamin(socialnetwork,page,type){if(socialnetwork=='fb'){if(deviceservice.isIOS()){return constants.facebookIosDeepLink;}
return constants.facebookAndroidDeepLink;}
if(socialnetwork=='ig'){if(deviceservice.isIOS()){return constants.instagramIosDeepLink;}
return getAndroidIntentUri(socialnetwork,page);}
if(socialnetwork=='tt'){if(deviceservice.isIOS()){return constants.twitterIosDeepLink;}
return getAndroidIntentUri(socialnetwork,page);}
if(socialnetwork=='yt'){if(deviceservice.isIOS()){return type==='watch'?constants.youtubeWatchIosDeepLink:constants.youtubeIosDeepLink;}
return getAndroidIntentUri(socialnetwork,page,type);}}
function getAndroidIntentUri(socialnetwork,page,type){if(socialnetwork=='ig'){return'intent://instagram.com/_u/'+page+'/#Intent;package=com.instagram.android;scheme=https;end';}
if(socialnetwork=='tt'){return'intent://twitter.com/'+page+'#Intent;package=com.twitter.android;scheme=https;end';}
if(socialnetwork=='yt'){if(type==='watch'){return'intent://www.youtube.com/watch?v='+page+'#Intent;package=com.google.android.youtube;scheme=https;end';}
return'intent://www.youtube.com/channel/'+page+'#Intent;package=com.google.android.youtube;scheme=https;end';}}}})();(function(){'use strict';angular.module('app.deeplink').run(runBlock);runBlock.$inject=['$state','$rootScope'];function runBlock($state,$rootScope){}})();(function(){'use strict';angular.module('app.deeplink-post',['angular-storage']);})();(function(){'use strict';angular.module('app.deeplink-post').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('deeplink-post-init',{url:'^/deeplink-post/:socialnetwork/:post?app',views:{'':{templateUrl:'/app/deeplink-post/controllers/deeplink-post.jsp',controller:'DeepLinkPostController',controllerAs:'vm'}},resolve:{socialnetwork:['$stateParams',function($stateParams){return $stateParams.socialnetwork;}],post:['$stateParams',function($stateParams){return $stateParams.post;}],app:['$stateParams',function($stateParams){return $stateParams.app;}]},});}})();(function(){'use strict';angular.module('app.deeplink-post').controller('DeepLinkPostController',DeepLinkPostController);DeepLinkPostController.$inject=['$scope','$rootScope','$controller','$window','$state','constants','$stateParams','$timeout','$location','deviceservice','deeplinkpostservice','socialnetwork','post','app'];function DeepLinkPostController($scope,$rootScope,$controller,$window,$state,constants,$stateParams,$timeout,$location,deviceservice,deeplinkpostservice,socialnetwork,post,app){var vm=this;vm.app=null;activate();function activate(){if(!socialnetwork){$window.location.href='/';return;}
if(!post){$window.location.href='/';return;}
if(!deeplinkpostservice.isPostSupported(socialnetwork)){$window.location.href='/';return;}
var appName=$location.search().app||$location.search().appName;vm.app=appName;var domain=deeplinkpostservice.getPostDoamin(socialnetwork);var actionDomain=deeplinkpostservice.getPostActionDoamin(socialnetwork,post);if(deviceservice.isAndroid()){$timeout(function(){$window.location.href=domain+'/'+$stateParams.post;},500);$window.location.href=actionDomain;return;}
$window.location.href=domain+'/'+$stateParams.post;return;}}})();(function(){'use strict';angular.module('app.deeplink-post').factory('deeplinkpostservice',deeplinkpostservice);deeplinkpostservice.$inject=['$http','$httpParamSerializer','cacheservice','store','constants','deviceservice'];function deeplinkpostservice($http,$httpParamSerializer,cacheservice,store,constants,deviceservice){var service={isPostSupported:isPostSupported,getPostDoamin:getPostDoamin,getPostActionDoamin:getPostActionDoamin};return service;function isPostSupported(socialnetwork){if(socialnetwork=='ig'){return true;}
return false;}
function getPostDoamin(socialnetwork){if(socialnetwork=='ig'){if(constants.isMobile){return constants.instagramMobilePostUrl;}
return constants.instagramPostUrl;}}
function getPostActionDoamin(socialnetwork,post){if(socialnetwork=='ig'){if(deviceservice.isIOS()){return constants.instagramMobilePostUrl;}
return getAndroidIntentUriForPost(socialnetwork,post);}}
function getAndroidIntentUriForPost(socialnetwork,post){if(socialnetwork=='ig'){return'intent://www.instagram.com/p/'+post+'/#Intent;package=com.instagram.android;scheme=https;end';}}}})();(function(){'use strict';angular.module('app.deeplink-post').run(runBlock);runBlock.$inject=['$state','$rootScope'];function runBlock($state,$rootScope){}})();(function(){'use strict';angular.module('app.appupgrade',['angular-storage']);})();(function(){'use strict';angular.module('app.appupgrade').config(config);config.$inject=['$stateProvider'];function config($stateProvider){$stateProvider.state('appupgrade-init',{url:'^/appupgrade/:appName',views:{'':{templateUrl:'/app/appupgrade/controllers/appupgrade.jsp',controller:'AppUpgradeController',controllerAs:'vm'}},resolve:{appName:['$stateParams',function($stateParams){return $stateParams.appName;}]},});}})();(function(){'use strict';angular.module('app.appupgrade').controller('AppUpgradeController',AppUpgradeController);AppUpgradeController.$inject=['$scope','$rootScope','$controller','$window','$state','constants','$stateParams','$timeout','deviceservice','appupgradeservice','appName'];function AppUpgradeController($scope,$rootScope,$controller,$window,$state,constants,$stateParams,$timeout,deviceservice,appupgradeservice,appName){var vm=this;activate();function activate(){if(!appName){$window.location.href='/';return;}
if(!appupgradeservice.isSupported(appName)){$window.location.href='/';return;}
if(!constants.isMobile){$window.location.href=appupgradeservice.getFallbackUrl(appName);return;}
if(deviceservice.isIOS()){$window.location.href='/';return;}
var appUrl=appupgradeservice.getAppUrl(appName);var fallbackUrl=appupgradeservice.getFallbackUrl(appName);if(deviceservice.isChrome()){$window.location.href=convertToAndroidIntentUri(appName,fallbackUrl);return;}
launchAppViaIframe(appUrl,fallbackUrl,1500);}
function convertToAndroidIntentUri(appName,fallbackUrl){var upgradeId=appupgradeservice.getUpgradeId(appName);return"intent://details?id="+upgradeId+"#Intent;scheme=market;package=com.android.vending;S.browser_fallback_url="
+encodeURIComponent(fallbackUrl)+";end;";}
function redirectToStore(fallbackUrl,timeout){$timeout(function(){$window.location.href=fallbackUrl;},timeout);}
function launchAppViaIframe(appUrl,fallbackUrl,timeout){var timer=$timeout(function(){$window.location.href=fallbackUrl;},timeout);var hidden='';var visibilityChange='';if(typeof $window.document.hidden!=="undefined"){hidden="hidden";visibilityChange="visibilitychange";}else if(typeof $window.document.mozHidden!=="undefined"){hidden="mozHidden";visibilityChange="mozvisibilitychange";}else if(typeof $window.document.webkitHidden!=="undefined"){hidden="webkitHidden";visibilityChange="webkitvisibilitychange";}
var handleVisibilityChange=function(){$timeout.cancel(timer);}
if(typeof $window.document.addEventListener==="undefined"||typeof $window.document[hidden]==="undefined"){supportVisiblityApi=false;}else{supportVisiblityApi=true;$window.document.addEventListener(visibilityChange,handleVisibilityChange,false);}
var iframe=document.createElement("iframe");iframe.onload=function(){$timeout.cancel(timer);iframe.parentNode.removeChild(iframe);$window.location.href=appUrl;};iframe.src=appUrl;iframe.setAttribute("style","display:none;");document.body.appendChild(iframe);}}})();(function(){'use strict';angular.module('app.appupgrade').factory('appupgradeservice',appupgradeservice);appupgradeservice.$inject=['$http','$httpParamSerializer','cacheservice','store','constants','deviceservice','applinkservice'];function appupgradeservice($http,$httpParamSerializer,cacheservice,store,constants,deviceservice,applinkservice){var service={isSupported:isSupported,getAppUrl:getAppUrl,getFallbackUrl:getFallbackUrl,getUpgradeId:getUpgradeId};return service;function isSupported(appName){if(appName=='ymk'){return true;}
if(appName=='ycp'){return true;}
if(appName=='ycn'){return true;}
if(appName=='ycf'){return true;}
if(appName=='ycs'){return true;}
if(appName=='ycv'){return true;}
if(appName=='ymk4b'){return true;}
if(appName=='amb'){return true;}
return false;}
function getAppUrl(appName){var market=applinkservice.getMarket(appName);return'market://details?id='+market.androidappid;}
function getFallbackUrl(appName){if(deviceservice.isIOS()){return applinkservice.getStoreLink('appupgrade','ios',appName,'bc_web');}
return applinkservice.getStoreLink('appupgrade','android',appName,'bc_web');}
function getUpgradeId(appName){var market=applinkservice.getMarket(appName);return market.androidappid;}}})();(function(){'use strict';angular.module('app.appupgrade').run(runBlock);runBlock.$inject=['$state','$rootScope'];function runBlock($state,$rootScope){}})();(function(){'use strict';angular.module('app.history',['angular-storage']);})();(function(){'use strict';angular.module('app.history').factory('historyservice',historyservice);historyservice.$inject=['$rootScope','$state','store'];function historyservice($rootScope,$state,store){var service={history:history,back:back};return service;function history(){$rootScope.$on('$stateChangeStart',function(event,toState,toParams,fromState,fromParams){store.set('history_to',toState);store.set('history_param',toParams);});}
function back(){var toState=store.get('history_to');var toParams=store.get('history_param');if(toState&&toState.name){$state.go(toState.name,toParams,{notify:false,reload:true});}else{$state.go('home');}}}})();