var requirejs,require,define;(function(global){var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version='2.1.11',commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,ap=Array.prototype,apsp=ap.splice,isBrowser=!!(typeof window!=='undefined'&&typeof navigator!=='undefined'&&window.document),isWebWorker=!isBrowser&&typeof importScripts!=='undefined',readyRegExp=isBrowser&&navigator.platform==='PLAYSTATION 3'?/^complete$/:/^(complete|loaded)$/,defContextName='_',isOpera=typeof opera!=='undefined'&&opera.toString()==='[object Opera]',contexts={},cfg={},globalDefQueue=[],useInteractive=false;function isFunction(it){return ostring.call(it)==='[object Function]';}
function isArray(it){return ostring.call(it)==='[object Array]';}
function each(ary,func){if(ary){var i;for(i=0;i<ary.length;i+=1){if(ary[i]&&func(ary[i],i,ary)){break;}}}}
function eachReverse(ary,func){if(ary){var i;for(i=ary.length-1;i>-1;i-=1){if(ary[i]&&func(ary[i],i,ary)){break;}}}}
function hasProp(obj,prop){return hasOwn.call(obj,prop);}
function getOwn(obj,prop){return hasProp(obj,prop)&&obj[prop];}
function eachProp(obj,func){var prop;for(prop in obj){if(hasProp(obj,prop)){if(func(obj[prop],prop)){break;}}}}
function mixin(target,source,force,deepStringMixin){if(source){eachProp(source,function(value,prop){if(force||!hasProp(target,prop)){if(deepStringMixin&&typeof value==='object'&&value&&!isArray(value)&&!isFunction(value)&&!(value instanceof RegExp)){if(!target[prop]){target[prop]={};}
mixin(target[prop],value,force,deepStringMixin);}else{target[prop]=value;}}});}
return target;}
function bind(obj,fn){return function(){return fn.apply(obj,arguments);};}
function scripts(){return document.getElementsByTagName('script');}
function defaultOnError(err){throw err;}
function getGlobal(value){if(!value){return value;}
var g=global;each(value.split('.'),function(part){g=g[part];});return g;}
function makeError(id,msg,err,requireModules){var e=new Error(msg+'\nhttp://requirejs.org/docs/errors.html#'+id);e.requireType=id;e.requireModules=requireModules;if(err){e.originalError=err;}
return e;}
if(typeof define!=='undefined'){return;}
if(typeof requirejs!=='undefined'){if(isFunction(requirejs)){return;}
cfg=requirejs;requirejs=undefined;}
if(typeof require!=='undefined'&&!isFunction(require)){cfg=require;require=undefined;}
function newContext(contextName){var inCheckLoaded,Module,context,handlers,checkLoadedTimeoutId,config={waitSeconds:7,baseUrl:'./',paths:{},bundles:{},pkgs:{},shim:{},config:{}},registry={},enabledRegistry={},undefEvents={},defQueue=[],defined={},urlFetched={},bundlesMap={},requireCounter=1,unnormalizedCounter=1;function trimDots(ary){var i,part,length=ary.length;for(i=0;i<length;i++){part=ary[i];if(part==='.'){ary.splice(i,1);i-=1;}else if(part==='..'){if(i===1&&(ary[2]==='..'||ary[0]==='..')){break;}else if(i>0){ary.splice(i-1,2);i-=2;}}}}
function normalize(name,baseName,applyMap){var pkgMain,mapValue,nameParts,i,j,nameSegment,lastIndex,foundMap,foundI,foundStarMap,starI,baseParts=baseName&&baseName.split('/'),normalizedBaseParts=baseParts,map=config.map,starMap=map&&map['*'];if(name&&name.charAt(0)==='.'){if(baseName){normalizedBaseParts=baseParts.slice(0,baseParts.length-1);name=name.split('/');lastIndex=name.length-1;if(config.nodeIdCompat&&jsSuffixRegExp.test(name[lastIndex])){name[lastIndex]=name[lastIndex].replace(jsSuffixRegExp,'');}
name=normalizedBaseParts.concat(name);trimDots(name);name=name.join('/');}else if(name.indexOf('./')===0){name=name.substring(2);}}
if(applyMap&&map&&(baseParts||starMap)){nameParts=name.split('/');outerLoop:for(i=nameParts.length;i>0;i-=1){nameSegment=nameParts.slice(0,i).join('/');if(baseParts){for(j=baseParts.length;j>0;j-=1){mapValue=getOwn(map,baseParts.slice(0,j).join('/'));if(mapValue){mapValue=getOwn(mapValue,nameSegment);if(mapValue){foundMap=mapValue;foundI=i;break outerLoop;}}}}
if(!foundStarMap&&starMap&&getOwn(starMap,nameSegment)){foundStarMap=getOwn(starMap,nameSegment);starI=i;}}
if(!foundMap&&foundStarMap){foundMap=foundStarMap;foundI=starI;}
if(foundMap){nameParts.splice(0,foundI,foundMap);name=nameParts.join('/');}}
pkgMain=getOwn(config.pkgs,name);return pkgMain?pkgMain:name;}
function removeScript(name){if(isBrowser){each(scripts(),function(scriptNode){if(scriptNode.getAttribute('data-requiremodule')===name&&scriptNode.getAttribute('data-requirecontext')===context.contextName){scriptNode.parentNode.removeChild(scriptNode);return true;}});}}
function hasPathFallback(id){var pathConfig=getOwn(config.paths,id);if(pathConfig&&isArray(pathConfig)&&pathConfig.length>1){pathConfig.shift();context.require.undef(id);context.require([id]);return true;}}
function splitPrefix(name){var prefix,index=name?name.indexOf('!'):-1;if(index>-1){prefix=name.substring(0,index);name=name.substring(index+1,name.length);}
return[prefix,name];}
function makeModuleMap(name,parentModuleMap,isNormalized,applyMap){var url,pluginModule,suffix,nameParts,prefix=null,parentName=parentModuleMap?parentModuleMap.name:null,originalName=name,isDefine=true,normalizedName='';if(!name){isDefine=false;name='_@r'+(requireCounter+=1);}
nameParts=splitPrefix(name);prefix=nameParts[0];name=nameParts[1];if(prefix){prefix=normalize(prefix,parentName,applyMap);pluginModule=getOwn(defined,prefix);}
if(name){if(prefix){if(pluginModule&&pluginModule.normalize){normalizedName=pluginModule.normalize(name,function(name){return normalize(name,parentName,applyMap);});}else{normalizedName=normalize(name,parentName,applyMap);}}else{normalizedName=normalize(name,parentName,applyMap);nameParts=splitPrefix(normalizedName);prefix=nameParts[0];normalizedName=nameParts[1];isNormalized=true;url=context.nameToUrl(normalizedName);}}
suffix=prefix&&!pluginModule&&!isNormalized?'_unnormalized'+(unnormalizedCounter+=1):'';return{prefix:prefix,name:normalizedName,parentMap:parentModuleMap,unnormalized:!!suffix,url:url,originalName:originalName,isDefine:isDefine,id:(prefix?prefix+'!'+normalizedName:normalizedName)+suffix};}
function getModule(depMap){var id=depMap.id,mod=getOwn(registry,id);if(!mod){mod=registry[id]=new context.Module(depMap);}
return mod;}
function on(depMap,name,fn){var id=depMap.id,mod=getOwn(registry,id);if(hasProp(defined,id)&&(!mod||mod.defineEmitComplete)){if(name==='defined'){fn(defined[id]);}}else{mod=getModule(depMap);if(mod.error&&name==='error'){fn(mod.error);}else{mod.on(name,fn);}}}
function onError(err,errback){var ids=err.requireModules,notified=false;if(errback){errback(err);}else{each(ids,function(id){var mod=getOwn(registry,id);if(mod){mod.error=err;if(mod.events.error){notified=true;mod.emit('error',err);}}});if(!notified){req.onError(err);}}}
function takeGlobalQueue(){if(globalDefQueue.length){apsp.apply(defQueue,[defQueue.length,0].concat(globalDefQueue));globalDefQueue=[];}}
handlers={'require':function(mod){if(mod.require){return mod.require;}else{return(mod.require=context.makeRequire(mod.map));}},'exports':function(mod){mod.usingExports=true;if(mod.map.isDefine){if(mod.exports){return(defined[mod.map.id]=mod.exports);}else{return(mod.exports=defined[mod.map.id]={});}}},'module':function(mod){if(mod.module){return mod.module;}else{return(mod.module={id:mod.map.id,uri:mod.map.url,config:function(){return getOwn(config.config,mod.map.id)||{};},exports:mod.exports||(mod.exports={})});}}};function cleanRegistry(id){delete registry[id];delete enabledRegistry[id];}
function breakCycle(mod,traced,processed){var id=mod.map.id;if(mod.error){mod.emit('error',mod.error);}else{traced[id]=true;each(mod.depMaps,function(depMap,i){var depId=depMap.id,dep=getOwn(registry,depId);if(dep&&!mod.depMatched[i]&&!processed[depId]){if(getOwn(traced,depId)){mod.defineDep(i,defined[depId]);mod.check();}else{breakCycle(dep,traced,processed);}}});processed[id]=true;}}
function checkLoaded(){var err,usingPathFallback,waitInterval=config.waitSeconds*1000,expired=waitInterval&&(context.startTime+waitInterval)<new Date().getTime(),noLoads=[],reqCalls=[],stillLoading=false,needCycleCheck=true;if(inCheckLoaded){return;}
inCheckLoaded=true;eachProp(enabledRegistry,function(mod){var map=mod.map,modId=map.id;if(!mod.enabled){return;}
if(!map.isDefine){reqCalls.push(mod);}
if(!mod.error){if(!mod.inited&&expired){if(hasPathFallback(modId)){usingPathFallback=true;stillLoading=true;}else{noLoads.push(modId);removeScript(modId);}}else if(!mod.inited&&mod.fetched&&map.isDefine){stillLoading=true;if(!map.prefix){return(needCycleCheck=false);}}}});if(expired&&noLoads.length){err=makeError('timeout','Load timeout for modules: '+noLoads,null,noLoads);err.contextName=context.contextName;return onError(err);}
if(needCycleCheck){each(reqCalls,function(mod){breakCycle(mod,{},{});});}
if((!expired||usingPathFallback)&&stillLoading){if((isBrowser||isWebWorker)&&!checkLoadedTimeoutId){checkLoadedTimeoutId=setTimeout(function(){checkLoadedTimeoutId=0;checkLoaded();},50);}}
inCheckLoaded=false;}
Module=function(map){this.events=getOwn(undefEvents,map.id)||{};this.map=map;this.shim=getOwn(config.shim,map.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0;};Module.prototype={init:function(depMaps,factory,errback,options){options=options||{};if(this.inited){return;}
this.factory=factory;if(errback){this.on('error',errback);}else if(this.events.error){errback=bind(this,function(err){this.emit('error',err);});}
this.depMaps=depMaps&&depMaps.slice(0);this.errback=errback;this.inited=true;this.ignore=options.ignore;if(options.enabled||this.enabled){this.enable();}else{this.check();}},defineDep:function(i,depExports){if(!this.depMatched[i]){this.depMatched[i]=true;this.depCount-=1;this.depExports[i]=depExports;}},fetch:function(){if(this.fetched){return;}
this.fetched=true;context.startTime=(new Date()).getTime();var map=this.map;if(this.shim){context.makeRequire(this.map,{enableBuildCallback:true})(this.shim.deps||[],bind(this,function(){return map.prefix?this.callPlugin():this.load();}));}else{return map.prefix?this.callPlugin():this.load();}},load:function(){var url=this.map.url;if(!urlFetched[url]){urlFetched[url]=true;context.load(this.map.id,url);}},check:function(){if(!this.enabled||this.enabling){return;}
var err,cjsModule,id=this.map.id,depExports=this.depExports,exports=this.exports,factory=this.factory;if(!this.inited){this.fetch();}else if(this.error){this.emit('error',this.error);}else if(!this.defining){this.defining=true;if(this.depCount<1&&!this.defined){if(isFunction(factory)){if((this.events.error&&this.map.isDefine)||req.onError!==defaultOnError){try{exports=context.execCb(id,factory,depExports,exports);}catch(e){err=e;}}else{exports=context.execCb(id,factory,depExports,exports);}
if(this.map.isDefine&&exports===undefined){cjsModule=this.module;if(cjsModule){exports=cjsModule.exports;}else if(this.usingExports){exports=this.exports;}}
if(err){err.requireMap=this.map;err.requireModules=this.map.isDefine?[this.map.id]:null;err.requireType=this.map.isDefine?'define':'require';return onError((this.error=err));}}else{exports=factory;}
this.exports=exports;if(this.map.isDefine&&!this.ignore){defined[id]=exports;if(req.onResourceLoad){req.onResourceLoad(context,this.map,this.depMaps);}}
cleanRegistry(id);this.defined=true;}
this.defining=false;if(this.defined&&!this.defineEmitted){this.defineEmitted=true;this.emit('defined',this.exports);this.defineEmitComplete=true;}}},callPlugin:function(){var map=this.map,id=map.id,pluginMap=makeModuleMap(map.prefix);this.depMaps.push(pluginMap);on(pluginMap,'defined',bind(this,function(plugin){var load,normalizedMap,normalizedMod,bundleId=getOwn(bundlesMap,this.map.id),name=this.map.name,parentName=this.map.parentMap?this.map.parentMap.name:null,localRequire=context.makeRequire(map.parentMap,{enableBuildCallback:true});if(this.map.unnormalized){if(plugin.normalize){name=plugin.normalize(name,function(name){return normalize(name,parentName,true);})||'';}
normalizedMap=makeModuleMap(map.prefix+'!'+name,this.map.parentMap);on(normalizedMap,'defined',bind(this,function(value){this.init([],function(){return value;},null,{enabled:true,ignore:true});}));normalizedMod=getOwn(registry,normalizedMap.id);if(normalizedMod){this.depMaps.push(normalizedMap);if(this.events.error){normalizedMod.on('error',bind(this,function(err){this.emit('error',err);}));}
normalizedMod.enable();}
return;}
if(bundleId){this.map.url=context.nameToUrl(bundleId);this.load();return;}
load=bind(this,function(value){this.init([],function(){return value;},null,{enabled:true});});load.error=bind(this,function(err){this.inited=true;this.error=err;err.requireModules=[id];eachProp(registry,function(mod){if(mod.map.id.indexOf(id+'_unnormalized')===0){cleanRegistry(mod.map.id);}});onError(err);});load.fromText=bind(this,function(text,textAlt){var moduleName=map.name,moduleMap=makeModuleMap(moduleName),hasInteractive=useInteractive;if(textAlt){text=textAlt;}
if(hasInteractive){useInteractive=false;}
getModule(moduleMap);if(hasProp(config.config,id)){config.config[moduleName]=config.config[id];}
try{req.exec(text);}catch(e){return onError(makeError('fromtexteval','fromText eval for '+id+' failed: '+e,e,[id]));}
if(hasInteractive){useInteractive=true;}
this.depMaps.push(moduleMap);context.completeLoad(moduleName);localRequire([moduleName],load);});plugin.load(map.name,localRequire,load,config);}));context.enable(pluginMap,this);this.pluginMaps[pluginMap.id]=pluginMap;},enable:function(){enabledRegistry[this.map.id]=this;this.enabled=true;this.enabling=true;each(this.depMaps,bind(this,function(depMap,i){var id,mod,handler;if(typeof depMap==='string'){depMap=makeModuleMap(depMap,(this.map.isDefine?this.map:this.map.parentMap),false,!this.skipMap);this.depMaps[i]=depMap;handler=getOwn(handlers,depMap.id);if(handler){this.depExports[i]=handler(this);return;}
this.depCount+=1;on(depMap,'defined',bind(this,function(depExports){this.defineDep(i,depExports);this.check();}));if(this.errback){on(depMap,'error',bind(this,this.errback));}}
id=depMap.id;mod=registry[id];if(!hasProp(handlers,id)&&mod&&!mod.enabled){context.enable(depMap,this);}}));eachProp(this.pluginMaps,bind(this,function(pluginMap){var mod=getOwn(registry,pluginMap.id);if(mod&&!mod.enabled){context.enable(pluginMap,this);}}));this.enabling=false;this.check();},on:function(name,cb){var cbs=this.events[name];if(!cbs){cbs=this.events[name]=[];}
cbs.push(cb);},emit:function(name,evt){each(this.events[name],function(cb){cb(evt);});if(name==='error'){delete this.events[name];}}};function callGetModule(args){if(!hasProp(defined,args[0])){getModule(makeModuleMap(args[0],null,true)).init(args[1],args[2]);}}
function removeListener(node,func,name,ieName){if(node.detachEvent&&!isOpera){if(ieName){node.detachEvent(ieName,func);}}else{node.removeEventListener(name,func,false);}}
function getScriptData(evt){var node=evt.currentTarget||evt.srcElement;removeListener(node,context.onScriptLoad,'load','onreadystatechange');removeListener(node,context.onScriptError,'error');return{node:node,id:node&&node.getAttribute('data-requiremodule')};}
function intakeDefines(){var args;takeGlobalQueue();while(defQueue.length){args=defQueue.shift();if(args[0]===null){return onError(makeError('mismatch','Mismatched anonymous define() module: '+args[args.length-1]));}else{callGetModule(args);}}}
context={config:config,contextName:contextName,registry:registry,defined:defined,urlFetched:urlFetched,defQueue:defQueue,Module:Module,makeModuleMap:makeModuleMap,nextTick:req.nextTick,onError:onError,configure:function(cfg){if(cfg.baseUrl){if(cfg.baseUrl.charAt(cfg.baseUrl.length-1)!=='/'){cfg.baseUrl+='/';}}
var shim=config.shim,objs={paths:true,bundles:true,config:true,map:true};eachProp(cfg,function(value,prop){if(objs[prop]){if(!config[prop]){config[prop]={};}
mixin(config[prop],value,true,true);}else{config[prop]=value;}});if(cfg.bundles){eachProp(cfg.bundles,function(value,prop){each(value,function(v){if(v!==prop){bundlesMap[v]=prop;}});});}
if(cfg.shim){eachProp(cfg.shim,function(value,id){if(isArray(value)){value={deps:value};}
if((value.exports||value.init)&&!value.exportsFn){value.exportsFn=context.makeShimExports(value);}
shim[id]=value;});config.shim=shim;}
if(cfg.packages){each(cfg.packages,function(pkgObj){var location,name;pkgObj=typeof pkgObj==='string'?{name:pkgObj}:pkgObj;name=pkgObj.name;location=pkgObj.location;if(location){config.paths[name]=pkgObj.location;}
config.pkgs[name]=pkgObj.name+'/'+(pkgObj.main||'main').replace(currDirRegExp,'').replace(jsSuffixRegExp,'');});}
eachProp(registry,function(mod,id){if(!mod.inited&&!mod.map.unnormalized){mod.map=makeModuleMap(id);}});if(cfg.deps||cfg.callback){context.require(cfg.deps||[],cfg.callback);}},makeShimExports:function(value){function fn(){var ret;if(value.init){ret=value.init.apply(global,arguments);}
return ret||(value.exports&&getGlobal(value.exports));}
return fn;},makeRequire:function(relMap,options){options=options||{};function localRequire(deps,callback,errback){var id,map,requireMod;if(options.enableBuildCallback&&callback&&isFunction(callback)){callback.__requireJsBuild=true;}
if(typeof deps==='string'){if(isFunction(callback)){return onError(makeError('requireargs','Invalid require call'),errback);}
if(relMap&&hasProp(handlers,deps)){return handlers[deps](registry[relMap.id]);}
if(req.get){return req.get(context,deps,relMap,localRequire);}
map=makeModuleMap(deps,relMap,false,true);id=map.id;if(!hasProp(defined,id)){return onError(makeError('notloaded','Module name "'+
id+'" has not been loaded yet for context: '+
contextName+
(relMap?'':'. Use require([])')));}
return defined[id];}
intakeDefines();context.nextTick(function(){intakeDefines();requireMod=getModule(makeModuleMap(null,relMap));requireMod.skipMap=options.skipMap;requireMod.init(deps,callback,errback,{enabled:true});checkLoaded();});return localRequire;}
mixin(localRequire,{isBrowser:isBrowser,toUrl:function(moduleNamePlusExt){var ext,index=moduleNamePlusExt.lastIndexOf('.'),segment=moduleNamePlusExt.split('/')[0],isRelative=segment==='.'||segment==='..';if(index!==-1&&(!isRelative||index>1)){ext=moduleNamePlusExt.substring(index,moduleNamePlusExt.length);moduleNamePlusExt=moduleNamePlusExt.substring(0,index);}
return context.nameToUrl(normalize(moduleNamePlusExt,relMap&&relMap.id,true),ext,true);},defined:function(id){return hasProp(defined,makeModuleMap(id,relMap,false,true).id);},specified:function(id){id=makeModuleMap(id,relMap,false,true).id;return hasProp(defined,id)||hasProp(registry,id);}});if(!relMap){localRequire.undef=function(id){takeGlobalQueue();var map=makeModuleMap(id,relMap,true),mod=getOwn(registry,id);removeScript(id);delete defined[id];delete urlFetched[map.url];delete undefEvents[id];eachReverse(defQueue,function(args,i){if(args[0]===id){defQueue.splice(i,1);}});if(mod){if(mod.events.defined){undefEvents[id]=mod.events;}
cleanRegistry(id);}};}
return localRequire;},enable:function(depMap){var mod=getOwn(registry,depMap.id);if(mod){getModule(depMap).enable();}},completeLoad:function(moduleName){var found,args,mod,shim=getOwn(config.shim,moduleName)||{},shExports=shim.exports;takeGlobalQueue();while(defQueue.length){args=defQueue.shift();if(args[0]===null){args[0]=moduleName;if(found){break;}
found=true;}else if(args[0]===moduleName){found=true;}
callGetModule(args);}
mod=getOwn(registry,moduleName);if(!found&&!hasProp(defined,moduleName)&&mod&&!mod.inited){if(config.enforceDefine&&(!shExports||!getGlobal(shExports))){if(hasPathFallback(moduleName)){return;}else{return onError(makeError('nodefine','No define call for '+moduleName,null,[moduleName]));}}else{callGetModule([moduleName,(shim.deps||[]),shim.exportsFn]);}}
checkLoaded();},nameToUrl:function(moduleName,ext,skipExt){var paths,syms,i,parentModule,url,parentPath,bundleId,pkgMain=getOwn(config.pkgs,moduleName);if(pkgMain){moduleName=pkgMain;}
bundleId=getOwn(bundlesMap,moduleName);if(bundleId){return context.nameToUrl(bundleId,ext,skipExt);}
if(req.jsExtRegExp.test(moduleName)){url=moduleName+(ext||'');}else{paths=config.paths;syms=moduleName.split('/');for(i=syms.length;i>0;i-=1){parentModule=syms.slice(0,i).join('/');parentPath=getOwn(paths,parentModule);if(parentPath){if(isArray(parentPath)){parentPath=parentPath[0];}
syms.splice(0,i,parentPath);break;}}
url=syms.join('/');url+=(ext||(/^data\:|\?/.test(url)||skipExt?'':'.js'));url=(url.charAt(0)==='/'||url.match(/^[\w\+\.\-]+:/)?'':config.baseUrl)+url;}
return config.urlArgs?url+
((url.indexOf('?')===-1?'?':'&')+
config.urlArgs):url;},load:function(id,url){req.load(context,id,url);},execCb:function(name,callback,args,exports){return callback.apply(exports,args);},onScriptLoad:function(evt){if(evt.type==='load'||(readyRegExp.test((evt.currentTarget||evt.srcElement).readyState))){interactiveScript=null;var data=getScriptData(evt);context.completeLoad(data.id);}},onScriptError:function(evt){var data=getScriptData(evt);if(!hasPathFallback(data.id)){return onError(makeError('scripterror','Script error for: '+data.id,evt,[data.id]));}}};context.require=context.makeRequire();return context;}
req=requirejs=function(deps,callback,errback,optional){var context,config,contextName=defContextName;if(!isArray(deps)&&typeof deps!=='string'){config=deps;if(isArray(callback)){deps=callback;callback=errback;errback=optional;}else{deps=[];}}
if(config&&config.context){contextName=config.context;}
context=getOwn(contexts,contextName);if(!context){context=contexts[contextName]=req.s.newContext(contextName);}
if(config){context.configure(config);}
return context.require(deps,callback,errback);};req.config=function(config){return req(config);};req.nextTick=typeof setTimeout!=='undefined'?function(fn){setTimeout(fn,4);}:function(fn){fn();};if(!require){require=req;}
req.version=version;req.jsExtRegExp=/^\/|:|\?|\.js$/;req.isBrowser=isBrowser;s=req.s={contexts:contexts,newContext:newContext};req({});each(['toUrl','undef','defined','specified'],function(prop){req[prop]=function(){var ctx=contexts[defContextName];return ctx.require[prop].apply(ctx,arguments);};});if(isBrowser){head=s.head=document.getElementsByTagName('head')[0];baseElement=document.getElementsByTagName('base')[0];if(baseElement){head=s.head=baseElement.parentNode;}}
req.onError=defaultOnError;req.createNode=function(config,moduleName,url){var node=config.xhtml?document.createElementNS('http://www.w3.org/1999/xhtml','html:script'):document.createElement('script');node.type=config.scriptType||'text/javascript';node.charset='utf-8';node.async=true;return node;};req.load=function(context,moduleName,url){var config=(context&&context.config)||{},node;if(isBrowser){node=req.createNode(config,moduleName,url);node.setAttribute('data-requirecontext',context.contextName);node.setAttribute('data-requiremodule',moduleName);if(node.attachEvent&&!(node.attachEvent.toString&&node.attachEvent.toString().indexOf('[native code')<0)&&!isOpera){useInteractive=true;node.attachEvent('onreadystatechange',context.onScriptLoad);}else{node.addEventListener('load',context.onScriptLoad,false);node.addEventListener('error',context.onScriptError,false);}
node.src=url;currentlyAddingScript=node;if(baseElement){head.insertBefore(node,baseElement);}else{head.appendChild(node);}
currentlyAddingScript=null;return node;}else if(isWebWorker){try{importScripts(url);context.completeLoad(moduleName);}catch(e){context.onError(makeError('importscripts','importScripts failed for '+
moduleName+' at '+url,e,[moduleName]));}}};function getInteractiveScript(){if(interactiveScript&&interactiveScript.readyState==='interactive'){return interactiveScript;}
eachReverse(scripts(),function(script){if(script.readyState==='interactive'){return(interactiveScript=script);}});return interactiveScript;}
if(isBrowser&&!cfg.skipDataMain){eachReverse(scripts(),function(script){if(!head){head=script.parentNode;}
dataMain=script.getAttribute('data-main');if(dataMain){mainScript=dataMain;if(!cfg.baseUrl){src=mainScript.split('/');mainScript=src.pop();subPath=src.length?src.join('/')+'/':'./';cfg.baseUrl=subPath;}
mainScript=mainScript.replace(jsSuffixRegExp,'');if(req.jsExtRegExp.test(mainScript)){mainScript=dataMain;}
cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript];return true;}});}
define=function(name,deps,callback){var node,context;if(typeof name!=='string'){callback=deps;deps=name;name=null;}
if(!isArray(deps)){callback=deps;deps=null;}
if(!deps&&isFunction(callback)){deps=[];if(callback.length){callback.toString().replace(commentRegExp,'').replace(cjsRequireRegExp,function(match,dep){deps.push(dep);});deps=(callback.length===1?['require']:['require','exports','module']).concat(deps);}}
if(useInteractive){node=currentlyAddingScript||getInteractiveScript();if(node){if(!name){name=node.getAttribute('data-requiremodule');}
context=contexts[node.getAttribute('data-requirecontext')];}}
(context?context.defQueue:globalDefQueue).push([name,deps,callback]);};define.amd={jQuery:true};req.exec=function(text){return eval(text);};req(cfg);}(this));;try{if(!window.localStorage||!window.sessionStorage){throw new Error();}
localStorage.setItem('storage_test',1);localStorage.removeItem('storage_test');}catch(e){(function(){'use strict';var Storage=function(type){var data;function createCookie(name,value,days){var date,expires;if(days){date=new Date();date.setTime(date.getTime()+days*24*60*60*1000);expires='; expires='+date.toGMTString();}else{expires='';}
document.cookie=name+'='+value+expires+'; path=/';}
function readCookie(name){var nameEQ=name+'=',ca=document.cookie.split(';'),i=0,c;for(i=0;i<ca.length;i++){c=ca[i];while(c.charAt(0)===' '){c=c.substring(1,c.length);}
if(c.indexOf(nameEQ)===0){return c.substring(nameEQ.length,c.length);}}
return null;}
function getCookieName(){if(type!=='session'){return'localstorage';}
if(!window.name){window.name=new Date().getTime();}
return'sessionStorage'+window.name;}
function setData(dataObject){data=encodeURIComponent(JSON.stringify(dataObject));createCookie(getCookieName(),data,365);}
function clearData(){createCookie(getCookieName(),'',365);}
function getData(){var dataResponse=readCookie(getCookieName());return dataResponse?JSON.parse(decodeURIComponent(dataResponse)):{};}
data=getData();return{length:0,clear:function(){data={};this.length=0;clearData();},getItem:function(key){return data[key]===undefined?null:data[key];},key:function(i){var ctr=0,k;for(k in data){if(data.hasOwnProperty(k)){if(ctr.toString()===i.toString()){return k;}
ctr++;}}
return null;},removeItem:function(key){delete data[key];this.length--;setData(data);},setItem:function(key,value){data[key]=value.toString();this.length++;setData(data);}};};window.localStorage.prototype=window.localStorage=new Storage('local');window.sessionStorage.prototype=window.sessionStorage=new Storage('session');})();};(function(){'use strict';if(typeof window!=='object'){return;}
if('IntersectionObserver'in window&&'IntersectionObserverEntry'in window&&'intersectionRatio'in window.IntersectionObserverEntry.prototype){if(!('isIntersecting'in window.IntersectionObserverEntry.prototype)){Object.defineProperty(window.IntersectionObserverEntry.prototype,'isIntersecting',{get:function(){return this.intersectionRatio>0;}});}
return;}
var document=window.document;var registry=[];function IntersectionObserverEntry(entry){this.time=entry.time;this.target=entry.target;this.rootBounds=entry.rootBounds;this.boundingClientRect=entry.boundingClientRect;this.intersectionRect=entry.intersectionRect||getEmptyRect();this.isIntersecting=!!entry.intersectionRect;var targetRect=this.boundingClientRect;var targetArea=targetRect.width*targetRect.height;var intersectionRect=this.intersectionRect;var intersectionArea=intersectionRect.width*intersectionRect.height;if(targetArea){this.intersectionRatio=Number((intersectionArea / targetArea).toFixed(4));}else{this.intersectionRatio=this.isIntersecting?1:0;}}
function IntersectionObserver(callback,opt_options){var options=opt_options||{};if(typeof callback!='function'){throw new Error('callback must be a function');}
if(options.root&&options.root.nodeType!=1){throw new Error('root must be an Element');}
this._checkForIntersections=throttle(this._checkForIntersections.bind(this),this.THROTTLE_TIMEOUT);this._callback=callback;this._observationTargets=[];this._queuedEntries=[];this._rootMarginValues=this._parseRootMargin(options.rootMargin);this.thresholds=this._initThresholds(options.threshold);this.root=options.root||null;this.rootMargin=this._rootMarginValues.map(function(margin){return margin.value+margin.unit;}).join(' ');}
IntersectionObserver.prototype.THROTTLE_TIMEOUT=100;IntersectionObserver.prototype.POLL_INTERVAL=null;IntersectionObserver.prototype.USE_MUTATION_OBSERVER=true;IntersectionObserver.prototype.observe=function(target){var isTargetAlreadyObserved=this._observationTargets.some(function(item){return item.element==target;});if(isTargetAlreadyObserved){return;}
if(!(target&&target.nodeType==1)){throw new Error('target must be an Element');}
this._registerInstance();this._observationTargets.push({element:target,entry:null});this._monitorIntersections();this._checkForIntersections();};IntersectionObserver.prototype.unobserve=function(target){this._observationTargets=this._observationTargets.filter(function(item){return item.element!=target;});if(!this._observationTargets.length){this._unmonitorIntersections();this._unregisterInstance();}};IntersectionObserver.prototype.disconnect=function(){this._observationTargets=[];this._unmonitorIntersections();this._unregisterInstance();};IntersectionObserver.prototype.takeRecords=function(){var records=this._queuedEntries.slice();this._queuedEntries=[];return records;};IntersectionObserver.prototype._initThresholds=function(opt_threshold){var threshold=opt_threshold||[0];if(!Array.isArray(threshold))threshold=[threshold];return threshold.sort().filter(function(t,i,a){if(typeof t!='number'||isNaN(t)||t<0||t>1){throw new Error('threshold must be a number between 0 and 1 inclusively');}
return t!==a[i-1];});};IntersectionObserver.prototype._parseRootMargin=function(opt_rootMargin){var marginString=opt_rootMargin||'0px';var margins=marginString.split(/\s+/).map(function(margin){var parts=/^(-?\d*\.?\d+)(px|%)$/.exec(margin);if(!parts){throw new Error('rootMargin must be specified in pixels or percent');}
return{value:parseFloat(parts[1]),unit:parts[2]};});margins[1]=margins[1]||margins[0];margins[2]=margins[2]||margins[0];margins[3]=margins[3]||margins[1];return margins;};IntersectionObserver.prototype._monitorIntersections=function(){if(!this._monitoringIntersections){this._monitoringIntersections=true;if(this.POLL_INTERVAL){this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL);}
else{addEvent(window,'resize',this._checkForIntersections,true);addEvent(document,'scroll',this._checkForIntersections,true);if(this.USE_MUTATION_OBSERVER&&'MutationObserver'in window){this._domObserver=new MutationObserver(this._checkForIntersections);this._domObserver.observe(document,{attributes:true,childList:true,characterData:true,subtree:true});}}}};IntersectionObserver.prototype._unmonitorIntersections=function(){if(this._monitoringIntersections){this._monitoringIntersections=false;clearInterval(this._monitoringInterval);this._monitoringInterval=null;removeEvent(window,'resize',this._checkForIntersections,true);removeEvent(document,'scroll',this._checkForIntersections,true);if(this._domObserver){this._domObserver.disconnect();this._domObserver=null;}}};IntersectionObserver.prototype._checkForIntersections=function(){var rootIsInDom=this._rootIsInDom();var rootRect=rootIsInDom?this._getRootRect():getEmptyRect();this._observationTargets.forEach(function(item){var target=item.element;var targetRect=getBoundingClientRect(target);var rootContainsTarget=this._rootContainsTarget(target);var oldEntry=item.entry;var intersectionRect=rootIsInDom&&rootContainsTarget&&this._computeTargetAndRootIntersection(target,rootRect);var newEntry=item.entry=new IntersectionObserverEntry({time:now(),target:target,boundingClientRect:targetRect,rootBounds:rootRect,intersectionRect:intersectionRect});if(!oldEntry){this._queuedEntries.push(newEntry);}else if(rootIsInDom&&rootContainsTarget){if(this._hasCrossedThreshold(oldEntry,newEntry)){this._queuedEntries.push(newEntry);}}else{if(oldEntry&&oldEntry.isIntersecting){this._queuedEntries.push(newEntry);}}},this);if(this._queuedEntries.length){this._callback(this.takeRecords(),this);}};IntersectionObserver.prototype._computeTargetAndRootIntersection=function(target,rootRect){if(window.getComputedStyle(target).display=='none')return;var targetRect=getBoundingClientRect(target);var intersectionRect=targetRect;var parent=getParentNode(target);var atRoot=false;while(!atRoot){var parentRect=null;var parentComputedStyle=parent.nodeType==1?window.getComputedStyle(parent):{};if(parentComputedStyle.display=='none')return;if(parent==this.root||parent==document){atRoot=true;parentRect=rootRect;}else{if(parent!=document.body&&parent!=document.documentElement&&parentComputedStyle.overflow!='visible'){parentRect=getBoundingClientRect(parent);}}
if(parentRect){intersectionRect=computeRectIntersection(parentRect,intersectionRect);if(!intersectionRect)break;}
parent=getParentNode(parent);}
return intersectionRect;};IntersectionObserver.prototype._getRootRect=function(){var rootRect;if(this.root){rootRect=getBoundingClientRect(this.root);}else{var html=document.documentElement;var body=document.body;rootRect={top:0,left:0,right:html.clientWidth||body.clientWidth,width:html.clientWidth||body.clientWidth,bottom:html.clientHeight||body.clientHeight,height:html.clientHeight||body.clientHeight};}
return this._expandRectByRootMargin(rootRect);};IntersectionObserver.prototype._expandRectByRootMargin=function(rect){var margins=this._rootMarginValues.map(function(margin,i){return margin.unit=='px'?margin.value:margin.value*(i%2?rect.width:rect.height)/ 100;});var newRect={top:rect.top-margins[0],right:rect.right+margins[1],bottom:rect.bottom+margins[2],left:rect.left-margins[3]};newRect.width=newRect.right-newRect.left;newRect.height=newRect.bottom-newRect.top;return newRect;};IntersectionObserver.prototype._hasCrossedThreshold=function(oldEntry,newEntry){var oldRatio=oldEntry&&oldEntry.isIntersecting?oldEntry.intersectionRatio||0:-1;var newRatio=newEntry.isIntersecting?newEntry.intersectionRatio||0:-1;if(oldRatio===newRatio)return;for(var i=0;i<this.thresholds.length;i++){var threshold=this.thresholds[i];if(threshold==oldRatio||threshold==newRatio||threshold<oldRatio!==threshold<newRatio){return true;}}};IntersectionObserver.prototype._rootIsInDom=function(){return!this.root||containsDeep(document,this.root);};IntersectionObserver.prototype._rootContainsTarget=function(target){return containsDeep(this.root||document,target);};IntersectionObserver.prototype._registerInstance=function(){if(registry.indexOf(this)<0){registry.push(this);}};IntersectionObserver.prototype._unregisterInstance=function(){var index=registry.indexOf(this);if(index!=-1)registry.splice(index,1);};function now(){return window.performance&&performance.now&&performance.now();}
function throttle(fn,timeout){var timer=null;return function(){if(!timer){timer=setTimeout(function(){fn();timer=null;},timeout);}};}
function addEvent(node,event,fn,opt_useCapture){if(typeof node.addEventListener=='function'){node.addEventListener(event,fn,opt_useCapture||false);}
else if(typeof node.attachEvent=='function'){node.attachEvent('on'+event,fn);}}
function removeEvent(node,event,fn,opt_useCapture){if(typeof node.removeEventListener=='function'){node.removeEventListener(event,fn,opt_useCapture||false);}
else if(typeof node.detatchEvent=='function'){node.detatchEvent('on'+event,fn);}}
function computeRectIntersection(rect1,rect2){var top=Math.max(rect1.top,rect2.top);var bottom=Math.min(rect1.bottom,rect2.bottom);var left=Math.max(rect1.left,rect2.left);var right=Math.min(rect1.right,rect2.right);var width=right-left;var height=bottom-top;return(width>=0&&height>=0)&&{top:top,bottom:bottom,left:left,right:right,width:width,height:height};}
function getBoundingClientRect(el){var rect;try{rect=el.getBoundingClientRect();}catch(err){}
if(!rect)return getEmptyRect();if(!(rect.width&&rect.height)){rect={top:rect.top,right:rect.right,bottom:rect.bottom,left:rect.left,width:rect.right-rect.left,height:rect.bottom-rect.top};}
return rect;}
function getEmptyRect(){return{top:0,bottom:0,left:0,right:0,width:0,height:0};}
function containsDeep(parent,child){var node=child;while(node){if(node==parent)return true;node=getParentNode(node);}
return false;}
function getParentNode(node){var parent=node.parentNode;if(parent&&parent.nodeType==11&&parent.host){return parent.host;}
if(parent&&parent.assignedSlot){return parent.assignedSlot.parentNode;}
return parent;}
window.IntersectionObserver=IntersectionObserver;window.IntersectionObserverEntry=IntersectionObserverEntry;}());if(!Object.entries){Object.entries=function(obj){var ownProps=Object.keys(obj),i=ownProps.length,resArray=new Array(i);while(i--){resArray[i]=[ownProps[i],obj[ownProps[i]]];}
return resArray;};};if('undefined'===typeof log){var log=function(message){window.console&&console.log?console.log(message):null;};}
var AEC=(function(){return{debug:false,eventCallback:true,ajax:function(context,dataLayer){var element=jQuery(context),qty=jQuery(':radio[name=qty]:checked, [name=qty]').eq(0).val(),variant=[],variant_attribute_option=[],products=[];qty=Math.abs(qty);if(isNaN(qty)){qty=1;}
var form=jQuery(context).closest('form');if(form.length){if(!form.valid()){return true;}}
if(!AEC.gtm()){if(element.data('click')){AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_ADD_TO_CART,element.data('name'),element.data('category'));eval(element.data('click'));}
return true;}
if(element.data('configurable')){var attributes=jQuery('[name^="super_attribute"]'),variants=[];jQuery.each(attributes,function(index,attribute){if(jQuery(attribute).is('select')){var name=jQuery(attribute).attr('name'),id=name.substring(name.indexOf('[')+1,name.lastIndexOf(']'));var option=jQuery(attribute).find('option:selected');if(0<parseInt(option.val())){variants.push({id:id,option:option.val(),text:option.text()});}}});if(!variants.length){jQuery.each(AEC.SUPER,function(index,attribute){var swatch=jQuery('div[attribute-code="'+attribute.code+'"]');if(swatch.length){var variant={id:attribute.id,text:'',option:null,};var select=swatch.find('select');if(select.length){var option=swatch.find('select').find(':selected');if(option.length){variant.text=option.text();variant.option=option.val();}}
else{var span=swatch.find('span.swatch-attribute-selected-option');if(span.length){variant.text=span.text();variant.option=span.parent().attr('option-selected');}}
variants.push(variant);}});}
var SUPER_SELECTED=[];if(true){for(i=0,l=variants.length;i<l;i++){for(a=0,b=AEC.SUPER.length;a<b;a++){if(AEC.SUPER[a].id==variants[i].id){var text=variants[i].text;if(AEC.useDefaultValues){jQuery.each(AEC.SUPER[a].options,function(index,option){if(parseInt(option.value_index)==parseInt(variants[i].option)){text=option.admin_label;}});}
variant.push([AEC.SUPER[a].label,text].join(AEC.Const.VARIANT_DELIMITER_ATT));variant_attribute_option.push({attribute:variants[i].id,option:variants[i].option})}}}}
if(!variant.length){if(element.data('click')){AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_ADD_TO_CART,element.data('name'),element.data('category'));eval(element.data('click'));}
return true;}}
if(element.data('grouped')){for(u=0,y=window.G.length;u<y;u++){var qty=Math.abs(jQuery('[name="super_group['+window.G[u].id+']"]').val());if(qty){products.push({'name':window.G[u].name,'id':window.G[u].sku,'price':window.G[u].price,'category':window.G[u].category,'brand':window.G[u].brand,'quantity':qty});}}}
else{products.push({'name':element.data('name'),'id':element.data('id'),'price':element.data('price'),'category':element.data('category'),'brand':element.data('brand'),'variant':variant.join(AEC.Const.VARIANT_DELIMITER),'quantity':qty});}
for(i=0,l=products.length;i<l;i++){(function(product){jQuery.each(AEC.parseJSON(element.data('attributes')),function(key,value){product[key]=value;});})(products[i]);}
var data={'event':'addToCart','eventLabel':element.data('name'),'ecommerce':{'currencyCode':AEC.currencyCode,'add':{'actionField':{'list':element.data('list')},'products':products},'options':variant_attribute_option},'eventCallback':function(){if(AEC.eventCallback){if(element.data('event')){element.trigger(element.data('event'));}
if(element.data('click')){eval(element.data('click'));}}},'currentStore':element.data('currentstore')};if(AEC.useDefaultValues){data['currentstore']=AEC.storeName;}
AEC.Cookie.add(data).push(dataLayer);if(AEC.localStorage){(function(products){for(var i=0,l=products.length;i<l;i++){AEC.Storage.reference().set({id:products[i].id,category:products[i].category});}})(products);}
AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_ADD_TO_CART,element.data('name'),element.data('category'));if(AEC.facebook){if("undefined"!==typeof fbq){(function(product,products,fbq){var content_ids=[],price=0;for(i=0,l=products.length;i<l;i++){content_ids.push(products[i].id);price+=parseFloat(products[i].price);}
(function(callback){if(AEC.Const.COOKIE_DIRECTIVE){AEC.CookieConsent.queue(callback).process();}
else{callback.apply(window,[]);}})
((function(product,content_ids,price){return function(){fbq('track','AddToCart',{content_name:product,content_ids:content_ids,content_type:'product',value:price,currency:AEC.currencyCode});}})(product,content_ids,price));})(element.data('name'),products,fbq);}}
if(element.data('click')){eval(element.data('click'));}
return true;},ajaxSwatch:function(context,dataLayer){(function($,element){$(document).on('ajax:addToCart',function(){var attributes=[];jQuery.each(AEC.parseJSON(element.data('swatch')),function(key,value){attributes.push(value)});var variant=[[attributes[0].attribute_label,$('.swatch-option.selected').attr('option-label')].join(AEC.Const.VARIANT_DELIMITER_ATT)].join(AEC.Const.VARIANT_DELIMITER)
var products=[{'name':element.data('name'),'id':element.data('id'),'price':element.data('price'),'category':element.data('category'),'brand':element.data('brand'),'variant':variant,'quantity':1}];var data={'event':'addToCart','eventLabel':element.data('name'),'ecommerce':{'currencyCode':AEC.currencyCode,'add':{'actionField':{'list':element.data('list')},'products':products}},'currentStore':element.data('currentstore')}
AEC.Cookie.add(data).push(dataLayer);AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_ADD_TO_CART,element.data('name'),element.data('category'));});})(jQuery,jQuery(context));return true;},ajaxList:function(context,dataLayer){var element=jQuery(context),products=[];if(!AEC.gtm()){if(element.data('click')){AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_ADD_TO_CART,element.data('name'),element.data('category'));eval(element.data('click'));}
return true;}
products.push({'name':element.data('name'),'id':element.data('id'),'price':element.data('price'),'category':element.data('category'),'brand':element.data('brand'),'position':element.data('position'),'quantity':1});for(i=0,l=products.length;i<l;i++){(function(product){jQuery.each(AEC.parseJSON(element.data('attributes')),function(key,value){product[key]=value;});})(products[i]);}
var data={'event':'addToCart','eventLabel':element.data('name'),'ecommerce':{'currencyCode':AEC.currencyCode,'add':{'actionField':{'list':element.data('list')},'products':products}},'eventCallback':function(){if(AEC.eventCallback){if(element.data('event')){element.trigger(element.data('event'));}
if(element.data('click')){eval(element.data('click'));}}},'currentStore':element.data('store')};AEC.Cookie.add(data).push(dataLayer);if(AEC.localStorage){(function(products){for(var i=0,l=products.length;i<l;i++){AEC.Storage.reference().set({id:products[i].id,category:products[i].category});}})(products);}
AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_ADD_TO_CART,element.data('name'),element.data('category'));if(AEC.facebook){if("undefined"!==typeof fbq){(function(product,products,fbq){var content_ids=[],price=0;for(i=0,l=products.length;i<l;i++){content_ids.push(products[i].id);price+=parseFloat(products[i].price);}
(function(callback){if(AEC.Const.COOKIE_DIRECTIVE){AEC.CookieConsent.queue(callback).process();}
else{callback.apply(window,[]);}})
((function(product,content_ids,price){return function(){fbq('track','AddToCart',{content_name:product,content_ids:content_ids,content_type:'product',value:price,currency:AEC.currencyCode});}})(product,content_ids,price));})(element.data('name'),products,fbq);}}
if(element.data('click')){eval(element.data('click'));}
return true;},click:function(context,dataLayer){var element=jQuery(context);if(!AEC.gtm()){AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_PRODUCT_CLICK,element.data('name'),element.data('category'));return true;}
var item={'name':element.data('name'),'id':element.data('id'),'price':element.data('price'),'category':element.data('category'),'brand':element.data('brand'),'quantity':element.data('quantity'),'position':element.data('position')};jQuery.each(AEC.parseJSON(element.data('attributes')),function(key,value){item[key]=value;});var data={'event':'productClick','eventLabel':element.data('name'),'ecommerce':{'click':{'actionField':{'list':element.data('list')},'products':[item]}},'eventCallback':function(){if(AEC.eventCallback){if(element.data('event')){element.trigger(element.data('event'));}
if(element.data('click')){eval(element.data('click'));}
else if(element.is('a')){document.location=element.attr('href');}
else if(element.is('img')&&element.parent().is('a')){document.location=element.parent().attr('href');}
else{return true;}}},'eventTarget':(function(element){var target='Default';if(element.is('a')){target='Link';if(element.find('img').length>0){target='Image';}}
if(element.is('button')){target='Button';}
return target;})(element),'currentStore':element.data('store')};AEC.Cookie.click(data).push(dataLayer);AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_PRODUCT_CLICK,element.data('name'),element.data('category'));if(element.data('click')){eval(element.data('click'));}
if(AEC.eventCallback){return false;}
return true;},remove:function(context,dataLayer){var element=jQuery(context);if(!AEC.gtm()){AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_REMOVE_FROM_CART,element.data('name'),element.data('category'));return true;}
var item={'name':element.data('name'),'id':element.data('id'),'price':element.data('price'),'category':element.data('category'),'brand':element.data('brand'),'quantity':element.data('quantity')};jQuery.each(AEC.parseJSON(element.data('attributes')),function(key,value){item[key]=value;});var data={'event':'removeFromCart','eventLabel':element.data('name'),'ecommerce':{'remove':{'actionField':{'list':element.data('list')},'products':[item]}}};if(AEC.Message.confirm){(function($){require(['Magento_Ui/js/modal/confirm'],function(confirmation){confirmation({title:AEC.Message.confirmRemoveTitle,content:AEC.Message.confirmRemove,actions:{confirm:function(){AEC.Cookie.remove(data).push(dataLayer);AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_REMOVE_FROM_CART,element.data('name'));var params=$(element).data('post-action');$(document).dataPost('postData',params);},cancel:function(){return false;},always:function(){return false;}}});});})(jQuery);}
else{AEC.Cookie.remove(data).push(dataLayer);AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_REMOVE_FROM_CART,element.data('name'));}
return false;},wishlist:function(context,dataLayer){var element=jQuery(context);if(!AEC.gtm()){AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_PRODUCT_WISHLIST,element.data('name'),'Wishlist');return true;}
dataLayer.push({'event':element.data('event'),'eventLabel':element.data('event-label')});return true;},compare:function(context,dataLayer){var element=jQuery(context);if(!AEC.gtm()){AEC.Time.track(dataLayer,AEC.Const.TIMING_CATEGORY_PRODUCT_COMPARE,element.data('name'),'Compare');return true;}
dataLayer.push({'event':element.data('event'),'eventLabel':element.data('event-label')});return true;},Bind:(function(){return{apply:function(parameters){AEC.Persist.merge();AEC.Cookie.pushPrivate();require(['jquery'],function($){$('body').on({catalogCategoryAddToCartRedirect:function(){dataLayer.push({event:AEC.Const.CATALOG_CATEGORY_ADD_TO_CART_REDIRECT_EVENT});}});if(parameters){if(parameters.performance){if(window.performance){window.onload=function(){setTimeout(function(){var time=performance.timing.loadEventEnd-performance.timing.responseEnd;var timePayload={'event':'performance','performance':{'timingCategory':'Load times','timingVar':'load','timingValue':(time%60000)}};switch(window.google_tag_params.ecomm_pagetype){case'home':timePayload.performance.timingLabel='Home';dataLayer.push(timePayload);break;case'product':timePayload.performance.timingLabel='Product';dataLayer.push(timePayload);break;case'category':timePayload.performance.timingLabel='Category';dataLayer.push(timePayload);break;}},0);}}}}});return this;}}})(),Time:(function(){var T={event:'trackTime',timingCategory:'',timingVar:'',timingValue:-1,timingLabel:''};var time=new Date().getTime();return{track:function(dataLayer,category,variable,label){T.timingValue=(new Date().getTime())-time;if(category){T.timingCategory=category;}
if(variable){T.timingVar=variable;}
if(label){T.timingLabel=label;}
(function(callback){if(AEC.Const.COOKIE_DIRECTIVE){AEC.CookieConsent.queue(callback).process();}
else{callback.apply(window,[]);}})
((function(dataLayer,T){return function(){dataLayer.push(T);}})(dataLayer,T));},trackContinue:function(dataLayer,category,variable,label){this.track(dataLayer,category,variable,label);time=new Date().getTime();}}})(),Persist:(function(){var DATA_KEY='persist';var proto='undefined'!=typeof Storage?{push:function(key,entity){var data=this.data();data[key]=entity;localStorage.setItem(DATA_KEY,JSON.stringify(data));return this;},data:function(){var data=localStorage.getItem(DATA_KEY);if(null!==data){return JSON.parse(data);}
return{};},merge:function(){var data=this.data();var push={persist:{}}
for(var i in data){push.persist[i]=data[i];}
dataLayer.push(push);return this;},clear:function(){localStorage.setItem(DATA_KEY,JSON.stringify({}));return this;}}:{push:function(){},merge:function(){},clear:function(){}}
proto.CONST_KEY_PROMOTION='persist_promotion';return proto;})(),Checkout:(function(){return{data:{},tracked:{},step:function(previous,current,currentCode){if(this.data&&this.data.hasOwnProperty('ecommerce')){this.data.ecommerce.checkout.actionField.step=++current;if(AEC.Const.COOKIE_DIRECTIVE){if(AEC.Const.COOKIE_DIRECTIVE_CONSENT_GRANTED){dataLayer.push(this.data);}}
else{dataLayer.push(this.data);}}
return this;},stepOption:function(step,option){if(!option){return this;}
if(!option.toString().length){return this;}
var data={'event':'checkoutOption','ecommerce':{'checkout_option':{'actionField':{'step':step,'option':option}}}};if(AEC.Const.COOKIE_DIRECTIVE){if(AEC.Const.COOKIE_DIRECTIVE_CONSENT_GRANTED){dataLayer.push(data);}}
else{dataLayer.push(data);}
return this;}}})(),Cookie:(function(){return{data:null,privateData:null,push:function(dataLayer,consent){consent=typeof consent!=='undefined'?consent:true;if(this.data){if(consent){if(AEC.Const.COOKIE_DIRECTIVE){if(AEC.Const.COOKIE_DIRECTIVE_CONSENT_GRANTED){dataLayer.push(this.data);}}
else{dataLayer.push(this.data);}}
else{dataLayer.push(this.data);}
this.data=null;}
return this;},pushPrivate:function(){var data=this.getPrivateData();if(data){dataLayer.push({privateData:data});}
return this;},augment:function(products){var reference=AEC.Storage.reference().get();if(reference){for(var i=0,l=products.length;i<l;i++){for(var a=0,b=reference.length;a<b;a++){if(products[i].id.toString().toLowerCase()===reference[a].id.toString().toLowerCase()){products[i].category=reference[a].category;}}}}
return products;},click:function(data){this.data=data;return this;},add:function(data){this.data=data;return this;},remove:function(data){this.data=data;if(AEC.localStorage){this.data.ecommerce.remove.products=this.augment(this.data.ecommerce.remove.products);}
return this;},visitor:function(data){this.data=(function(data,privateData){if(privateData){if(privateData.hasOwnProperty('visitor')){data.visitorId=privateData.visitor.visitorId;data.visitorLoginState=privateData.visitor.visitorLoginState;}}
return data;})(data,AEC.Cookie.getPrivateData());return this;},detail:function(data){this.data=data;return this;},purchase:function(data){this.data=data;if(AEC.localStorage){this.data.ecommerce.purchase.products=this.augment(this.data.ecommerce.purchase.products);}
return this;},impressions:function(data){this.data=data;return this;},checkout:function(data){this.data=data;if(AEC.localStorage){this.data.ecommerce.checkout.products=this.augment(this.data.ecommerce.checkout.products);}
return this;},checkoutOption:function(data){this.data=data;return this;},promotion:function(data){this.data=data;return this;},promotionClick:function(data){this.data=data;return this;},remarketing:function(data){this.data=data;return this;},getPrivateData:function(){if(!this.privateData){var cookie=this.get('privateData');if(cookie){this.privateData=this.parse(cookie);}}
return this.privateData;},get:function(name){var start=document.cookie.indexOf(name+"="),len=start+name.length+1;if((!start)&&(name!=document.cookie.substring(0,name.length))){return null;}
if(start==-1){return null;}
var end=document.cookie.indexOf(String.fromCharCode(59),len);if(end==-1){end=document.cookie.length;}
return decodeURIComponent(document.cookie.substring(len,end));},unset:function(name){document.cookie=name+"="+"; path=/; expires="+(new Date(0)).toUTCString();return this;},parse:function(json){var json=decodeURIComponent(json.replace(/\+/g,' '));return JSON.parse(json);}}})(),CookieConsent:(function(){return{chain:{},queue:function(callback,event){event=typeof event!=='undefined'?event:AEC.Const.COOKIE_DIRECTIVE_CONSENT_GRANTED_EVENT;if(!this.chain.hasOwnProperty(event)){this.chain[event]=[];}
this.chain[event].push(callback);return this;},dispatch:function(consent){AEC.Const.COOKIE_DIRECTIVE_CONSENT_GRANTED=true;dataLayer.push(consent);return this.process(consent.event);},process:function(event){event=typeof event!=='undefined'?event:AEC.Const.COOKIE_DIRECTIVE_CONSENT_GRANTED_EVENT;if(this.chain.hasOwnProperty(event)&&1==AEC.Cookie.get(event)){for(a=0,b=this.chain[event].length;a<b;a++){this.chain[event][a].apply(this,[]);}
this.chain[event]=[];}
return this;},acceptConsent:function(event){return this.dispatch({event:event});},getConsentDialog:function(dataLayer,endpoints){require(['jquery'],function($){if(1!=AEC.Cookie.get(AEC.Const.COOKIE_DIRECTIVE_CONSENT_GRANTED_EVENT)){$.get(endpoints.cookieContent,function(response){var directive=$('body').append(response.cookieContent).end().find('.ec-gtm-cookie-directive');directive.find('a.ec-gtm-cookie-directive-note-toggle').off('click.ec').on('click.ec',function(){$(this).next().slideToggle();});directive.find('a.accept').off('click.ec').on('click.ec',function(){var message=$(this).attr('data-confirm');$(this).text(message);var grant=$('.ec-gtm-cookie-directive [name="cookie[]"]:checked').map(function(){return this.value}).get();$.post(endpoints.cookie,{cookie:grant},function(response){$.each(response,function(event,value){AEC.CookieConsent.acceptConsent(event);});directive.remove();},endpoints.type);});},endpoints.type);}
else{if(AEC.Const.COOKIE_DIRECTIVE_SEGMENT_MODE){(function(segments){for(i=0,l=segments.length;i<l;i++){if(1==AEC.Cookie.get(segments[i])){AEC.CookieConsent.acceptConsent(segments[i]);}}})(AEC.Const.COOKIE_DIRECTIVE_SEGMENT_MODE_EVENTS);}
else{AEC.CookieConsent.acceptConsent(AEC.Const.COOKIE_DIRECTIVE_CONSENT_GRANTED_EVENT);}}});}}})(),Storage:(function(api){return{set:function(property,value){if('undefined'!==typeof(Storage)){localStorage.setItem(property,JSON.stringify(value));}
return this;},get:function(property){if('undefined'!==typeof(Storage)){return JSON.parse(localStorage.getItem(property));}
return null;},reference:function(){return(function(storage){return{set:function(reference){var current=storage.get('category.add')||[];var exists=(function(current,reference){for(i=0,l=current.length;i<l;i++){if(current[i].id.toString().toLowerCase()===reference.id.toString().toLowerCase()){current[i].category=reference.category;return true;}}
return false;})(current,reference);if(!exists){current.push(reference);}
storage.set('category.add',current);return this;},get:function(){return storage.get('category.add');}}})(this);}}})(),gtm:function(){if("undefined"===typeof google_tag_manager){log('Unable to detect Google Tag Manager. Please verify if GTM install snippet is available.');return false;}
return true;},parseJSON:function(content){if('object'===typeof content){return content;}
if('string'===typeof content){try{return JSON.parse(content);}
catch(e){}}
return{};}}})();