/*! backstage-client 28-12-2018 */ !function a(b,c,d){function e(g,h){if(!c[g]){if(!b[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:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g>8-g%1*8)){if(e=f.charCodeAt(g+=.75),e>255)throw new a("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");c=c<<8|e}return i}),b.atob||(b.atob=function(b){var c=String(b).replace(/=+$/,"");if(c.length%4==1)throw new a("'atob' failed: The string to be decoded is not correctly encoded.");for(var e,f,g=0,h=0,i="";f=c.charAt(h++);~f&&(e=g%4?64*e+f:f,g++%4)?i+=String.fromCharCode(255&e>>(-2*g&6)):0)f=d.indexOf(f);return i})}()},{}],3:[function(a,b){var c={},d={};adrollAdapter={pushAudience:function(a,b){if(a.integrations&&a.integrations.adroll&&a.integrations.adroll.segment){var e=a.integrations.adroll.segment,f=!1;"undefined"!=typeof d[e]&&(f=!0),d[e]=function(){c[e]=setTimeout(function(){return"undefined"==typeof __adroll||null===__adroll?void d[e]():void __adroll.record_user({adroll_segments:e})},500)},b.log(" Pushing segment "+e+" to AdRoll.","info"),f||d[e]()}}},b.exports=adrollAdapter},{}],4:[function(a,b,c){!function(){"use strict";var a=["html","json","jsonp","script"],d=["connect","delete","get","head","options","patch","post","put","trace"],e=function h(){var a={},b={},c={url:function(a){return e.call(this,"url",a,f.string)},sync:function(a){return e.call(this,"sync",a,f.bool)},cache:function(a){return e.call(this,"cache",a,f.bool)},type:function(a){return e.call(this,"type",a,f.type)},header:function(b,c){return a.headers=a.headers||{},f.string(b),"undefined"!=typeof c?(f.string(c),a.headers[b]=c,this):a.headers[b]},auth:function(b,c){return f.string(b),f.string(c),a.auth={user:b,passwd:c},this},method:function(a){return e.call(this,"method",a,f.method)},queryString:function(a){return e.call(this,"queryString",a,f.queryString)},data:function(a){return e.call(this,"data",a,f.plainObject)},body:function(a){return e.call(this,"body",a,null,function(a){if("object"==typeof a){if(!(a instanceof FormData)){try{a=JSON.stringify(a)}catch(b){throw new TypeError("Unable to stringify body's content : "+b.name)}this.header("Content-Type","application/json")}}else a+="";return a})},into:function(a){return e.call(this,"into",a,f.selector,function(a){return"string"==typeof a?document.querySelectorAll(a):a instanceof HTMLElement?[a]:void 0})},jsonPaddingName:function(a){return e.call(this,"jsonPaddingName",a,f.string)},jsonPadding:function(a){return e.call(this,"jsonPadding",a,f.func)},on:function(a,c){return"function"==typeof c&&(b[a]=b[a]||[],b[a].push(c)),this},off:function(a){return b[a]=[],this},trigger:function(a,c){var d=this,e=function(a,c){b[a]instanceof Array&&b[a].forEach(function(a){a.call(d,c)})};if("undefined"!=typeof a){a+="";var f=/^([0-9])([0-9x])([0-9x])$/i,g=a.match(f);g&&g.length>3?Object.keys(b).forEach(function(a){var b=a.match(f);!(b&&b.length>3&&g[1]===b[1])||"x"!==b[2]&&g[2]!==b[2]||"x"!==b[3]&&g[3]!==b[3]||e(a,c)}):b[a]&&e(a,c)}return this},go:function(){var b=a.type||(a.into?"html":"json"),c=j();return"function"==typeof d[b]?d[b].call(this,c):void 0}},d={json:function(a){var b=this;d._xhr.call(this,a,function(a){if(a)try{a=JSON.parse(a)}catch(c){return b.trigger("error",c),null}return a})},html:function(b){d._xhr.call(this,b,function(b){return a.into&&a.into.length&&[].forEach.call(a.into,function(a){a.innerHTML=b}),b})},_xhr:function(b,c){var d,e,f,g,h=this,j=a.method||"get",k=a.sync!==!0,l=new XMLHttpRequest,m=a.data,n=a.body,o=(a.headers||{},this.header("Content-Type"));if(!o&&m&&i()&&(this.header("Content-Type","application/x-www-form-urlencoded;charset=utf-8"),o=this.header("Content-Type")),m&&i())if("string"!=typeof n&&(n=""),o.indexOf("json")>-1)try{n=JSON.stringify(m)}catch(p){throw new TypeError("Unable to stringify body's content : "+p.name)}else{f=o&&o.indexOf("x-www-form-urlencoded")>1;for(d in m)n+=f?encodeURIComponent(d)+"="+encodeURIComponent(m[d])+"&":d+"="+m[d]+"\n\r"}g=[j,b,k],a.auth&&(g.push(a.auth.user),g.push(a.auth.passwd)),l.open.apply(l,g);for(e in a.headers)l.setRequestHeader(e,a.headers[e]);l.onprogress=function(a){a.lengthComputable&&h.trigger("progress",a.loaded/a.total)},l.onload=function(){var a=l.responseText;this.status>=200&&this.status<300&&("function"==typeof c&&(a=c(a)),h.trigger("success",a)),h.trigger(this.status,a),h.trigger("end",a)},l.onerror=function(a){h.trigger("error",a,arguments)},l.send(n)},jsonp:function(b){var c,d=this,e=document.querySelector("head"),f=a.sync!==!0,i=a.jsonPaddingName||"callback",j=a.jsonPadding||"_padd"+(new Date).getTime()+Math.floor(1e4*Math.random()),k={};if(h[j])throw new Error("Padding "+j+" already exists. It must be unique.");/^ajajsonp_/.test(j)||(j="ajajsonp_"+j),window[j]=function(a){d.trigger("success",a),e.removeChild(c),window[j]=void 0},k[i]=j,b=g(b,k),c=document.createElement("script"),c.async=f,c.src=b,c.onerror=function(){d.trigger("error",arguments),e.removeChild(c),window[j]=void 0},e.appendChild(c)},script:function(b){var c,d=this,e=document.querySelector("head")||document.querySelector("body"),f=a.sync!==!0;if(!e)throw new Error("Ok, wait a second, you want to load a script, but you don't have at least a head or body tag...");c=document.createElement("script"),c.async=f,c.src=b,c.onerror=function(){d.trigger("error",arguments),e.removeChild(c)},c.onload=function(){d.trigger("success",arguments)},e.appendChild(c)}},e=function(b,c,d,e){if("undefined"!=typeof c){if("function"==typeof d)try{c=d.call(f,c)}catch(g){throw new TypeError("Failed to set "+b+" : "+g.message)}return a[b]="function"==typeof e?e.call(this,c):c,this}return"undefined"===a[b]?null:a[b]},i=function(){return["delete","patch","post","put"].indexOf(a.method)>-1},j=function(){var b=a.url,c="undefined"!=typeof a.cache?!!a.cache:!0,d=a.queryString||"",e=a.data;return c===!1&&(d+="&ajabuster="+(new Date).getTime()),b=g(b,d),e&&!i()&&(b=g(b,e)),b};return c},f={bool:function(a){return!!a},string:function(a){if("string"!=typeof a)throw new TypeError("a string is expected, but "+a+" ["+typeof a+"] given");return a},plainObject:function(a){if("object"!=typeof a||a.constructor!==Object)throw new TypeError("an object is expected, but "+a+" ["+typeof a+"] given");return a},type:function(b){if(b=this.string(b),a.indexOf(b.toLowerCase())<0)throw new TypeError("a type in ["+a.join(", ")+"] is expected, but "+b+" given");return b.toLowerCase()},method:function(a){if(a=this.string(a),d.indexOf(a.toLowerCase())<0)throw new TypeError("a method in ["+d.join(", ")+"] is expected, but "+a+" given");return a.toLowerCase()},queryString:function(a){var b={};return"string"==typeof a?a.replace("?","").split("&").forEach(function(a){var c=a.split("=");2===c.length&&(b[decodeURIComponent(c[0])]=decodeURIComponent(c[1]))}):b=a,this.plainObject(b)},selector:function(a){if("string"!=typeof a&&!(a instanceof HTMLElement))throw new TypeError("a selector or an HTMLElement is expected, "+a+" ["+typeof a+"] given");return a},func:function(a){if(a=this.string(a),!/^([a-zA-Z_])([a-zA-Z0-9_\-])+$/.test(a))throw new TypeError("a valid function name is expected, "+a+" ["+typeof a+"] given");return a}},g=function(a,b){var c;if(a=a||"",b)if(-1===a.indexOf("?")&&(a+="?"),"string"==typeof b)a+=b;else if("object"==typeof b)for(c in b)a+="&"+encodeURIComponent(c)+"="+encodeURIComponent(b[c]);return a};"function"==typeof define&&define.amd?define([],function(){return e}):"object"==typeof c?b.exports=e:window.aja=window.aja||e}()},{}],5:[function(a,b){var c=function(){return this}()||Function("return this")(),d=c.regeneratorRuntime&&Object.getOwnPropertyNames(c).indexOf("regeneratorRuntime")>=0,e=d&&c.regeneratorRuntime;if(c.regeneratorRuntime=void 0,b.exports=a("./runtime"),d)c.regeneratorRuntime=e;else try{delete c.regeneratorRuntime}catch(f){c.regeneratorRuntime=void 0}},{"./runtime":6}],6:[function(a,b){!function(a){"use strict";function c(a,b,c,d){var f=b&&b.prototype instanceof e?b:e,g=Object.create(f.prototype),h=new n(d||[]);return g._invoke=j(a,c,h),g}function d(a,b,c){try{return{type:"normal",arg:a.call(b,c)}}catch(d){return{type:"throw",arg:d}}}function e(){}function f(){}function g(){}function h(a){["next","throw","return"].forEach(function(b){a[b]=function(a){return this._invoke(b,a)}})}function i(a){function b(c,e,f,g){var h=d(a[c],a,e);if("throw"!==h.type){var i=h.arg,j=i.value;return j&&"object"==typeof j&&s.call(j,"__await")?Promise.resolve(j.__await).then(function(a){b("next",a,f,g)},function(a){b("throw",a,f,g)}):Promise.resolve(j).then(function(a){i.value=a,f(i)},g)}g(h.arg)}function c(a,c){function d(){return new Promise(function(d,e){b(a,c,d,e)})}return e=e?e.then(d,d):d()}var e;this._invoke=c}function j(a,b,c){var e=z;return function(f,g){if(e===B)throw new Error("Generator is already running");if(e===C){if("throw"===f)throw g;return p()}for(c.method=f,c.arg=g;;){var h=c.delegate;if(h){var i=k(h,c);if(i){if(i===D)continue;return i}}if("next"===c.method)c.sent=c._sent=c.arg;else if("throw"===c.method){if(e===z)throw e=C,c.arg;c.dispatchException(c.arg)}else"return"===c.method&&c.abrupt("return",c.arg);e=B;var j=d(a,b,c);if("normal"===j.type){if(e=c.done?C:A,j.arg===D)continue;return{value:j.arg,done:c.done}}"throw"===j.type&&(e=C,c.method="throw",c.arg=j.arg)}}}function k(a,b){var c=a.iterator[b.method];if(c===q){if(b.delegate=null,"throw"===b.method){if(a.iterator["return"]&&(b.method="return",b.arg=q,k(a,b),"throw"===b.method))return D;b.method="throw",b.arg=new TypeError("The iterator does not provide a 'throw' method")}return D}var e=d(c,a.iterator,b.arg);if("throw"===e.type)return b.method="throw",b.arg=e.arg,b.delegate=null,D;var f=e.arg;return f?f.done?(b[a.resultName]=f.value,b.next=a.nextLoc,"return"!==b.method&&(b.method="next",b.arg=q),b.delegate=null,D):f:(b.method="throw",b.arg=new TypeError("iterator result is not an object"),b.delegate=null,D)}function l(a){var b={tryLoc:a[0]};1 in a&&(b.catchLoc=a[1]),2 in a&&(b.finallyLoc=a[2],b.afterLoc=a[3]),this.tryEntries.push(b)}function m(a){var b=a.completion||{};b.type="normal",delete b.arg,a.completion=b}function n(a){this.tryEntries=[{tryLoc:"root"}],a.forEach(l,this),this.reset(!0)}function o(a){if(a){var b=a[u];if(b)return b.call(a);if("function"==typeof a.next)return a;if(!isNaN(a.length)){var c=-1,d=function e(){for(;++c=0;--d){var e=this.tryEntries[d],f=e.completion;if("root"===e.tryLoc)return b("end");if(e.tryLoc<=this.prev){var g=s.call(e,"catchLoc"),h=s.call(e,"finallyLoc");if(g&&h){if(this.prev=0;--c){var d=this.tryEntries[c];if(d.tryLoc<=this.prev&&s.call(d,"finallyLoc")&&this.prev=0;--b){var c=this.tryEntries[b];if(c.finallyLoc===a)return this.complete(c.completion,c.afterLoc),m(c),D}},"catch":function(a){for(var b=this.tryEntries.length-1;b>=0;--b){var c=this.tryEntries[b];if(c.tryLoc===a){var d=c.completion;if("throw"===d.type){var e=d.arg;m(c)}return e}}throw new Error("illegal catch attempt")},delegateYield:function(a,b,c){return this.delegate={iterator:o(a),resultName:b,nextLoc:c},"next"===this.method&&(this.arg=q),D}}}(function(){return this}()||Function("return this")())},{}],7:[function(a,b){b.exports=a("regenerator-runtime")},{"regenerator-runtime":5}],8:[function(a,b){b.exports=function(a){var b={};return b.provider="behavioral",b.bctx=a,b.getToken=function(){if(!b.bctx._fe_bvid)throw a.log("No Backstage cookie detected.","info"),function(a){return a.code="E_COULD_NOT_IDENT",a}(new Error("Could not identify the current visitor because no Backstage cookie was detected."));var c={type:"cookie",value:b.bctx._fe_bvid};return a.log("Backstage "+c.type+" detected: "+c.value,"info"),c},b.getAttributes=function(){return b.bctx.cache.get(a.config.customEventsNamespace).then(function(a){return a||{}})},b}},{}],9:[function(a,b,c){(function(a){!function(d){if("object"==typeof c&&"undefined"!=typeof b)b.exports=d();else if("function"==typeof define&&define.amd)define([],d);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof a?a:"undefined"!=typeof self?self:this,e.bugsnag=d()}}(function(){function a(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function b(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function c(){return ca((Math.random()*ma<<0).toString(la),ka)}function d(){return ja=ma>ja?ja:0,ja++,ja-1}function e(){var a="c",b=(new Date).getTime().toString(la),e=ca(d().toString(la),ka),f=ia(),g=c()+c();return a+b+e+f+g}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a){switch(Object.prototype.toString.call(a)){case"[object Error]":return!0;case"[object Exception]":return!0;case"[object DOMException]":return!0;default:return a instanceof Error}}function h(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function i(a){var b=[a.tagName];if(a.id&&b.push("#"+a.id),a.className&&a.className.length&&b.push("."+a.className.split(" ").join(".")),!document.querySelectorAll||!Array.prototype.indexOf)return b.join("");try{if(1===document.querySelectorAll(b.join("")).length)return b.join("")}catch(c){return b.join("")}if(a.parentNode.childNodes.length>1){var d=Array.prototype.indexOf.call(a.parentNode.childNodes,a)+1;b.push(":nth-child("+d+")")}return 1===document.querySelectorAll(b.join("")).length?b.join(""):a.parentNode?i(a.parentNode)+" > "+b.join(""):b.join("")}function j(a,b){var c="(...)";return a&&a.length<=b?a:a.slice(0,b-c.length)+c}function k(){if(!pb(rb(),this[nb])){var a={status:this.status,request:this[ob]+" "+this[nb]};this.status>=400?qb.leaveBreadcrumb("XMLHttpRequest failed",a,lb):qb.leaveBreadcrumb("XMLHttpRequest succeeded",a,lb)}}function l(){pb(rb(),this[nb])||qb.leaveBreadcrumb("XMLHttpRequest error",{request:this[ob]+" "+this[nb]},lb)}function m(a){return"[Throws: "+(a?a.message:"?")+"]"}function n(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return!0;return!1}function o(a){return"[object Array]"===Object.prototype.toString.call(a)}function p(a,b){try{return a[b]}catch(c){return m(c)}}function q(a){function b(a,e){function f(){return e>Sb&&d>Rb}if(d++,void 0===e&&(e=0),e>Qb)return Tb;if(f())return Tb;if(null===a||"object"!=typeof a)return a;if(n(c,a))return"[Circular]";if(c.push(a),"function"==typeof a.toJSON)try{d--;var g=b(a.toJSON(),e);return c.pop(),g}catch(h){return m(h)}if(o(a)){for(var i=[],j=0,k=a.length;k>j;j++){if(f()){i.push(Tb);break}i.push(b(a[j],e+1))}return c.pop(),i}var l={};try{for(var q in a)if(Object.prototype.hasOwnProperty.call(a,q)){if(f()){l[q]=Tb;break}l[q]=b(p(a,q),e+1)}}catch(r){}return c.pop(),l}var c=[],d=0;return b(a)}var r,s=function(a,b,c){for(var d=c,e=0,f=a.length;f>e;e++)d=b(d,a[e],e,a);return d},t=function(a,b){return s(a,function(a,c,d,e){return b(c,d,e)?a.concat(c):a},[])},u=function(a,b){return s(a,function(a,c,d,e){return a.concat(b(c,d,e))},[])},v=function(a,b){return s(a,function(a,c){return a===!0||c===b},!1)},w=!{toString:null}.propertyIsEnumerable("toString"),x=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],y=function(a){var b=[],c=void 0;for(c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.push(c);if(!w)return b;for(var d=0,e=x.length;e>d;d++)Object.prototype.hasOwnProperty.call(a,x[d])&&b.push(x[d]);return b},z=function(a){return"[object Array]"===Object.prototype.toString.call(a)},A=function(a){return 10>a?"0"+a:a},B=function(){var a=new Date;return a.getUTCFullYear()+"-"+A(a.getUTCMonth()+1)+"-"+A(a.getUTCDate())+"T"+A(a.getUTCHours())+":"+A(a.getUTCMinutes())+":"+A(a.getUTCSeconds())+"."+(a.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"},C={map:u,reduce:s,filter:t,includes:v,keys:y,isArray:z,isoDate:B},D=C.isoDate,E=function(){function b(){var c=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"[anonymous]",d=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"manual",f=arguments.length>3&&void 0!==arguments[3]?arguments[3]:D();a(this,b),this.type=e,this.name=c,this.metaData=d,this.timestamp=f}return b.prototype.toJSON=function(){return{type:this.type,name:this.name,timestamp:this.timestamp,metaData:this.metaData}},b}(),F=E,G={},H=C.includes;G.positiveIntIfDefined=function(a){return H(["undefined","number"],typeof a)&&parseInt(""+a,10)===a&&a>0},G.stringWithLength=function(a){return"string"==typeof a&&!!a.length};var I={},J=C.filter,K=C.reduce,L=C.keys,M=C.isArray,N=C.includes,O=G.positiveIntIfDefined,P=G.stringWithLength;I.schema={apiKey:{defaultValue:function(){return null},message:"is required",validate:P},appVersion:{defaultValue:function(){return null},message:"should be a string",validate:function(a){return null===a||P(a)}},autoNotify:{defaultValue:function(){return!0},message:"should be true|false",validate:function(a){return a===!0||a===!1}},beforeSend:{defaultValue:function(){return[]},message:"should be a function or array of functions",validate:function(a){return"function"==typeof a||M(a)&&J(a,function(a){return"function"==typeof a}).length===a.length}},endpoints:{defaultValue:function(){return{notify:"https://notify.bugsnag.com",sessions:"https://sessions.bugsnag.com"}},message:"should be an object containing endpoint URLs { notify, sessions }. sessions is optional if autoCaptureSessions=false",validate:function(a,b){return a&&"object"==typeof a&&P(a.notify)&&(b.autoCaptureSessions===!1||P(a.sessions))&&0===J(L(a),function(a){return!N(["notify","sessions"],a)}).length}},autoCaptureSessions:{defaultValue:function(a,b){return void 0===b.endpoints||!!b.endpoints&&!!b.endpoints.sessions},message:"should be true|false",validate:function(a){return a===!0||a===!1}},notifyReleaseStages:{defaultValue:function(){return null},message:"should be an array of strings",validate:function(a){return null===a||M(a)&&J(a,function(a){return"string"==typeof a}).length===a.length}},releaseStage:{defaultValue:function(){return"production"},message:"should be a string",validate:function(a){return"string"==typeof a&&a.length}},maxBreadcrumbs:{defaultValue:function(){return 20},message:"should be a number ≤40",validate:function(a){return 0===a||O(a)&&(void 0===a||40>=a)}},autoBreadcrumbs:{defaultValue:function(){return!0},message:"should be true|false",validate:function(a){return"boolean"==typeof a}},user:{defaultValue:function(){return null},message:"(object) user should be an object",validate:function(a){return"object"==typeof a}},metaData:{defaultValue:function(){return null},message:"should be an object",validate:function(a){return"object"==typeof a}},logger:{defaultValue:function(){return void 0},message:"should be null or an object with methods { debug, info, warn, error }",validate:function(a){return!a||a&&K(["debug","info","warn","error"],function(b,c){return b&&"function"==typeof a[c]},!0)}}},I.mergeDefaults=function(a,b){if(!a||!b)throw new Error("opts and schema objects are required");return K(L(b),function(c,d){return c[d]=void 0!==a[d]?a[d]:b[d].defaultValue(a[d],a),c},{})},I.validate=function(a,b){if(!a||!b)throw new Error("opts and schema objects are required");var c=K(L(b),function(c,d){return b[d].validate(a[d],a)?c:c.concat({key:d,message:b[d].message,value:a[d]})},[]);return{valid:!c.length,errors:c}};var Q=function(a){return a.app&&"string"==typeof a.app.releaseStage?a.app.releaseStage:a.config.releaseStage},R=function(a){return!(!a||!a.stack&&!a.stacktrace&&!a["opera#sourceloc"]||"string"!=typeof(a.stack||a.stacktrace||a["opera#sourceloc"])||a.stack===a.name+": "+a.message)},S={};!function(a,b){"use strict";"function"==typeof r&&r.amd?r("stackframe",[],b):"object"==typeof S?S=b():a.StackFrame=b()}(this,function(){"use strict";function a(a){return!isNaN(parseFloat(a))&&isFinite(a)}function b(a){return a.charAt(0).toUpperCase()+a.substring(1)}function c(a){return function(){return this[a]}}function d(a){if(a instanceof Object)for(var c=0;c-1&&(b=b.replace(/eval code/g,"eval").replace(/(\(eval at [^\()]*)|(\)\,.*$)/g,""));var c=b.replace(/^\s+/,"").replace(/\(eval code/g,"(").split(/\s+/).slice(1),d=this.extractLocation(c.pop()),e=c.join(" ")||void 0,f=["eval",""].indexOf(d[0])>-1?void 0:d[0];return new a({functionName:e,fileName:f,lineNumber:d[1],columnNumber:d[2],source:b})},this)},parseFFOrSafari:function(b){var c=b.stack.split("\n").filter(function(a){return!a.match(d)},this);return c.map(function(b){if(b.indexOf(" > eval")>-1&&(b=b.replace(/ line (\d+)(?: > eval line \d+)* > eval\:\d+\:\d+/g,":$1")),-1===b.indexOf("@")&&-1===b.indexOf(":"))return new a({functionName:b});var c=/((.*".+"[^@]*)?[^@]*)(?:@)/,d=b.match(c),e=d&&d[1]?d[1]:void 0,f=this.extractLocation(b.replace(c,""));return new a({functionName:e,fileName:f[0],lineNumber:f[1],columnNumber:f[2],source:b})},this)},parseOpera:function(a){return!a.stacktrace||a.message.indexOf("\n")>-1&&a.message.split("\n").length>a.stacktrace.split("\n").length?this.parseOpera9(a):a.stack?this.parseOpera11(a):this.parseOpera10(a)},parseOpera9:function(b){for(var c=/Line (\d+).*script (?:in )?(\S+)/i,d=b.message.split("\n"),e=[],f=2,g=d.length;g>f;f+=2){var h=c.exec(d[f]);h&&e.push(new a({fileName:h[2],lineNumber:h[1],source:d[f]}))}return e},parseOpera10:function(b){for(var c=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,d=b.stacktrace.split("\n"),e=[],f=0,g=d.length;g>f;f+=2){var h=c.exec(d[f]);h&&e.push(new a({functionName:h[3]||void 0,fileName:h[2],lineNumber:h[1],source:d[f]}))}return e},parseOpera11:function(c){var d=c.stack.split("\n").filter(function(a){return!!a.match(b)&&!a.match(/^Error created at/)},this);return d.map(function(b){var c,d=b.split("@"),e=this.extractLocation(d.pop()),f=d.shift()||"",g=f.replace(//,"$2").replace(/\([^\)]*\)/g,"")||void 0;f.match(/\(([^\)]*)\)/)&&(c=f.replace(/^[^\(]+\(([^\)]*)\)$/,"$1"));var h=void 0===c||"[arguments not available]"===c?void 0:c.split(",");return new a({functionName:g,args:h,fileName:e[0],lineNumber:e[1],columnNumber:e[2],source:b})},this)}}});var U={};!function(a,b){"use strict";"function"==typeof r&&r.amd?r("stack-generator",["stackframe"],b):"object"==typeof U?U=b(S):a.StackGenerator=b(a.StackFrame)}(this,function(a){return{backtrace:function(b){var c=[],d=10;"object"==typeof b&&"number"==typeof b.maxStackSize&&(d=b.maxStackSize);for(var e=arguments.callee;e&&c.length2&&void 0!==arguments[2]?arguments[2]:[],f=arguments.length>3&&void 0!==arguments[3]?arguments[3]:_();b(this,a),this.__isBugsnagReport=!0,this._ignored=!1,this._handledState=f,this.app=void 0,this.apiKey=void 0,this.breadcrumbs=[],this.context=void 0,this.device=void 0,this.errorClass=aa(c,"[no error class]"),this.errorMessage=aa(d,"[no error message]"),this.groupingHash=void 0,this.metaData={},this.request=void 0,this.severity=this._handledState.severity,this.stacktrace=W(e,function(a,b){var c=Z(b);try{return"{}"===JSON.stringify(c)?a:a.concat(c)}catch(d){return a}},[]),this.user=void 0,this.session=void 0}return a.prototype.ignore=function(){this._ignored=!0},a.prototype.isIgnored=function(){return this._ignored},a.prototype.updateMetaData=function(a){var b;if(!a)return this;var c=void 0;return null===(arguments.length<=1?void 0:arguments[1])?this.removeMetaData(a):null===(arguments.length<=2?void 0:arguments[2])?this.removeMetaData(a,arguments.length<=1?void 0:arguments[1],arguments.length<=2?void 0:arguments[2]):("object"==typeof(arguments.length<=1?void 0:arguments[1])&&(c=arguments.length<=1?void 0:arguments[1]),"string"==typeof(arguments.length<=1?void 0:arguments[1])&&(b={},b[arguments.length<=1?void 0:arguments[1]]=arguments.length<=2?void 0:arguments[2],c=b),c?(this.metaData[a]||(this.metaData[a]={}),this.metaData[a]=V({},this.metaData[a],c),this):this)},a.prototype.removeMetaData=function(a,b){return"string"!=typeof a?this:b?this.metaData[a]?(delete this.metaData[a][b],this):this:(delete this.metaData[a],this)},a.prototype.toJSON=function(){return{payloadVersion:"4",exceptions:[{errorClass:this.errorClass,message:this.errorMessage,stacktrace:this.stacktrace,type:"browserjs"}],severity:this.severity,unhandled:this._handledState.unhandled,severityReason:this._handledState.severityReason,app:this.app,device:this.device,breadcrumbs:this.breadcrumbs,context:this.context,user:this.user,metaData:this.metaData,groupingHash:this.groupingHash,request:this.request,session:this.session}},a}(),Z=function(a){var b={file:a.fileName,method:$(a.functionName),lineNumber:a.lineNumber,columnNumber:a.columnNumber,code:void 0,inProject:void 0};return b.lineNumber>-1&&!b.file&&!b.method&&(b.file="global code"),b},$=function(a){return/^global code$/i.test(a)?"global code":a},_=function(){return{unhandled:!1,severity:"warning",severityReason:{type:"handledException"}}},aa=function(a,b){return"string"==typeof a&&a?a:b};Y.getStacktrace=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return R(a)?T.parse(a).slice(b):X(U.backtrace(),function(a){return-1===(a.functionName||"").indexOf("StackGenerator$$")}).slice(1+c)},Y.ensureReport=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(a.__isBugsnagReport)return a;try{var d=Y.getStacktrace(a,b,1+c);return new Y(a.name,a.message,d)}catch(e){return new Y(a.name,a.message,[])}};var ba=Y,ca=function(a,b){var c="000000000"+a;return c.substr(c.length-b)},da="object"==typeof window?window:self,ea=0; for(var fa in da)Object.hasOwnProperty.call(da,fa)&&ea++;var ga=navigator.mimeTypes?navigator.mimeTypes.length:0,ha=ca((ga+navigator.userAgent.length).toString(36)+ea.toString(36),4),ia=function(){return ha},ja=0,ka=4,la=36,ma=Math.pow(la,ka);e.fingerprint=ia;var na=e,oa=C.isoDate,pa=function(){function a(){f(this,a),this.id=na(),this.startedAt=oa(),this._handled=0,this._unhandled=0}return a.prototype.toJSON=function(){return{id:this.id,startedAt:this.startedAt,events:{handled:this._handled,unhandled:this._unhandled}}},a.prototype.trackError=function(a){this[a._handledState.unhandled?"_unhandled":"_handled"]+=1},a}(),qa=pa,ra=g,sa=Object.assign||function(a){for(var b=1;b1&&void 0!==arguments[1]?arguments[1]:I.schema,d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(h(this,a),!(b&&b.name&&b.version&&b.url))throw new Error("`notifier` argument is required");this.notifier=b,this.configSchema=c,this._configured=!1,this._transport={sendSession:za,sendReport:za},this._logger={debug:za,info:za,warn:za,error:za},this.plugins=[],this.session=d,this.beforeSession=[],this.breadcrumbs=[],this.app={},this.context=void 0,this.device=void 0,this.metaData=void 0,this.request=void 0,this.user={},this.BugsnagReport=ba,this.BugsnagBreadcrumb=F,this.BugsnagSession=qa}return a.prototype.configure=function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.config=I.mergeDefaults(sa({},this.config,a),this.configSchema);var b=I.validate(this.config,this.configSchema);if(!b.valid==!0)throw new Error(Da(b.errors));return"function"==typeof this.config.beforeSend&&(this.config.beforeSend=[this.config.beforeSend]),null!==this.config.appVersion&&(this.app.version=this.config.appVersion),this.config.metaData&&(this.metaData=this.config.metaData),this.config.user&&(this.user=this.config.user),this.config.logger&&this.logger(this.config.logger),this._configured=!0,this._logger.debug("Loaded!"),this},a.prototype.use=function(a){return this.plugins.push(a),a.init(this)},a.prototype.transport=function(a){return this._transport=a,this},a.prototype.logger=function(a){return this._logger=a,this},a.prototype.sessionDelegate=function(a){return this._sessionDelegate=a,this},a.prototype.startSession=function(){return this._sessionDelegate?this._sessionDelegate.startSession(this):(this._logger.warn("No session implementation is installed"),this)},a.prototype.leaveBreadcrumb=function(a,b,c,d){if(!this._configured)throw new Error("client not configured");if(a=a||void 0,c="string"==typeof c?c:void 0,d="string"==typeof d?d:void 0,b="object"==typeof b&&null!==b?b:void 0,"string"==typeof a||b){var e=new F(a,b,c,d);return this.breadcrumbs.push(e),this.breadcrumbs.length>this.config.maxBreadcrumbs&&(this.breadcrumbs=this.breadcrumbs.slice(this.breadcrumbs.length-this.config.maxBreadcrumbs)),this}},a.prototype.notify=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this._configured)throw new Error("client not configured");var c=Q(this),d=Ba(a,b,this._logger),e=d.err,f=d.errorFramesToSkip,g=d._opts;if(g&&(b=g),!e){var h=Ea("nothing");this._logger.warn(xa+" "+h),e=new Error(ya+" "+h)}("object"!=typeof b||null===b)&&(b={});var i=ba.ensureReport(e,f,1);if(i.app=sa({releaseStage:c},i.app,this.app),i.context=i.context||b.context||this.context||void 0,i.device=sa({},i.device,this.device,b.device),i.request=sa({},i.request,this.request,b.request),i.user=sa({},i.user,this.user,b.user),i.metaData=sa({},i.metaData,this.metaData,b.metaData),i.breadcrumbs=this.breadcrumbs.slice(0),this.session&&(this.session.trackError(i),i.session=this.session),void 0!==b.severity&&(i.severity=b.severity,i._handledState.severityReason={type:"userSpecifiedSeverity"}),wa(this.config.notifyReleaseStages)&&!va(this.config.notifyReleaseStages,c))return this._logger.warn("Report not sent due to releaseStage/notifyReleaseStages configuration"),!1;var j=i.severity,k=[].concat(b.beforeSend).concat(this.config.beforeSend),l=ua(k,function(a,b){return a===!0?!0:"function"==typeof b&&b(i)===!1?!0:i.isIgnored()?!0:!1},!1);return l?(this._logger.debug("Report not sent due to beforeSend callback"),!1):(this.config.autoBreadcrumbs&&this.leaveBreadcrumb(i.errorClass,{errorClass:i.errorClass,errorMessage:i.errorMessage,severity:i.severity},"error"),j!==i.severity&&(i._handledState.severityReason={type:"userCallbackSetSeverity"}),this._transport.sendReport(this._logger,this.config,{apiKey:i.apiKey||this.config.apiKey,notifier:this.notifier,events:[i]}),!0)},a}(),Ba=function(a,b,c){var d=void 0,e=0,f=void 0;switch(typeof a){case"string":if("string"==typeof b){var g=Ea("string/string");c.warn(xa+" "+g),d=new Error(ya+" "+g),f={metaData:{notifier:{notifyArgs:[a,b]}}}}else d=new Error(String(a)),e+=2;break;case"number":case"boolean":d=new Error(String(a));break;case"function":var h=Ea("function");c.warn(xa+" "+h),d=new Error(ya+" "+h);break;case"object":if(null!==a&&(ra(a)||a.__isBugsnagReport))d=a;else if(null!==a&&Ca(a))d=new Error(a.message||a.errorMessage),d.name=a.name||a.errorClass,e+=2;else{var i=Ea("unsupported object");c.warn(xa+" "+i),d=new Error(ya+" "+i)}}return{err:d,errorFramesToSkip:e,_opts:f}},Ca=function(a){return!("string"!=typeof a.name&&"string"!=typeof a.errorClass||"string"!=typeof a.message&&"string"!=typeof a.errorMessage)},Da=function(a){return"Bugsnag configuration error\n"+ta(a,function(a){return'"'+a.key+'" '+a.message+" \n got "+Fa(a.value)}).join("\n\n")},Ea=function(a){return"notify() expected error/opts parameters, got "+a},Fa=function(a){return"object"==typeof a?JSON.stringify(a):String(a)},Ga=Aa,Ha=G.positiveIntIfDefined,Ia={init:function(a){var b=0;a.config.beforeSend.push(function(c){return b>=a.config.maxEvents?c.ignore():void b++}),a.refresh=function(){b=0}},configSchema:{maxEvents:{defaultValue:function(){return 10},message:"should be a positive integer ≤100",validate:function(a){return Ha(a)&&100>a}}}},Ja=Object.assign||function(a){for(var b=1;bf;f++)e[f]=arguments[f];a.leaveBreadcrumb("Console output",Ra(e,function(a,b,c){var d=String(b);if("[object Object]"===d)try{d=JSON.stringify(b)}catch(e){}return a["["+c+"]"]=d,a},{severity:0===b.indexOf("group")?"log":b}),"log"),c.apply(console,e)},console[b]._restore=function(){console[b]=c}})},Pa.configSchema={consoleBreadcrumbsEnabled:{defaultValue:function(){return void 0},validate:function(a){return a===!0||a===!1||void 0===a},message:"should be true|false"}};var Ta=Sa(["log","debug","info","warn","error"],function(a){return"undefined"!=typeof console&&"function"==typeof console[a]}),Ua={init:function(a){a.config.beforeSend.unshift(function(a){a.context||(a.context=window.location.pathname)})}},Va=Object.assign||function(a){for(var b=1;b"].concat(b.split("\n")),h=ab(g,f.lineNumber-1),i=h.script,j=h.start,k=Za(i,function(a,b,c){return Math.abs(j+c+1-f.lineNumber)>10?a:(a[""+(j+c+1)]=b,a)},{});f.code=k,a.updateMetaData("script",{content:i.join("\n")})};b=d(),document.onreadystatechange=function(){"interactive"===document.readyState&&(b=d(),c=!0)},a.config.beforeSend.unshift(f)}};var $a=/^.*/,_a=/<\/script>.*$/,ab=Ya.extractScriptContent=function(a,b){for(var c=b;c0&&!$a.test(a[c]);)c--;var e=c,f=a.slice(e,d+1);return f[0]=f[0].replace($a,""),f[f.length-1]=f[f.length-1].replace(_a,""),{script:f,start:e}},bb={init:function(a){"addEventListener"in window&&window.addEventListener("click",function(b){var c=void 0,d=void 0;try{c=cb(b.target),d=i(b.target)}catch(e){c="[hidden]",d="[hidden]",a._logger.error("Cross domain error when tracking click event. See docs: https://tinyurl.com/y94fq5zm")}a.leaveBreadcrumb("UI click",{targetText:c,targetSelector:d},"user")},!0)},configSchema:{interactionBreadcrumbsEnabled:{defaultValue:function(){return void 0},validate:function(a){return a===!0||a===!1||void 0===a},message:"should be true|false"}}},cb=function(a){var b=a.textContent||a.innerText||"";return b||"submit"!==a.type&&"button"!==a.type||(b=a.value),b=b.replace(/^\s+|\s+$/g,""),j(b,140)},db=Object.assign||function(a){for(var b=1;bd;d++)c[d]=arguments[d];var e=c[0],f=c[1],g="GET";return f&&f.method&&(g=f.method),new Promise(function(b,d){a.apply(void 0,c).then(function(a){ub(a,g,e),b(a)})["catch"](function(a){vb(g,e),d(a)})})}}},ub=function(a,b,c){var d={status:a.status,request:b+" "+c};a.status>=400?qb.leaveBreadcrumb("fetch() failed",d,lb):qb.leaveBreadcrumb("fetch() succeeded",d,lb)},vb=function(a,b){qb.leaveBreadcrumb("fetch() error",{request:a+" "+b},lb)},wb=Object.assign||function(a){for(var b=1;b1e6&&(delete a.events[0].metaData,a.events[0].metaData={notifier:"WARNING!\nSerialized payload was "+b.length/1e6+"MB (limit = 1MB)\nmetaData was removed"},b=Pb(a),b.length>1e6))throw new Error("payload exceeded 1MB limit");return b},Vb={},Wb=C.isoDate;Vb={sendReport:function(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},e=Xb(b,"notify","4.0"),f=new window.XDomainRequest;f.onload=function(){d(null,f.responseText)},f.open("POST",e),setTimeout(function(){try{f.send(Ub(c))}catch(b){a.error(b)}},0)},sendSession:function(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},e=Xb(b,"sessions","1.0"),f=new window.XDomainRequest;f.onload=function(){d(null,f.responseText)},f.open("POST",e),setTimeout(function(){try{f.send(Pb(c))}catch(b){a.error(b)}},0)}};var Xb=function(a,b,c){return Yb(a.endpoints[b],window.location.protocol)+"?apiKey="+encodeURIComponent(a.apiKey)+"&payloadVersion="+c+"&sentAt="+encodeURIComponent(Wb())},Yb=Vb._matchPageProtocol=function(a,b){return"http:"===b?a.replace(/^https:/,"http:"):a},Zb=C.isoDate,$b={sendReport:function(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){};try{var e=b.endpoints.notify,f=new window.XMLHttpRequest;f.onreadystatechange=function(){f.readyState===window.XMLHttpRequest.DONE&&d(null,f.responseText)},f.open("POST",e),f.setRequestHeader("Content-Type","application/json"),f.setRequestHeader("Bugsnag-Api-Key",c.apiKey||b.apiKey),f.setRequestHeader("Bugsnag-Payload-Version","4.0"),f.setRequestHeader("Bugsnag-Sent-At",Zb()),f.send(Ub(c))}catch(g){a.error(g)}},sendSession:function(a,b,c){var d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){};try{var e=b.endpoints.sessions,f=new window.XMLHttpRequest;f.onreadystatechange=function(){f.readyState===window.XMLHttpRequest.DONE&&d(null,f.responseText)},f.open("POST",e),f.setRequestHeader("Content-Type","application/json"),f.setRequestHeader("Bugsnag-Api-Key",b.apiKey),f.setRequestHeader("Bugsnag-Payload-Version","1.0"),f.setRequestHeader("Bugsnag-Sent-At",Zb()),f.send(Pb(c))}catch(g){a.error(g)}}},_b={},ac=Object.assign||function(a){for(var b=1;b1&&void 0!==arguments[1]?arguments[1]:[];"string"==typeof a&&(a={apiKey:a});var c=[];a.sessionTrackingEnabled&&(c.push("deprecated option sessionTrackingEnabled is now called autoCaptureSessions"),a.autoCaptureSessions=a.sessionTrackingEnabled),!a.endpoint&&!a.sessionEndpoint||a.endpoints||(c.push("deprecated options endpoint/sessionEndpoint are now configured in the endpoints object"),a.endpoints={notify:a.endpoint,sessions:a.sessionEndpoint}),a.endpoints&&a.endpoints.notify&&!a.endpoints.sessions&&c.push("notify endpoint is set but sessions endpoint is not. No sessions will be sent.");var d=fc([].concat(hc).concat(b),function(a,b){return b.configSchema?ac({},a,b.configSchema):a},gc),e=new Ga({name:bc,version:cc,url:dc},d);return e.transport(window.XDomainRequest?Vb:$b),e.configure(a),ec(c,function(a){return e._logger.warn(a)}),e.use(Xa),e.use(Ua),e.use(xb),e.use(Ya),e.use(Ia),e.use(Cb),e.use(eb),e.use(Eb),e.config.autoNotify!==!1&&(e.use(Nb),e.use(Ib)),ic(e.config,"navigationBreadcrumbsEnabled")&&e.use(fb),ic(e.config,"interactionBreadcrumbsEnabled")&&e.use(bb),ic(e.config,"networkBreadcrumbsEnabled")&&e.use(kb),ic(e.config,"consoleBreadcrumbsEnabled",!1)&&e.use(Pa),ec(b,function(a){return e.use(a)}),e.config.autoCaptureSessions?e.startSession():e};var ic=function(a,b){var c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:!0;return"boolean"==typeof a[b]?a[b]:a.autoBreadcrumbs&&(c||!/^dev(elopment)?$/.test(a.releaseStage))};return _b.Bugsnag={Client:Ga,Report:ba,Session:qa,Breadcrumb:F},_b["default"]=_b,_b})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],10:[function(a,b){b.exports=function(a){var b={};return b.provider="clearbitreveal",b.bctx=a,b.getToken=function(){if(!b.bctx._fe_bvid)throw a.log("No Backstage cookie detected.","info"),function(a){return a.code="E_COULD_NOT_IDENT",a}(new Error("Could not identify the current visitor using the Clearbit strategy because no backstage cookie was detected."));return contactId={type:"cookie",value:b.bctx._fe_bvid},a.log("Backstage"+contactId.type+" detected: "+contactId.value,"info"),a.dataLayer.push({event:"backstage.identify",clearbitreveal:contactId}),contactId},b.getAttributes=function(){if(this.bctx.log("clearbit getAttributes initiated"),clearbitWindowData={},window.reveal)clearbitWindowData=window.reveal,localStorage.setItem("clearbit_data",JSON.stringify(window.reveal));else if(localStorage.getItem("clearbit_data"))try{clearbitWindowData=JSON.parse(localStorage.getItem("clearbit_data")),window.unwatch("reveal")}catch(a){this.bctx.log("error parsing",a)}else this.bctx.log("no clearbit data detected (yet) -- setting up a watcher"),window.watch("reveal",function(a,b,c){console.log("clearbit data populated late"),window.unwatch("reveal"),window.reveal=c,localStorage.setItem("clearbit_data",JSON.stringify(window.reveal))});if(!clearbitWindowData||0===Object.keys(clearbitWindowData).length)return{};var b={companyName:"company.name",companyWebsite:"company.domain",companyDomain:"company.tags",companySector:"company.category.sector",industryGroup:"company.category.industryGroup",companyIndustry:"company.category.industry",subIndustry:"company.category.subIndustry",companyAddress:"company.location",companyTimeZone:"company.timeZone",companyUtcOffset:"company.utcOffset",streetNumber:"company.geo.streetNumber",companyCity:"company.geo.city",companyState:"company.geo.state",stateCode:"company.geo.stateCode",companyCountry:"company.geo.country",countryCode:"company.geo.countryCode",companyEmployees:"company.metrics.employees",annualRevenue:"company.metrics.annualRevenue",legalName:"company.legalName",domainAliases:"company.domainAliases",url:"company.url",emailProvider:"company.emailProvider",type:"company.type",phone:"company.phone",tech:"company.tech",alexaUsRank:"company.metrics.alexaUsRank",alexaGlobalRank:"company.metrics.alexaGlobalRank",googleRank:"company.metrics.googleRank",employees:"company.metrics.employees",employeesRange:"company.metrics.employeesRange",marketCap:"company.metrics.marketCap",raised:"company.metrics.raised"},c={};for(var d in b)try{if(b[d].indexOf(".")>=0){var e=b[d].split(".");c[d]=3==e.length?clearbitWindowData[e[0]][e[1]][e[2]]:clearbitWindowData[e[0]][e[1]]}else c[d]=clearbitWindowData[b[d]];"domainAliases"!=d&&"tech"!=d||!c[d]||(c[d]=c[d].join())}catch(f){this.bctx.log("could not find Clearbit Attribute: ",d)}return c},b},Object.prototype.watch||Object.defineProperty(Object.prototype,"watch",{enumerable:!1,configurable:!0,writable:!1,value:function(a,b){var c=this[a],d=c,e=function(){return d},f=function(e){return c=d,d=b.call(this,a,c,e)};delete this[a]&&Object.defineProperty(this,a,{get:e,set:f,enumerable:!0,configurable:!0})}}),Object.prototype.unwatch||Object.defineProperty(Object.prototype,"unwatch",{enumerable:!1,configurable:!0,writable:!1,value:function(a){var b=this[a];delete this[a],this[a]=b}})},{}],11:[function(a,b){var c={pushAudience:function(a,b){if(a.integrations&&a.integrations.convert){var c=this,d=0;if("undefined"!=typeof a.integrations.convert.customTagType&&""!==a.integrations.convert.customTagType&&(d=parseInt(a.integrations.convert.customTagType)),a.integrations&&a.integrations.convert&&d>0&&"undefined"!=typeof a.integrations.convert.customTagValue&&""!==a.integrations.convert.customTagValue){var e="_conv_custom_v1",f=a.integrations.convert.customTagValue;2==d&&(e="_conv_custom_v2"),3==d&&(e="_conv_custom_v3"),4==d&&(e="_conv_custom_v4"),window[e]=f,b.log("Convert Tag added to window: "+e+"="+f,"info"),c.pushToConvert(a,b)}}},pushToConvert:function(a,b){("undefined"!=typeof window._conv_custom_v1||"undefined"!=typeof window._conv_custom_v2||"undefined"!=typeof window._conv_custom_v3||"undefined"!=typeof window._conv_custom_v4)&&(window._conv_q=window._conv_q||[],window._conv_q.push(["checkExperiments"]),b.log("Convert Push method called","info"))}};b.exports=c},{}],12:[function(a,b,c){!function(a,d){"use strict";var e=function(a){if("object"!=typeof a.document)throw new Error("Cookies.js requires a `window` with a `document` object");var b=function(a,c,d){return 1===arguments.length?b.get(a):b.set(a,c,d)};return b._document=a.document,b._cacheKeyPrefix="cookey.",b._maxExpireDate=new Date("Fri, 31 Dec 9999 23:59:59 UTC"),b.defaults={path:"/",secure:!1},b.get=function(a){b._cachedDocumentCookie!==b._document.cookie&&b._renewCache();var c=b._cache[b._cacheKeyPrefix+a];return c===d?d:decodeURIComponent(c)},b.set=function(a,c,e){return e=b._getExtendedOptions(e),e.expires=b._getExpiresDate(c===d?-1:e.expires),b._document.cookie=b._generateCookieString(a,c,e),b},b.expire=function(a,c){return b.set(a,d,c)},b._getExtendedOptions=function(a){return{path:a&&a.path||b.defaults.path,domain:a&&a.domain||b.defaults.domain,expires:a&&a.expires||b.defaults.expires,secure:a&&a.secure!==d?a.secure:b.defaults.secure}},b._isValidDate=function(a){return"[object Date]"===Object.prototype.toString.call(a)&&!isNaN(a.getTime())},b._getExpiresDate=function(a,c){if(c=c||new Date,"number"==typeof a?a=a===1/0?b._maxExpireDate:new Date(c.getTime()+1e3*a):"string"==typeof a&&(a=new Date(a)),a&&!b._isValidDate(a))throw new Error("`expires` parameter cannot be converted to a valid Date instance");return a},b._generateCookieString=function(a,b,c){a=a.replace(/[^#$&+\^`|]/g,encodeURIComponent),a=a.replace(/\(/g,"%28").replace(/\)/g,"%29"),b=(b+"").replace(/[^!#$&-+\--:<-\[\]-~]/g,encodeURIComponent),c=c||{};var d=a+"="+b;return d+=c.path?";path="+c.path:"",d+=c.domain?";domain="+c.domain:"",d+=c.expires?";expires="+c.expires.toUTCString():"",d+=c.secure?";secure":""},b._getCacheFromString=function(a){for(var c={},e=a?a.split("; "):[],f=0;fb?a.length:b;var c,d=a.substr(0,b);try{c=decodeURIComponent(d)}catch(e){console&&"function"==typeof console.error&&console.error('Could not decode cookie with key "'+d+'"',e)}return{key:c,value:a.substr(b+1)}},b._renewCache=function(){b._cache=b._getCacheFromString(b._document.cookie),b._cachedDocumentCookie=b._document.cookie},b._areEnabled=function(){var a="cookies.js",c="1"===b.set(a,1).get(a);return b.expire(a),c},b.enabled=b._areEnabled(),b},f=a&&"object"==typeof a.document?e(a):e;"function"==typeof define&&define.amd?define(function(){return f}):"object"==typeof c?("object"==typeof b&&"object"==typeof b.exports&&(c=b.exports=f),c.Cookies=f):a.Cookies=f}("undefined"==typeof window?this:window)},{}],13:[function(a,b){b.exports=function(a){var b={},c=a.DataLayerHelper;return b.bctx=a,b.provider="demandbase",b.getToken=function(){var b={};this.bctx=a;var d=(new c(dataLayer),localStorage.getItem("demandbase_data")),e={};try{e=JSON.parse(d||"{}")}catch(f){console.log("error on parsing ",f)}if(!e||!e.ip)throw this.bctx.log("No Demandbase data detected.","info"),this._dataLayerListener(),function(a){return a.code="E_COULD_NOT_IDENT",a}(new Error("Demandbase Identity not available."));dataLayer.push(e);var g=e.ip;return this.bctx.log("Demandbase ip detected: "+g,"info"),b.value=e.ip,b.type="ip",b},b.getAttributes=function(){dataLayer=window.dataLayer||[];var a=new c(dataLayer),b=["registry_company_name","registry_city","registry_state","registry_zip_code","registry_area_code","registry_country","registry_country_code","registry_latitude","registry_longitude","isp","information_level","audience","audience_segment","ip","region_name","registry_dma_code","registry_country_code3","demandbase_sid","company_name","fortune_1000","employee_range","revenue_range","industry","sub_industry","watch_list_account_type","watch_list_status","watch_list_campaign_code","watch_list_sales_member"],d={};return b.forEach(function(b){try{d[b]=a.get(b)}catch(c){this.bctx.log("Could not find Demandbase Attribute: "+b)}}),d},b._dataLayerListener=function(a){var c=b.getAttributes();"Demandbase_Loaded"===a.event&&localStorage.setItem("demandbase_data",JSON.stringify(c))},b.helper=new c(dataLayer,b._dataLayerListener),b}},{}],14:[function(a,b){b.exports="function"==typeof Object.create?function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},{}],15:[function(a,b){b.exports=function(a){var b={};return b.provider="kickfire",b.bctx=a,b.getToken=function(){if(!b.bctx._fe_bvid)throw a.log("No Backstage cookie detected.","info"),function(a){return a.code="E_COULD_NOT_IDENT",a}(new Error("Could not identify the current visitor using the Kickfire strategy because no Backfire cookie was detected."));return kickfireId={type:"cookie",value:b.bctx._fe_bvid},a.log("Backstage "+kickfireId.type+" detected: "+kickfireId.value,"info"),a.dataLayer.push({event:"backstage.identify",kickfire:kickfireId}),kickfireId},b}},{}],16:[function(a,b,c){(function(d){!function(a){if("object"==typeof c&&"undefined"!=typeof b)b.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof d?d:"undefined"!=typeof self?self:this,e.localforage=a()}}(function(){return function b(c,d,e){function f(h,i){if(!d[h]){if(!c[h]){var j="function"==typeof a&&a;if(!i&&j)return j(h,!0);if(g)return g(h,!0);var k=new Error("Cannot find module '"+h+"'");throw k.code="MODULE_NOT_FOUND",k}var l=d[h]={exports:{}};c[h][0].call(l.exports,function(a){var b=c[h][1][a];return f(b?b:a)},l,l.exports,b,c,d,e)}return d[h].exports}for(var g="function"==typeof a&&a,h=0;he;e++)d[e]=a.charCodeAt(e);return c}function l(a){return new ua(function(b){var c=a.transaction(va,Aa),d=f([""]);c.objectStore(va).put(d,"key"),c.onabort=function(a){a.preventDefault(),a.stopPropagation(),b(!1)},c.oncomplete=function(){var a=navigator.userAgent.match(/Chrome\/(\d+)/),c=navigator.userAgent.match(/Edge\//);b(c||!a||parseInt(a[1],10)>=43)}})["catch"](function(){return!1})}function m(a){return"boolean"==typeof wa?ua.resolve(wa):l(a).then(function(a){return wa=a})}function n(a){var b=xa[a.name],c={};c.promise=new ua(function(a,b){c.resolve=a,c.reject=b}),b.deferredOperations.push(c),b.dbReady=b.dbReady?b.dbReady.then(function(){return c.promise}):c.promise}function o(a){var b=xa[a.name],c=b.deferredOperations.pop();return c?(c.resolve(),c.promise):void 0}function p(a,b){var c=xa[a.name],d=c.deferredOperations.pop();return d?(d.reject(b),d.promise):void 0}function q(a,b){return new ua(function(c,d){if(xa[a.name]=xa[a.name]||A(),a.db){if(!b)return c(a.db);n(a),a.db.close()}var e=[a.name];b&&e.push(a.version);var f=ta.open.apply(ta,e);b&&(f.onupgradeneeded=function(b){var c=f.result;try{c.createObjectStore(a.storeName),b.oldVersion<=1&&c.createObjectStore(va)}catch(d){if("ConstraintError"!==d.name)throw d;console.warn('The database "'+a.name+'" has been upgraded from version '+b.oldVersion+" to version "+b.newVersion+', but the storage "'+a.storeName+'" already exists.')}}),f.onerror=function(a){a.preventDefault(),d(f.error)},f.onsuccess=function(){c(f.result),o(a)}})}function r(a){return q(a,!1)}function s(a){return q(a,!0)}function t(a,b){if(!a.db)return!0;var c=!a.db.objectStoreNames.contains(a.storeName),d=a.versiona.db.version;if(d&&(a.version!==b&&console.warn('The database "'+a.name+"\" can't be downgraded from version "+a.db.version+" to version "+a.version+"."),a.version=a.db.version),e||c){if(c){var f=a.db.version+1;f>a.version&&(a.version=f)}return!0}return!1}function u(a){return new ua(function(b,c){var d=new FileReader;d.onerror=c,d.onloadend=function(c){var d=btoa(c.target.result||"");b({__local_forage_encoded_blob:!0,data:d,type:a.type})},d.readAsBinaryString(a)})}function v(a){var b=k(atob(a.data));return f([b],{type:a.type})}function w(a){return a&&a.__local_forage_encoded_blob}function x(a){var b=this,c=b._initReady().then(function(){var a=xa[b._dbInfo.name];return a&&a.dbReady?a.dbReady:void 0});return h(c,a,a),c}function y(a){n(a);for(var b=xa[a.name],c=b.forages,d=0;d0&&(!a.db||"InvalidStateError"===f.name||"NotFoundError"===f.name))return ua.resolve().then(function(){return!a.db||"NotFoundError"===f.name&&!a.db.objectStoreNames.contains(a.storeName)&&a.version<=a.db.version?(a.db&&(a.version=a.db.version+1),s(a)):void 0}).then(function(){return y(a).then(function(){z(a,b,c,d-1)})})["catch"](c);c(f)}}function A(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function B(a){function b(){return ua.resolve()}var c=this,d={db:null};if(a)for(var e in a)d[e]=a[e];var f=xa[d.name];f||(f=A(),xa[d.name]=f),f.forages.push(c),c._initReady||(c._initReady=c.ready,c.ready=x);for(var g=[],h=0;ha?void b(null):void c.ready().then(function(){z(c._dbInfo,za,function(e,f){if(e)return d(e);try{var g=f.objectStore(c._dbInfo.storeName),h=!1,i=g.openCursor();i.onsuccess=function(){var c=i.result;return c?void(0===a?b(c.key):h?b(c.key):(h=!0,c.advance(a))):void b(null)},i.onerror=function(){d(i.error)}}catch(j){d(j)}})})["catch"](d)});return g(d,b),d}function J(a){var b=this,c=new ua(function(a,c){b.ready().then(function(){z(b._dbInfo,za,function(d,e){if(d)return c(d);try{var f=e.objectStore(b._dbInfo.storeName),g=f.openCursor(),h=[];g.onsuccess=function(){var b=g.result;return b?(h.push(b.key),void b["continue"]()):void a(h)},g.onerror=function(){c(g.error)}}catch(i){c(i)}})})["catch"](c)});return g(c,a),c}function K(a,b){b=j.apply(this,arguments);var c=this.config();a="function"!=typeof a&&a||{},a.name||(a.name=a.name||c.name,a.storeName=a.storeName||c.storeName);var d,e=this;if(a.name){var f=a.name===c.name&&e._dbInfo.db,h=f?ua.resolve(e._dbInfo.db):r(a).then(function(b){var c=xa[a.name],d=c.forages;c.db=b;for(var e=0;eb;b+=4)c=Ca.indexOf(a[b]),d=Ca.indexOf(a[b+1]),e=Ca.indexOf(a[b+2]),f=Ca.indexOf(a[b+3]),k[i++]=c<<2|d>>4,k[i++]=(15&d)<<4|e>>2,k[i++]=(3&e)<<6|63&f;return j}function N(a){var b,c=new Uint8Array(a),d="";for(b=0;b>2],d+=Ca[(3&c[b])<<4|c[b+1]>>4],d+=Ca[(15&c[b+1])<<2|c[b+2]>>6],d+=Ca[63&c[b+2]];return c.length%3===2?d=d.substring(0,d.length-1)+"=":c.length%3===1&&(d=d.substring(0,d.length-2)+"=="),d}function O(a,b){var c="";if(a&&(c=Ta.call(a)),a&&("[object ArrayBuffer]"===c||a.buffer&&"[object ArrayBuffer]"===Ta.call(a.buffer))){var d,e=Fa;a instanceof ArrayBuffer?(d=a,e+=Ha):(d=a.buffer,"[object Int8Array]"===c?e+=Ja:"[object Uint8Array]"===c?e+=Ka:"[object Uint8ClampedArray]"===c?e+=La:"[object Int16Array]"===c?e+=Ma:"[object Uint16Array]"===c?e+=Oa:"[object Int32Array]"===c?e+=Na:"[object Uint32Array]"===c?e+=Pa:"[object Float32Array]"===c?e+=Qa:"[object Float64Array]"===c?e+=Ra:b(new Error("Failed to get type for BinaryArray"))),b(e+N(d))}else if("[object Blob]"===c){var f=new FileReader;f.onload=function(){var c=Da+a.type+"~"+N(this.result);b(Fa+Ia+c)},f.readAsArrayBuffer(a)}else try{b(JSON.stringify(a))}catch(g){console.error("Couldn't convert value into a JSON string: ",a),b(null,g)}}function P(a){if(a.substring(0,Ga)!==Fa)return JSON.parse(a);var b,c=a.substring(Sa),d=a.substring(Ga,Sa);if(d===Ia&&Ea.test(c)){var e=c.match(Ea);b=e[1],c=c.substring(e[0].length)}var g=M(c);switch(d){case Ha:return g;case Ia:return f([g],{type:b});case Ja:return new Int8Array(g);case Ka:return new Uint8Array(g);case La:return new Uint8ClampedArray(g);case Ma:return new Int16Array(g);case Oa:return new Uint16Array(g);case Na:return new Int32Array(g);case Pa:return new Uint32Array(g);case Qa:return new Float32Array(g);case Ra:return new Float64Array(g);default:throw new Error("Unkown type: "+d)}}function Q(a,b,c,d){a.executeSql("CREATE TABLE IF NOT EXISTS "+b.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],c,d)}function R(a){var b=this,c={db:null};if(a)for(var d in a)c[d]="string"!=typeof a[d]?a[d].toString():a[d];var e=new ua(function(a,d){try{c.db=openDatabase(c.name,String(c.version),c.description,c.size)}catch(e){return d(e)}c.db.transaction(function(e){Q(e,c,function(){b._dbInfo=c,a()},function(a,b){d(b)})},d)});return c.serializer=Ua,e}function S(a,b,c,d,e,f){a.executeSql(c,d,e,function(a,g){g.code===g.SYNTAX_ERR?a.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[b.storeName],function(a,h){h.rows.length?f(a,g):Q(a,b,function(){a.executeSql(c,d,e,f)},f)},f):f(a,g)},f)}function T(a,b){var c=this;a=i(a);var d=new ua(function(b,d){c.ready().then(function(){var e=c._dbInfo;e.db.transaction(function(c){S(c,e,"SELECT * FROM "+e.storeName+" WHERE key = ? LIMIT 1",[a],function(a,c){var d=c.rows.length?c.rows.item(0).value:null;d&&(d=e.serializer.deserialize(d)),b(d)},function(a,b){d(b)})})})["catch"](d)});return g(d,b),d}function U(a,b){var c=this,d=new ua(function(b,d){c.ready().then(function(){var e=c._dbInfo;e.db.transaction(function(c){S(c,e,"SELECT * FROM "+e.storeName,[],function(c,d){for(var f=d.rows,g=f.length,h=0;g>h;h++){var i=f.item(h),j=i.value;if(j&&(j=e.serializer.deserialize(j)),j=a(j,i.key,h+1),void 0!==j)return void b(j)}b()},function(a,b){d(b)})})})["catch"](d)});return g(d,b),d}function V(a,b,c,d){var e=this;a=i(a);var f=new ua(function(f,g){e.ready().then(function(){void 0===b&&(b=null);var h=b,i=e._dbInfo;i.serializer.serialize(b,function(b,j){j?g(j):i.db.transaction(function(c){S(c,i,"INSERT OR REPLACE INTO "+i.storeName+" (key, value) VALUES (?, ?)",[a,b],function(){f(h)},function(a,b){g(b)})},function(b){if(b.code===b.QUOTA_ERR){if(d>0)return void f(V.apply(e,[a,h,c,d-1]));g(b)}})})})["catch"](g)});return g(f,c),f}function W(a,b,c){return V.apply(this,[a,b,c,1])}function X(a,b){var c=this;a=i(a);var d=new ua(function(b,d){c.ready().then(function(){var e=c._dbInfo;e.db.transaction(function(c){S(c,e,"DELETE FROM "+e.storeName+" WHERE key = ?",[a],function(){b()},function(a,b){d(b)})})})["catch"](d)});return g(d,b),d}function Y(a){var b=this,c=new ua(function(a,c){b.ready().then(function(){var d=b._dbInfo;d.db.transaction(function(b){S(b,d,"DELETE FROM "+d.storeName,[],function(){a()},function(a,b){c(b)})})})["catch"](c)});return g(c,a),c}function Z(a){var b=this,c=new ua(function(a,c){b.ready().then(function(){var d=b._dbInfo;d.db.transaction(function(b){S(b,d,"SELECT COUNT(key) as c FROM "+d.storeName,[],function(b,c){var d=c.rows.item(0).c;a(d)},function(a,b){c(b)})})})["catch"](c)});return g(c,a),c}function $(a,b){var c=this,d=new ua(function(b,d){c.ready().then(function(){var e=c._dbInfo;e.db.transaction(function(c){S(c,e,"SELECT key FROM "+e.storeName+" WHERE id = ? LIMIT 1",[a+1],function(a,c){var d=c.rows.length?c.rows.item(0).key:null;b(d)},function(a,b){d(b)})})})["catch"](d)});return g(d,b),d}function _(a){var b=this,c=new ua(function(a,c){b.ready().then(function(){var d=b._dbInfo;d.db.transaction(function(b){S(b,d,"SELECT key FROM "+d.storeName,[],function(b,c){for(var d=[],e=0;e '__WebKitDatabaseInfoTable__'",[],function(c,d){for(var e=[],f=0;fg;g++)f.push(e(a.storeNames[g]));ua.all(f).then(function(){b()})["catch"](function(a){c(a)})},function(a){c(a)})})}):ua.reject("Invalid arguments"),g(d,b),d}function ca(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(a){return!1}}function da(a,b){var c=a.name+"/";return a.storeName!==b.storeName&&(c+=a.storeName+"/"),c}function ea(){var a="_localforage_support_test";try{return localStorage.setItem(a,!0),localStorage.removeItem(a),!1}catch(b){return!0}}function fa(){return!ea()||localStorage.length>0}function ga(a){var b=this,c={};if(a)for(var d in a)c[d]=a[d];return c.keyPrefix=da(a,b._defaultConfig),fa()?(b._dbInfo=c,c.serializer=Ua,ua.resolve()):ua.reject()}function ha(a){var b=this,c=b.ready().then(function(){for(var a=b._dbInfo.keyPrefix,c=localStorage.length-1;c>=0;c--){var d=localStorage.key(c);0===d.indexOf(a)&&localStorage.removeItem(d)}});return g(c,a),c}function ia(a,b){var c=this;a=i(a);var d=c.ready().then(function(){var b=c._dbInfo,d=localStorage.getItem(b.keyPrefix+a);return d&&(d=b.serializer.deserialize(d)),d});return g(d,b),d}function ja(a,b){var c=this,d=c.ready().then(function(){for(var b=c._dbInfo,d=b.keyPrefix,e=d.length,f=localStorage.length,g=1,h=0;f>h;h++){var i=localStorage.key(h);if(0===i.indexOf(d)){var j=localStorage.getItem(i);if(j&&(j=b.serializer.deserialize(j)),j=a(j,i.substring(e),g++),void 0!==j)return j}}});return g(d,b),d}function ka(a,b){var c=this,d=c.ready().then(function(){var b,d=c._dbInfo;try{b=localStorage.key(a)}catch(e){b=null}return b&&(b=b.substring(d.keyPrefix.length)),b});return g(d,b),d}function la(a){var b=this,c=b.ready().then(function(){for(var a=b._dbInfo,c=localStorage.length,d=[],e=0;c>e;e++){var f=localStorage.key(e);0===f.indexOf(a.keyPrefix)&&d.push(f.substring(a.keyPrefix.length))}return d});return g(c,a),c}function ma(a){var b=this,c=b.keys().then(function(a){return a.length});return g(c,a),c}function na(a,b){var c=this;a=i(a);var d=c.ready().then(function(){var b=c._dbInfo;localStorage.removeItem(b.keyPrefix+a)});return g(d,b),d}function oa(a,b,c){var d=this;a=i(a);var e=d.ready().then(function(){void 0===b&&(b=null);var c=b;return new ua(function(e,f){var g=d._dbInfo;g.serializer.serialize(b,function(b,d){if(d)f(d);else try{localStorage.setItem(g.keyPrefix+a,b),e(c)}catch(h){("QuotaExceededError"===h.name||"NS_ERROR_DOM_QUOTA_REACHED"===h.name)&&f(h),f(h)}})})});return g(e,c),e}function pa(a,b){if(b=j.apply(this,arguments),a="function"!=typeof a&&a||{},!a.name){var c=this.config();a.name=a.name||c.name,a.storeName=a.storeName||c.storeName}var d,e=this;return d=a.name?new ua(function(b){b(a.storeName?da(a,e._defaultConfig):a.name+"/")}).then(function(a){for(var b=localStorage.length-1;b>=0;b--){var c=localStorage.key(b);0===c.indexOf(a)&&localStorage.removeItem(c)}}):ua.reject("Invalid arguments"),g(d,b),d}function qa(a,b){a[b]=function(){var c=arguments;return a.ready().then(function(){return a[b].apply(a,c)})}}function ra(){for(var a=1;ad;){if(Xa(a[d],b))return!0;d++}return!1},Za=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},$a={},_a={},ab={INDEXEDDB:Ba,WEBSQL:Va,LOCALSTORAGE:Wa},bb=[ab.INDEXEDDB._driver,ab.WEBSQL._driver,ab.LOCALSTORAGE._driver],cb=["dropInstance"],db=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(cb),eb={description:"",driver:bb.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1},fb=function(){function a(b){c(this,a);for(var d in ab)if(ab.hasOwnProperty(d)){var e=ab[d],f=e._driver;this[d]=f,$a[f]||this.defineDriver(e)}this._defaultConfig=ra({},eb),this._config=ra({},this._defaultConfig,b),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver)["catch"](function(){})}return a.prototype.config=function(a){if("object"===("undefined"==typeof a?"undefined":sa(a))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var b in a){if("storeName"===b&&(a[b]=a[b].replace(/\W/g,"_")),"version"===b&&"number"!=typeof a[b])return new Error("Database version must be a number.");this._config[b]=a[b]}return"driver"in a&&a.driver?this.setDriver(this._config.driver):!0}return"string"==typeof a?this._config[a]:this._config},a.prototype.defineDriver=function(a,b,c){var d=new ua(function(b,c){try{var d=a._driver,e=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!a._driver)return void c(e);for(var f=db.concat("_initStorage"),h=0,i=f.length;i>h;h++){var j=f[h],k=!Ya(cb,j);if((k||a[j])&&"function"!=typeof a[j])return void c(e)}var l=function(){for(var b=function(a){return function(){var b=new Error("Method "+a+" is not implemented by the current driver"),c=ua.reject(b);return g(c,arguments[arguments.length-1]),c}},c=0,d=cb.length;d>c;c++){var e=cb[c];a[e]||(a[e]=b(e))}};l();var m=function(c){$a[d]&&console.info("Redefining LocalForage driver: "+d),$a[d]=a,_a[d]=c,b()};"_support"in a?a._support&&"function"==typeof a._support?a._support().then(m,c):m(!!a._support):m(!0)}catch(n){c(n)}});return h(d,b,c),d},a.prototype.driver=function(){return this._driver||null},a.prototype.getDriver=function(a,b,c){var d=$a[a]?ua.resolve($a[a]):ua.reject(new Error("Driver not found."));return h(d,b,c),d},a.prototype.getSerializer=function(a){var b=ua.resolve(Ua);return h(b,a),b},a.prototype.ready=function(a){var b=this,c=b._driverSet.then(function(){return null===b._ready&&(b._ready=b._initDriver()),b._ready});return h(c,a,a),c},a.prototype.setDriver=function(a,b,c){function d(){g._config.driver=g.driver()}function e(a){return g._extend(a),d(),g._ready=g._initStorage(g._config),g._ready}function f(a){return function(){function b(){for(;cc;c++){var e=a[c];this.supports(e)&&b.push(e)}return b},a.prototype._wrapLibraryMethodsWithReady=function(){for(var a=0,b=db.length;b>a;a++)qa(this,db[a])},a.prototype.createInstance=function(b){return new a(b)},a}(),gb=new fb;b.exports=gb},{3:3}]},{},[4])(4)})}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],17:[function(a,b,c){(function(a){function d(a,b){for(var c=-1,d=a?a.length:0,e=0,f=[];++cc)return!1;var d=b.length-1;return c==d?b.pop():Yb.call(b,c,1),!0}function w(a){var b=this.__data__,c=P(b,a);return 0>c?void 0:b[c][1]}function x(a){return P(this.__data__,a)>-1}function y(a,b){var c=this.__data__,d=P(c,a);return 0>d?c.push([a,b]):c[d][1]=b,this}function z(a){var b=-1,c=a?a.length:0;for(this.clear();++bc;)a=a[va(b[c++])];return c&&c==d?a:void 0}function T(a){return Tb.call(a)}function U(a,b){return null!=a&&b in Object(a)}function V(a,b,c,d,e){return a===b?!0:null==a||null==b||!Fa(a)&&!Ga(b)?a!==a&&b!==b:W(a,b,V,c,d,e)}function W(a,b,c,d,e,f){var g=qc(a),h=qc(b),i=Wa,k=Wa;g||(i=oc(a),i=i==Va?cb:i),h||(k=oc(b),k=k==Va?cb:k);var l=i==cb&&!j(a),m=k==cb&&!j(b),n=i==k;if(n&&!l)return f||(f=new I),g||rc(a)?ha(a,b,c,d,e,f):ia(a,b,i,c,d,e,f);if(!(e&Sa)){var o=l&&Sb.call(a,"__wrapped__"),p=m&&Sb.call(b,"__wrapped__");if(o||p){var q=o?a.value():a,r=p?b.value():b;return f||(f=new I),c(q,r,d,e,f)}}return n?(f||(f=new I),ja(a,b,c,d,e,f)):!1}function X(a,b,c,d){var e=c.length,f=e,g=!d; if(null==a)return!f;for(a=Object(a);e--;){var h=c[e];if(g&&h[2]?h[1]!==a[h[0]]:!(h[0]in a))return!1}for(;++ei))return!1;var k=g.get(a);if(k&&g.get(b))return k==b;var l=-1,m=!0,n=f&Ra?new F:void 0;for(g.set(a,b),g.set(b,a);++l-1&&a%1==0&&b>a}function pa(a,b){if(qc(a))return!1;var c=typeof a;return"number"==c||"symbol"==c||"boolean"==c||null==a||Ha(a)?!0:vb.test(a)||!ub.test(a)||null!=b&&a in Object(b)}function qa(a){var b=typeof a;return"string"==b||"number"==b||"symbol"==b||"boolean"==b?"__proto__"!==a:null===a}function ra(a){return!!Qb&&Qb in a}function sa(a){var b=a&&a.constructor,c="function"==typeof b&&b.prototype||Ob;return a===c}function ta(a){return a===a&&!Fa(a)}function ua(a,b){return function(c){return null==c?!1:c[a]===b&&(void 0!==b||a in Object(c))}}function va(a){if("string"==typeof a||Ha(a))return a;var b=a+"";return"0"==b&&1/a==-Ta?"-0":b}function wa(a){if(null!=a){try{return Rb.call(a)}catch(b){}try{return a+""}catch(b){}}return""}function xa(a,b){var c=qc(a)?d:Q;return c(a,$(b,3))}function ya(a,b){if("function"!=typeof a||b&&"function"!=typeof b)throw new TypeError(Pa);var c=function(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;if(f.has(e))return f.get(e);var g=a.apply(this,d);return c.cache=f.set(e,g),g};return c.cache=new(ya.Cache||z),c}function za(a,b){return a===b||a!==a&&b!==b}function Aa(a){return Ca(a)&&Sb.call(a,"callee")&&(!Xb.call(a,"callee")||Tb.call(a)==Va)}function Ba(a){return null!=a&&Ea(a.length)&&!Da(a)}function Ca(a){return Ga(a)&&Ba(a)}function Da(a){var b=Fa(a)?Tb.call(a):"";return b==$a||b==_a}function Ea(a){return"number"==typeof a&&a>-1&&a%1==0&&Ua>=a}function Fa(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function Ga(a){return!!a&&"object"==typeof a}function Ha(a){return"symbol"==typeof a||Ga(a)&&Tb.call(a)==hb}function Ia(a){return null==a?"":da(a)}function Ja(a,b,c){var d=null==a?void 0:S(a,b);return void 0===d?c:d}function Ka(a,b){return null!=a&&na(a,b,U)}function La(a){return Ba(a)?O(a):_(a)}function Ma(a){return a}function Na(a){return pa(a)?f(va(a)):ca(a)}var Oa=200,Pa="Expected a function",Qa="__lodash_hash_undefined__",Ra=1,Sa=2,Ta=1/0,Ua=9007199254740991,Va="[object Arguments]",Wa="[object Array]",Xa="[object Boolean]",Ya="[object Date]",Za="[object Error]",$a="[object Function]",_a="[object GeneratorFunction]",ab="[object Map]",bb="[object Number]",cb="[object Object]",db="[object Promise]",eb="[object RegExp]",fb="[object Set]",gb="[object String]",hb="[object Symbol]",ib="[object WeakMap]",jb="[object ArrayBuffer]",kb="[object DataView]",lb="[object Float32Array]",mb="[object Float64Array]",nb="[object Int8Array]",ob="[object Int16Array]",pb="[object Int32Array]",qb="[object Uint8Array]",rb="[object Uint8ClampedArray]",sb="[object Uint16Array]",tb="[object Uint32Array]",ub=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,vb=/^\w*$/,wb=/^\./,xb=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,yb=/[\\^$.*+?()[\]{}|]/g,zb=/\\(\\)?/g,Ab=/^\[object .+?Constructor\]$/,Bb=/^(?:0|[1-9]\d*)$/,Cb={};Cb[lb]=Cb[mb]=Cb[nb]=Cb[ob]=Cb[pb]=Cb[qb]=Cb[rb]=Cb[sb]=Cb[tb]=!0,Cb[Va]=Cb[Wa]=Cb[jb]=Cb[Xa]=Cb[kb]=Cb[Ya]=Cb[Za]=Cb[$a]=Cb[ab]=Cb[bb]=Cb[cb]=Cb[eb]=Cb[fb]=Cb[gb]=Cb[ib]=!1;var Db="object"==typeof a&&a&&a.Object===Object&&a,Eb="object"==typeof self&&self&&self.Object===Object&&self,Fb=Db||Eb||Function("return this")(),Gb="object"==typeof c&&c&&!c.nodeType&&c,Hb=Gb&&"object"==typeof b&&b&&!b.nodeType&&b,Ib=Hb&&Hb.exports===Gb,Jb=Ib&&Db.process,Kb=function(){try{return Jb&&Jb.binding("util")}catch(a){}}(),Lb=Kb&&Kb.isTypedArray,Mb=Array.prototype,Nb=Function.prototype,Ob=Object.prototype,Pb=Fb["__core-js_shared__"],Qb=function(){var a=/[^.]+$/.exec(Pb&&Pb.keys&&Pb.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}(),Rb=Nb.toString,Sb=Ob.hasOwnProperty,Tb=Ob.toString,Ub=RegExp("^"+Rb.call(Sb).replace(yb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Vb=Fb.Symbol,Wb=Fb.Uint8Array,Xb=Ob.propertyIsEnumerable,Yb=Mb.splice,Zb=l(Object.keys,Object),$b=ma(Fb,"DataView"),_b=ma(Fb,"Map"),ac=ma(Fb,"Promise"),bc=ma(Fb,"Set"),cc=ma(Fb,"WeakMap"),dc=ma(Object,"create"),ec=wa($b),fc=wa(_b),gc=wa(ac),hc=wa(bc),ic=wa(cc),jc=Vb?Vb.prototype:void 0,kc=jc?jc.valueOf:void 0,lc=jc?jc.toString:void 0;n.prototype.clear=o,n.prototype["delete"]=p,n.prototype.get=q,n.prototype.has=r,n.prototype.set=s,t.prototype.clear=u,t.prototype["delete"]=v,t.prototype.get=w,t.prototype.has=x,t.prototype.set=y,z.prototype.clear=A,z.prototype["delete"]=B,z.prototype.get=C,z.prototype.has=D,z.prototype.set=E,F.prototype.add=F.prototype.push=G,F.prototype.has=H,I.prototype.clear=J,I.prototype["delete"]=K,I.prototype.get=L,I.prototype.has=M,I.prototype.set=N;var mc=fa(R),nc=ga(),oc=T;($b&&oc(new $b(new ArrayBuffer(1)))!=kb||_b&&oc(new _b)!=ab||ac&&oc(ac.resolve())!=db||bc&&oc(new bc)!=fb||cc&&oc(new cc)!=ib)&&(oc=function(a){var b=Tb.call(a),c=b==cb?a.constructor:void 0,d=c?wa(c):void 0;if(d)switch(d){case ec:return kb;case fc:return ab;case gc:return db;case hc:return fb;case ic:return ib}return b});var pc=ya(function(a){a=Ia(a);var b=[];return wb.test(a)&&b.push(""),a.replace(xb,function(a,c,d,e){b.push(d?e.replace(zb,"$1"):c||a)}),b});ya.Cache=z;var qc=Array.isArray,rc=Lb?h(Lb):Z;b.exports=xa}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],18:[function(a,b,c){(function(a){function d(a,b,c){switch(c.length){case 0:return a.call(b);case 1:return a.call(b,c[0]);case 2:return a.call(b,c[0],c[1]);case 3:return a.call(b,c[0],c[1],c[2])}return a.apply(b,c)}function e(a,b){for(var c=-1,d=a?a.length:0,e=Array(d);++cc)return!1;var d=b.length-1;return c==d?b.pop():fc.call(b,c,1),!0}function z(a){var b=this.__data__,c=S(b,a);return 0>c?void 0:b[c][1]}function A(a){return S(this.__data__,a)>-1}function B(a,b){var c=this.__data__,d=S(c,a);return 0>d?c.push([a,b]):c[d][1]=b,this}function C(a){var b=-1,c=a?a.length:0;for(this.clear();++b0&&c(i)?b>1?T(i,b-1,c,d,e):f(e,i):d||(e[e.length]=i)}return e}function U(a,b){return a&&yc(a,b,Ua)}function V(a,b){b=za(b,a)?[b]:ka(b);for(var c=0,d=b.length;null!=a&&d>c;)a=a[Fa(b[c++])];return c&&c==d?a:void 0}function W(a){return ac.call(a)}function X(a,b){return null!=a&&b in Object(a)}function Y(a,b,c,d,e){return a===b?!0:null==a||null==b||!Oa(a)&&!Pa(b)?a!==a&&b!==b:Z(a,b,Y,c,d,e)}function Z(a,b,c,d,e,f){var g=Cc(a),h=Cc(b),i=db,j=db;g||(i=zc(a),i=i==cb?lb:i),h||(j=zc(b),j=j==cb?lb:j);var k=i==lb&&!m(a),l=j==lb&&!m(b),n=i==j;if(n&&!k)return f||(f=new L),g||Dc(a)?pa(a,b,c,d,e,f):qa(a,b,i,c,d,e,f);if(!(e&_a)){var o=k&&_b.call(a,"__wrapped__"),p=l&&_b.call(b,"__wrapped__");if(o||p){var q=o?a.value():a,r=p?b.value():b;return f||(f=new L),c(q,r,d,e,f)}}return n?(f||(f=new L),ra(a,b,c,d,e,f)):!1}function $(a,b,c,d){var e=c.length,f=e,g=!d;if(null==a)return!f;for(a=Object(a);e--;){var h=c[e];if(g&&h[2]?h[1]!==a[h[0]]:!(h[0]in a))return!1}for(;++eb||f&&g&&i&&!h&&!j||d&&g&&i||!c&&i||!e)return 1;if(!d&&!f&&!j&&b>a||j&&c&&e&&!d&&!f||h&&c&&e||!g&&e||!i)return-1}return 0}function ma(a,b,c){for(var d=-1,e=a.criteria,f=b.criteria,g=e.length,h=c.length;++d=h)return i;var j=c[d];return i*("desc"==j?-1:1)}}return a.index-b.index}function na(a,b){return function(c,d){if(null==c)return c;if(!Ka(c))return a(c,d);for(var e=c.length,f=b?e:-1,g=Object(c);(b?f--:++fi))return!1;var k=f.get(a);if(k&&f.get(b))return k==b;var l=-1,m=!0,n=e&$a?new I:void 0;for(f.set(a,b),f.set(b,a);++l-1&&a%1==0&&b>a}function ya(a,b,c){if(!Oa(c))return!1;var d=typeof b;return("number"==d?Ka(c)&&xa(b,c.length):"string"==d&&b in c)?Ia(c[b],a):!1}function za(a,b){if(Cc(a))return!1;var c=typeof a;return"number"==c||"symbol"==c||"boolean"==c||null==a||Qa(a)?!0:Eb.test(a)||!Db.test(a)||null!=b&&a in Object(b)}function Aa(a){var b=typeof a;return"string"==b||"number"==b||"symbol"==b||"boolean"==b?"__proto__"!==a:null===a}function Ba(a){return!!Zb&&Zb in a}function Ca(a){var b=a&&a.constructor,c="function"==typeof b&&b.prototype||Xb;return a===c}function Da(a){return a===a&&!Oa(a)}function Ea(a,b){return function(c){return null==c?!1:c[a]===b&&(void 0!==b||a in Object(c))}}function Fa(a){if("string"==typeof a||Qa(a))return a;var b=a+"";return"0"==b&&1/a==-ab?"-0":b}function Ga(a){if(null!=a){try{return $b.call(a)}catch(b){}try{return a+""}catch(b){}}return""}function Ha(a,b){if("function"!=typeof a||b&&"function"!=typeof b)throw new TypeError(Ya);var c=function(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;if(f.has(e))return f.get(e);var g=a.apply(this,d);return c.cache=f.set(e,g),g};return c.cache=new(Ha.Cache||C),c}function Ia(a,b){return a===b||a!==a&&b!==b}function Ja(a){return La(a)&&_b.call(a,"callee")&&(!ec.call(a,"callee")||ac.call(a)==cb)}function Ka(a){return null!=a&&Na(a.length)&&!Ma(a)}function La(a){return Pa(a)&&Ka(a)}function Ma(a){var b=Oa(a)?ac.call(a):"";return b==hb||b==ib}function Na(a){return"number"==typeof a&&a>-1&&a%1==0&&bb>=a}function Oa(a){var b=typeof a;return!!a&&("object"==b||"function"==b)}function Pa(a){return!!a&&"object"==typeof a}function Qa(a){return"symbol"==typeof a||Pa(a)&&ac.call(a)==qb}function Ra(a){return null==a?"":ja(a)}function Sa(a,b,c){var d=null==a?void 0:V(a,b);return void 0===d?c:d}function Ta(a,b){return null!=a&&va(a,b,X)}function Ua(a){return Ka(a)?R(a):ca(a)}function Va(a){return a}function Wa(a){return za(a)?h(Fa(a)):ha(a)}var Xa=200,Ya="Expected a function",Za="__lodash_hash_undefined__",$a=1,_a=2,ab=1/0,bb=9007199254740991,cb="[object Arguments]",db="[object Array]",eb="[object Boolean]",fb="[object Date]",gb="[object Error]",hb="[object Function]",ib="[object GeneratorFunction]",jb="[object Map]",kb="[object Number]",lb="[object Object]",mb="[object Promise]",nb="[object RegExp]",ob="[object Set]",pb="[object String]",qb="[object Symbol]",rb="[object WeakMap]",sb="[object ArrayBuffer]",tb="[object DataView]",ub="[object Float32Array]",vb="[object Float64Array]",wb="[object Int8Array]",xb="[object Int16Array]",yb="[object Int32Array]",zb="[object Uint8Array]",Ab="[object Uint8ClampedArray]",Bb="[object Uint16Array]",Cb="[object Uint32Array]",Db=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Eb=/^\w*$/,Fb=/^\./,Gb=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Hb=/[\\^$.*+?()[\]{}|]/g,Ib=/\\(\\)?/g,Jb=/^\[object .+?Constructor\]$/,Kb=/^(?:0|[1-9]\d*)$/,Lb={};Lb[ub]=Lb[vb]=Lb[wb]=Lb[xb]=Lb[yb]=Lb[zb]=Lb[Ab]=Lb[Bb]=Lb[Cb]=!0,Lb[cb]=Lb[db]=Lb[sb]=Lb[eb]=Lb[tb]=Lb[fb]=Lb[gb]=Lb[hb]=Lb[jb]=Lb[kb]=Lb[lb]=Lb[nb]=Lb[ob]=Lb[pb]=Lb[rb]=!1;var Mb="object"==typeof a&&a&&a.Object===Object&&a,Nb="object"==typeof self&&self&&self.Object===Object&&self,Ob=Mb||Nb||Function("return this")(),Pb="object"==typeof c&&c&&!c.nodeType&&c,Qb=Pb&&"object"==typeof b&&b&&!b.nodeType&&b,Rb=Qb&&Qb.exports===Pb,Sb=Rb&&Mb.process,Tb=function(){try{return Sb&&Sb.binding("util")}catch(a){}}(),Ub=Tb&&Tb.isTypedArray,Vb=Array.prototype,Wb=Function.prototype,Xb=Object.prototype,Yb=Ob["__core-js_shared__"],Zb=function(){var a=/[^.]+$/.exec(Yb&&Yb.keys&&Yb.keys.IE_PROTO||"");return a?"Symbol(src)_1."+a:""}(),$b=Wb.toString,_b=Xb.hasOwnProperty,ac=Xb.toString,bc=RegExp("^"+$b.call(_b).replace(Hb,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),cc=Ob.Symbol,dc=Ob.Uint8Array,ec=Xb.propertyIsEnumerable,fc=Vb.splice,gc=cc?cc.isConcatSpreadable:void 0,hc=o(Object.keys,Object),ic=Math.max,jc=ua(Ob,"DataView"),kc=ua(Ob,"Map"),lc=ua(Ob,"Promise"),mc=ua(Ob,"Set"),nc=ua(Ob,"WeakMap"),oc=ua(Object,"create"),pc=Ga(jc),qc=Ga(kc),rc=Ga(lc),sc=Ga(mc),tc=Ga(nc),uc=cc?cc.prototype:void 0,vc=uc?uc.valueOf:void 0,wc=uc?uc.toString:void 0;q.prototype.clear=r,q.prototype["delete"]=s,q.prototype.get=t,q.prototype.has=u,q.prototype.set=v,w.prototype.clear=x,w.prototype["delete"]=y,w.prototype.get=z,w.prototype.has=A,w.prototype.set=B,C.prototype.clear=D,C.prototype["delete"]=E,C.prototype.get=F,C.prototype.has=G,C.prototype.set=H,I.prototype.add=I.prototype.push=J,I.prototype.has=K,L.prototype.clear=M,L.prototype["delete"]=N,L.prototype.get=O,L.prototype.has=P,L.prototype.set=Q;var xc=na(U),yc=oa(),zc=W;(jc&&zc(new jc(new ArrayBuffer(1)))!=tb||kc&&zc(new kc)!=jb||lc&&zc(lc.resolve())!=mb||mc&&zc(new mc)!=ob||nc&&zc(new nc)!=rb)&&(zc=function(a){var b=ac.call(a),c=b==lb?a.constructor:void 0,d=c?Ga(c):void 0;if(d)switch(d){case pc:return tb;case qc:return jb;case rc:return mb;case sc:return ob;case tc:return rb}return b});var Ac=Ha(function(a){a=Ra(a);var b=[];return Fb.test(a)&&b.push(""),a.replace(Gb,function(a,c,d,e){b.push(d?e.replace(Ib,"$1"):c||a)}),b}),Bc=ia(function(a,b){if(null==a)return[];var c=b.length;return c>1&&ya(a,b[0],b[1])?b=[]:c>2&&ya(b[0],b[1],b[2])&&(b=[b[0]]),ga(a,T(b,1),[])});Ha.Cache=C;var Cc=Array.isArray,Dc=Ub?k(Ub):aa;b.exports=Bc}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],19:[function(a,b,c){(function(a){(function(){function d(a,b,c){switch(c.length){case 0:return a.call(b);case 1:return a.call(b,c[0]);case 2:return a.call(b,c[0],c[1]);case 3:return a.call(b,c[0],c[1],c[2])}return a.apply(b,c)}function e(a,b,c,d){for(var e=-1,f=null==a?0:a.length;++e-1}function k(a,b,c){for(var d=-1,e=null==a?0:a.length;++d-1;);return c}function J(a,b){for(var c=a.length;c--&&u(b,a[c],0)>-1;);return c}function K(a,b){for(var c=a.length,d=0;c--;)a[c]===b&&++d;return d}function L(a){return"\\"+Yc[a]}function M(a,b){return null==a?aa:a[b]}function N(a){return Pc.test(a)}function O(a){return Qc.test(a)}function P(a){for(var b,c=[];!(b=a.next()).done;)c.push(b.value);return c}function Q(a){var b=-1,c=Array(a.size);return a.forEach(function(a,d){c[++b]=[d,a]}),c}function R(a,b){return function(c){return a(b(c))}}function S(a,b){for(var c=-1,d=a.length,e=0,f=[];++c>>1,La=[["ary",ua],["bind",na],["bindKey",oa],["curry",qa],["curryRight",ra],["flip",wa],["partial",sa],["partialRight",ta],["rearg",va]],Ma="[object Arguments]",Na="[object Array]",Oa="[object AsyncFunction]",Pa="[object Boolean]",Qa="[object Date]",Ra="[object DOMException]",Sa="[object Error]",Ta="[object Function]",Ua="[object GeneratorFunction]",Va="[object Map]",Wa="[object Number]",Xa="[object Null]",Ya="[object Object]",Za="[object Promise]",$a="[object Proxy]",_a="[object RegExp]",ab="[object Set]",bb="[object String]",cb="[object Symbol]",db="[object Undefined]",eb="[object WeakMap]",fb="[object WeakSet]",gb="[object ArrayBuffer]",hb="[object DataView]",ib="[object Float32Array]",jb="[object Float64Array]",kb="[object Int8Array]",lb="[object Int16Array]",mb="[object Int32Array]",nb="[object Uint8Array]",ob="[object Uint8ClampedArray]",pb="[object Uint16Array]",qb="[object Uint32Array]",rb=/\b__p \+= '';/g,sb=/\b(__p \+=) '' \+/g,tb=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ub=/&(?:amp|lt|gt|quot|#39);/g,vb=/[&<>"']/g,wb=RegExp(ub.source),xb=RegExp(vb.source),yb=/<%-([\s\S]+?)%>/g,zb=/<%([\s\S]+?)%>/g,Ab=/<%=([\s\S]+?)%>/g,Bb=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Cb=/^\w*$/,Db=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Eb=/[\\^$.*+?()[\]{}|]/g,Fb=RegExp(Eb.source),Gb=/^\s+|\s+$/g,Hb=/^\s+/,Ib=/\s+$/,Jb=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Kb=/\{\n\/\* \[wrapped with (.+)\] \*/,Lb=/,? & /,Mb=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Nb=/\\(\\)?/g,Ob=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Pb=/\w*$/,Qb=/^[-+]0x[0-9a-f]+$/i,Rb=/^0b[01]+$/i,Sb=/^\[object .+?Constructor\]$/,Tb=/^0o[0-7]+$/i,Ub=/^(?:0|[1-9]\d*)$/,Vb=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Wb=/($^)/,Xb=/['\n\r\u2028\u2029\\]/g,Yb="\\ud800-\\udfff",Zb="\\u0300-\\u036f",$b="\\ufe20-\\ufe2f",_b="\\u20d0-\\u20ff",ac=Zb+$b+_b,bc="\\u2700-\\u27bf",cc="a-z\\xdf-\\xf6\\xf8-\\xff",dc="\\xac\\xb1\\xd7\\xf7",ec="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",fc="\\u2000-\\u206f",gc=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",hc="A-Z\\xc0-\\xd6\\xd8-\\xde",ic="\\ufe0e\\ufe0f",jc=dc+ec+fc+gc,kc="['’]",lc="["+Yb+"]",mc="["+jc+"]",nc="["+ac+"]",oc="\\d+",pc="["+bc+"]",qc="["+cc+"]",rc="[^"+Yb+jc+oc+bc+cc+hc+"]",sc="\\ud83c[\\udffb-\\udfff]",tc="(?:"+nc+"|"+sc+")",uc="[^"+Yb+"]",vc="(?:\\ud83c[\\udde6-\\uddff]){2}",wc="[\\ud800-\\udbff][\\udc00-\\udfff]",xc="["+hc+"]",yc="\\u200d",zc="(?:"+qc+"|"+rc+")",Ac="(?:"+xc+"|"+rc+")",Bc="(?:"+kc+"(?:d|ll|m|re|s|t|ve))?",Cc="(?:"+kc+"(?:D|LL|M|RE|S|T|VE))?",Dc=tc+"?",Ec="["+ic+"]?",Fc="(?:"+yc+"(?:"+[uc,vc,wc].join("|")+")"+Ec+Dc+")*",Gc="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Hc="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Ic=Ec+Dc+Fc,Jc="(?:"+[pc,vc,wc].join("|")+")"+Ic,Kc="(?:"+[uc+nc+"?",nc,vc,wc,lc].join("|")+")",Lc=RegExp(kc,"g"),Mc=RegExp(nc,"g"),Nc=RegExp(sc+"(?="+sc+")|"+Kc+Ic,"g"),Oc=RegExp([xc+"?"+qc+"+"+Bc+"(?="+[mc,xc,"$"].join("|")+")",Ac+"+"+Cc+"(?="+[mc,xc+zc,"$"].join("|")+")",xc+"?"+zc+"+"+Bc,xc+"+"+Cc,Hc,Gc,oc,Jc].join("|"),"g"),Pc=RegExp("["+yc+Yb+ac+ic+"]"),Qc=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Rc=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Sc=-1,Tc={};Tc[ib]=Tc[jb]=Tc[kb]=Tc[lb]=Tc[mb]=Tc[nb]=Tc[ob]=Tc[pb]=Tc[qb]=!0,Tc[Ma]=Tc[Na]=Tc[gb]=Tc[Pa]=Tc[hb]=Tc[Qa]=Tc[Sa]=Tc[Ta]=Tc[Va]=Tc[Wa]=Tc[Ya]=Tc[_a]=Tc[ab]=Tc[bb]=Tc[eb]=!1;var Uc={};Uc[Ma]=Uc[Na]=Uc[gb]=Uc[hb]=Uc[Pa]=Uc[Qa]=Uc[ib]=Uc[jb]=Uc[kb]=Uc[lb]=Uc[mb]=Uc[Va]=Uc[Wa]=Uc[Ya]=Uc[_a]=Uc[ab]=Uc[bb]=Uc[cb]=Uc[nb]=Uc[ob]=Uc[pb]=Uc[qb]=!0,Uc[Sa]=Uc[Ta]=Uc[eb]=!1;var Vc={"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S", "Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"},Wc={"&":"&","<":"<",">":">",'"':""","'":"'"},Xc={"&":"&","<":"<",">":">",""":'"',"'":"'"},Yc={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Zc=parseFloat,$c=parseInt,_c="object"==typeof a&&a&&a.Object===Object&&a,ad="object"==typeof self&&self&&self.Object===Object&&self,bd=_c||ad||Function("return this")(),cd="object"==typeof c&&c&&!c.nodeType&&c,dd=cd&&"object"==typeof b&&b&&!b.nodeType&&b,ed=dd&&dd.exports===cd,fd=ed&&_c.process,gd=function(){try{var a=dd&&dd.require&&dd.require("util").types;return a?a:fd&&fd.binding&&fd.binding("util")}catch(b){}}(),hd=gd&&gd.isArrayBuffer,id=gd&&gd.isDate,jd=gd&&gd.isMap,kd=gd&&gd.isRegExp,ld=gd&&gd.isSet,md=gd&&gd.isTypedArray,nd=y("length"),od=z(Vc),pd=z(Wc),qd=z(Xc),rd=function td(a){function b(a){if(ei(a)&&!pm(a)&&!(a instanceof z)){if(a instanceof q)return a;if(pk.call(a,"__wrapped__"))return bg(a)}return new q(a)}function c(){}function q(a,b){this.__wrapped__=a,this.__actions__=[],this.__chain__=!!b,this.__index__=0,this.__values__=aa}function z(a){this.__wrapped__=a,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Ia,this.__views__=[]}function V(){var a=new z(this.__wrapped__);return a.__actions__=Ie(this.__actions__),a.__dir__=this.__dir__,a.__filtered__=this.__filtered__,a.__iteratees__=Ie(this.__iteratees__),a.__takeCount__=this.__takeCount__,a.__views__=Ie(this.__views__),a}function Z(){if(this.__filtered__){var a=new z(this);a.__dir__=-1,a.__filtered__=!0}else a=this.clone(),a.__dir__*=-1;return a}function $(){var a=this.__wrapped__.value(),b=this.__dir__,c=pm(a),d=0>b,e=c?a.length:0,f=yf(0,e,this.__views__),g=f.start,h=f.end,i=h-g,j=d?h:g-1,k=this.__iteratees__,l=k.length,m=0,n=Tk(i,this.__takeCount__);if(!c||!d&&e==i&&n==i)return re(a,this.__actions__);var o=[];a:for(;i--&&n>m;){j+=b;for(var p=-1,q=a[j];++pc)return!1;var d=b.length-1;return c==d?b.pop():Dk.call(b,c,1),--this.size,!0}function ec(a){var b=this.__data__,c=Cc(b,a);return 0>c?aa:b[c][1]}function fc(a){return Cc(this.__data__,a)>-1}function gc(a,b){var c=this.__data__,d=Cc(c,a);return 0>d?(++this.size,c.push([a,b])):c[d][1]=b,this}function hc(a){var b=-1,c=null==a?0:a.length;for(this.clear();++b=a?a:c),b!==aa&&(a=a>=b?a:b)),a}function Jc(a,b,c,d,e,g){var h,i=b&ia,j=b&ja,k=b&ka;if(c&&(h=e?c(a,d,e,g):c(a)),h!==aa)return h;if(!di(a))return a;var l=pm(a);if(l){if(h=Bf(a),!i)return Ie(a,h)}else{var m=zl(a),n=m==Ta||m==Ua;if(rm(a))return ye(a,i);if(m==Ya||m==Ma||n&&!e){if(h=j||n?{}:Cf(a),!i)return j?Le(a,Fc(h,a)):Ke(a,Ec(h,a))}else{if(!Uc[m])return e?a:{};h=Df(a,m,i)}}g||(g=new qc);var o=g.get(a);if(o)return o;if(g.set(a,h),vm(a))return a.forEach(function(d){h.add(Jc(d,b,c,d,a,g))}),h;if(tm(a))return a.forEach(function(d,e){h.set(e,Jc(d,b,c,e,a,g))}),h;var p=k?j?qf:pf:j?Oi:Ni,q=l?aa:p(a);return f(q||a,function(d,e){q&&(e=d,d=a[e]),Bc(h,e,Jc(d,b,c,e,a,g))}),h}function Kc(a){var b=Ni(a);return function(c){return Nc(c,a,b)}}function Nc(a,b,c){var d=c.length;if(null==a)return!d;for(a=gk(a);d--;){var e=c[d],f=b[e],g=a[e];if(g===aa&&!(e in a)||!f(g))return!1}return!0}function Oc(a,b,c){if("function"!=typeof a)throw new jk(ea);return Cl(function(){a.apply(aa,c)},b)}function Pc(a,b,c,d){var e=-1,f=j,g=!0,h=a.length,i=[],m=b.length;if(!h)return i;c&&(b=l(b,F(c))),d?(f=k,g=!1):b.length>=ca&&(f=H,g=!1,b=new nc(b));a:for(;++ec&&(c=-c>e?0:e+c),d=d===aa||d>e?e:vi(d),0>d&&(d+=e),d=c>d?0:wi(d);d>c;)a[c++]=b;return a}function Xc(a,b){var c=[];return nl(a,function(a,d,e){b(a,d,e)&&c.push(a)}),c}function Yc(a,b,c,d,e){var f=-1,g=a.length;for(c||(c=Ff),e||(e=[]);++f0&&c(h)?b>1?Yc(h,b-1,c,d,e):m(e,h):d||(e[e.length]=h)}return e}function _c(a,b){return a&&pl(a,b,Ni)}function ad(a,b){return a&&ql(a,b,Ni)}function cd(a,b){return i(b,function(b){return ai(a[b])})}function dd(a,b){b=we(b,a);for(var c=0,d=b.length;null!=a&&d>c;)a=a[$f(b[c++])];return c&&c==d?a:aa}function fd(a,b,c){var d=b(a);return pm(a)?d:m(d,c(a))}function gd(a){return null==a?a===aa?db:Xa:Gk&&Gk in gk(a)?xf(a):Sf(a)}function nd(a,b){return a>b}function rd(a,b){return null!=a&&pk.call(a,b)}function ud(a,b){return null!=a&&b in gk(a)}function vd(a,b,c){return a>=Tk(b,c)&&a=120&&n.length>=120)?new nc(g&&n):aa}n=a[0];var o=-1,p=h[0];a:for(;++oa}function Od(a,b){var c=-1,d=Th(a)?bk(a.length):[];return nl(a,function(a,e,f){d[++c]=b(a,e,f)}),d}function Pd(a){var b=vf(a);return 1==b.length&&b[0][2]?Of(b[0][0],b[0][1]):function(c){return c===a||Fd(c,a,b)}}function Qd(a,b){return If(a)&&Nf(b)?Of($f(a),b):function(c){var d=Ki(c,a);return d===aa&&d===b?Mi(c,a):Cd(b,d,la|ma)}}function Rd(a,b,c,d,e){a!==b&&pl(b,function(f,g){if(di(f))e||(e=new qc),Sd(a,b,g,c,Rd,d,e);else{var h=d?d(Wf(a,g),f,g+"",a,b,e):aa;h===aa&&(h=f),Ac(a,g,h)}},Oi)}function Sd(a,b,c,d,e,f,g){var h=Wf(a,c),i=Wf(b,c),j=g.get(i);if(j)return void Ac(a,c,j);var k=f?f(h,i,c+"",a,b,g):aa,l=k===aa;if(l){var m=pm(i),n=!m&&rm(i),o=!m&&!n&&wm(i);k=i,m||n||o?pm(h)?k=h:Uh(h)?k=Ie(h):n?(l=!1,k=ye(i,!0)):o?(l=!1,k=De(i,!0)):k=[]:mi(i)||om(i)?(k=h,om(h)?k=yi(h):(!di(h)||ai(h))&&(k=Cf(i))):l=!1}l&&(g.set(i,k),e(k,i,d,f,g),g["delete"](i)),Ac(a,c,k)}function Td(a,b){var c=a.length;if(c)return b+=0>b?c:0,Gf(b,c)?a[b]:aa}function Ud(a,b,c){var d=-1;b=l(b.length?b:[Dj],F(tf()));var e=Od(a,function(a){var c=l(b,function(b){return b(a)});return{criteria:c,index:++d,value:a}});return B(e,function(a,b){return Fe(a,b,c)})}function Vd(a,b){return Wd(a,b,function(b,c){return Mi(a,c)})}function Wd(a,b,c){for(var d=-1,e=b.length,f={};++d-1;)h!==a&&Dk.call(h,i,1),Dk.call(a,i,1);return a}function Zd(a,b){for(var c=a?b.length:0,d=c-1;c--;){var e=b[c];if(c==d||e!==f){var f=e;Gf(e)?Dk.call(a,e,1):oe(a,e)}}return a}function $d(a,b){return a+Mk(Wk()*(b-a+1))}function _d(a,b,c,d){for(var e=-1,f=Sk(Lk((b-a)/(c||1)),0),g=bk(f);f--;)g[d?f:++e]=a,a+=c;return g}function ae(a,b){var c="";if(!a||1>b||b>Fa)return c;do b%2&&(c+=a),b=Mk(b/2),b&&(a+=a);while(b);return c}function be(a,b){return Dl(Tf(a,b,Dj),a+"")}function ce(a){return xc($i(a))}function de(a,b){var c=$i(a);return Zf(c,Ic(b,0,c.length))}function ee(a,b,c,d){if(!di(a))return a;b=we(b,a);for(var e=-1,f=b.length,g=f-1,h=a;null!=h&&++eb&&(b=-b>e?0:e+b),c=c>e?e:c,0>c&&(c+=e),e=b>c?0:c-b>>>0,b>>>=0;for(var f=bk(e);++d=e){for(;e>d;){var f=d+e>>>1,g=a[f];null!==g&&!pi(g)&&(c?b>=g:b>g)?d=f+1:e=f}return e}return je(a,b,Dj,c)}function je(a,b,c,d){b=c(b);for(var e=0,f=null==a?0:a.length,g=b!==b,h=null===b,i=pi(b),j=b===aa;f>e;){var k=Mk((e+f)/2),l=c(a[k]),m=l!==aa,n=null===l,o=l===l,p=pi(l);if(g)var q=d||o;else q=j?o&&(d||m):h?o&&m&&(d||!n):i?o&&m&&!n&&(d||!p):n||p?!1:d?b>=l:b>l;q?e=k+1:f=k}return Tk(f,Ja)}function ke(a,b){for(var c=-1,d=a.length,e=0,f=[];++c=ca){var l=b?null:vl(a);if(l)return T(l);g=!1,e=H,i=new nc}else i=b?[]:h;a:for(;++dd)return d?ne(a[0]):[];for(var e=-1,f=bk(d);++ed?b[d]:aa;c(g,a[d],h)}return g}function ue(a){return Uh(a)?a:[]}function ve(a){return"function"==typeof a?a:Dj}function we(a,b){return pm(a)?a:If(a,b)?[a]:El(Ai(a))}function xe(a,b,c){var d=a.length;return c=c===aa?d:c,!b&&c>=d?a:ge(a,b,c)}function ye(a,b){if(b)return a.slice();var c=a.length,d=zk?zk(c):new a.constructor(c);return a.copy(d),d}function ze(a){var b=new a.constructor(a.byteLength);return new yk(b).set(new yk(a)),b}function Ae(a,b){var c=b?ze(a.buffer):a.buffer;return new a.constructor(c,a.byteOffset,a.byteLength)}function Be(a){var b=new a.constructor(a.source,Pb.exec(a));return b.lastIndex=a.lastIndex,b}function Ce(a){return kl?gk(kl.call(a)):{}}function De(a,b){var c=b?ze(a.buffer):a.buffer;return new a.constructor(c,a.byteOffset,a.length)}function Ee(a,b){if(a!==b){var c=a!==aa,d=null===a,e=a===a,f=pi(a),g=b!==aa,h=null===b,i=b===b,j=pi(b);if(!h&&!j&&!f&&a>b||f&&g&&i&&!h&&!j||d&&g&&i||!c&&i||!e)return 1;if(!d&&!f&&!j&&b>a||j&&c&&e&&!d&&!f||h&&c&&e||!g&&e||!i)return-1}return 0}function Fe(a,b,c){for(var d=-1,e=a.criteria,f=b.criteria,g=e.length,h=c.length;++d=h)return i;var j=c[d];return i*("desc"==j?-1:1)}}return a.index-b.index}function Ge(a,b,c,d){for(var e=-1,f=a.length,g=c.length,h=-1,i=b.length,j=Sk(f-g,0),k=bk(i+j),l=!d;++he)&&(k[c[e]]=a[e]);for(;j--;)k[h++]=a[e++];return k}function He(a,b,c,d){for(var e=-1,f=a.length,g=-1,h=c.length,i=-1,j=b.length,k=Sk(f-h,0),l=bk(k+j),m=!d;++ee)&&(l[n+c[g]]=a[e++]);return l}function Ie(a,b){var c=-1,d=a.length;for(b||(b=bk(d));++c1?c[e-1]:aa,g=e>2?c[2]:aa;for(f=a.length>3&&"function"==typeof f?(e--,f):aa,g&&Hf(c[0],c[1],g)&&(f=3>e?aa:f,e=1),b=gk(b);++dg&&h[0]!==j&&h[g-1]!==j?[]:S(h,j);if(g-=k.length,c>g)return df(a,b,Xe,e.placeholder,aa,h,k,aa,aa,c-g);var l=this&&this!==bd&&this instanceof e?f:a;return d(l,this,h)}var f=Te(a);return e}function Ve(a){return function(b,c,d){var e=gk(b);if(!Th(b)){var f=tf(c,3);b=Ni(b),c=function(a){return f(e[a],a,e)}}var g=a(b,c,d);return g>-1?e[f?b[g]:g]:aa}}function We(a){return of(function(b){var c=b.length,d=c,e=q.prototype.thru;for(a&&b.reverse();d--;){var f=b[d];if("function"!=typeof f)throw new jk(ea);if(e&&!g&&"wrapper"==rf(f))var g=new q([],!0)}for(d=g?d:c;++dr){var w=S(s,u);return df(a,b,Xe,k.placeholder,c,s,w,h,i,j-r)}var x=m?c:this,y=n?x[a]:a;return r=s.length,h?s=Vf(s,h):p&&r>1&&s.reverse(),l&&r>i&&(s.length=i),this&&this!==bd&&this instanceof k&&(y=q||Te(y)),y.apply(x,s)}var l=b&ua,m=b&na,n=b&oa,o=b&(qa|ra),p=b&wa,q=n?aa:Te(a);return k}function Ye(a,b){return function(c,d){return xd(c,a,b(d),{})}}function Ze(a,b){return function(c,d){var e;if(c===aa&&d===aa)return b;if(c!==aa&&(e=c),d!==aa){if(e===aa)return d;"string"==typeof c||"string"==typeof d?(c=me(c),d=me(d)):(c=le(c),d=le(d)),e=a(c,d)}return e}}function $e(a){return of(function(b){return b=l(b,F(tf())),be(function(c){var e=this;return a(b,function(a){return d(a,e,c)})})})}function _e(a,b){b=b===aa?" ":me(b);var c=b.length;if(2>c)return c?ae(b,a):b;var d=ae(b,Lk(a/X(b)));return N(b)?xe(Y(d),0,a).join(""):d.slice(0,a)}function af(a,b,c,e){function f(){for(var b=-1,i=arguments.length,j=-1,k=e.length,l=bk(k+i),m=this&&this!==bd&&this instanceof f?h:a;++jb?1:-1:ui(d),_d(b,c,d,a)}}function cf(a){return function(b,c){return("string"!=typeof b||"string"!=typeof c)&&(b=xi(b),c=xi(c)),a(b,c)}}function df(a,b,c,d,e,f,g,h,i,j){var k=b&qa,l=k?g:aa,m=k?aa:g,n=k?f:aa,o=k?aa:f;b|=k?sa:ta,b&=~(k?ta:sa),b&pa||(b&=~(na|oa));var p=[a,b,e,n,l,o,m,h,i,j],q=c.apply(aa,p);return Kf(a)&&Bl(q,p),q.placeholder=d,Xf(q,a,b)}function ef(a){var b=fk[a];return function(a,c){if(a=xi(a),c=null==c?0:Tk(vi(c),292)){var d=(Ai(a)+"e").split("e"),e=b(d[0]+"e"+(+d[1]+c));return d=(Ai(e)+"e").split("e"),+(d[0]+"e"+(+d[1]-c))}return b(a)}}function ff(a){return function(b){var c=zl(b);return c==Va?Q(b):c==ab?U(b):E(b,a(b))}}function gf(a,b,c,d,e,f,g,h){var i=b&oa;if(!i&&"function"!=typeof a)throw new jk(ea);var j=d?d.length:0;if(j||(b&=~(sa|ta),d=e=aa),g=g===aa?g:Sk(vi(g),0),h=h===aa?h:vi(h),j-=e?e.length:0,b&ta){var k=d,l=e;d=e=aa}var m=i?aa:wl(a),n=[a,b,c,d,e,k,l,f,g,h];if(m&&Qf(n,m),a=n[0],b=n[1],c=n[2],d=n[3],e=n[4],h=n[9]=n[9]===aa?i?0:a.length:Sk(n[9]-j,0),!h&&b&(qa|ra)&&(b&=~(qa|ra)),b&&b!=na)o=b==qa||b==ra?Ue(a,b,h):b!=sa&&b!=(na|sa)||e.length?Xe.apply(aa,n):af(a,b,c,d);else var o=Qe(a,b,c);var p=m?rl:Bl;return Xf(p(o,n),a,b)}function hf(a,b,c,d){return a===aa||Sh(a,mk[c])&&!pk.call(d,c)?b:a}function jf(a,b,c,d,e,f){return di(a)&&di(b)&&(f.set(b,a),Rd(a,b,aa,jf,f),f["delete"](b)),a}function kf(a){return mi(a)?aa:a}function lf(a,b,c,d,e,f){var g=c&la,h=a.length,i=b.length;if(h!=i&&!(g&&i>h))return!1;var j=f.get(a);if(j&&f.get(b))return j==b;var k=-1,l=!0,m=c&ma?new nc:aa;for(f.set(a,b),f.set(b,a);++k1?"& ":"")+b[d],b=b.join(c>2?", ":" "),a.replace(Jb,"{\n/* [wrapped with "+b+"] */\n")}function Ff(a){return pm(a)||om(a)||!!(Ek&&a&&a[Ek])}function Gf(a,b){var c=typeof a;return b=null==b?Fa:b,!!b&&("number"==c||"symbol"!=c&&Ub.test(a))&&a>-1&&a%1==0&&b>a}function Hf(a,b,c){if(!di(c))return!1;var d=typeof b;return("number"==d?Th(c)&&Gf(b,c.length):"string"==d&&b in c)?Sh(c[b],a):!1}function If(a,b){if(pm(a))return!1;var c=typeof a;return"number"==c||"symbol"==c||"boolean"==c||null==a||pi(a)?!0:Cb.test(a)||!Bb.test(a)||null!=b&&a in gk(b)}function Jf(a){var b=typeof a;return"string"==b||"number"==b||"symbol"==b||"boolean"==b?"__proto__"!==a:null===a}function Kf(a){var c=rf(a),d=b[c];if("function"!=typeof d||!(c in z.prototype))return!1;if(a===d)return!0;var e=wl(d);return!!e&&a===e[0]}function Lf(a){return!!rk&&rk in a}function Mf(a){var b=a&&a.constructor,c="function"==typeof b&&b.prototype||mk;return a===c}function Nf(a){return a===a&&!di(a)}function Of(a,b){return function(c){return null==c?!1:c[a]===b&&(b!==aa||a in gk(c))}}function Pf(a){var b=Eh(a,function(a){return c.size===ga&&c.clear(),a}),c=b.cache;return b}function Qf(a,b){var c=a[1],d=b[1],e=c|d,f=(na|oa|ua)>e,g=d==ua&&c==qa||d==ua&&c==va&&a[7].length<=b[8]||d==(ua|va)&&b[7].length<=b[8]&&c==qa;if(!f&&!g)return a;d&na&&(a[2]=b[2],e|=c&na?0:pa);var h=b[3];if(h){var i=a[3];a[3]=i?Ge(i,h,b[4]):h,a[4]=i?S(a[3],ha):b[4]}return h=b[5],h&&(i=a[5],a[5]=i?He(i,h,b[6]):h,a[6]=i?S(a[5],ha):b[6]),h=b[7],h&&(a[7]=h),d&ua&&(a[8]=null==a[8]?b[8]:Tk(a[8],b[8])),null==a[9]&&(a[9]=b[9]),a[0]=b[0],a[1]=e,a}function Rf(a){var b=[];if(null!=a)for(var c in gk(a))b.push(c);return b}function Sf(a){return sk.call(a)}function Tf(a,b,c){return b=Sk(b===aa?a.length-1:b,0),function(){for(var e=arguments,f=-1,g=Sk(e.length-b,0),h=bk(g);++f0){if(++b>=za)return arguments[0]}else b=0;return a.apply(aa,arguments)}}function Zf(a,b){var c=-1,d=a.length,e=d-1;for(b=b===aa?d:b;++cb)return[];for(var e=0,f=0,g=bk(Lk(d/b));d>e;)g[f++]=ge(a,e,e+=b);return g}function dg(a){for(var b=-1,c=null==a?0:a.length,d=0,e=[];++bb?0:b,d)):[]}function gg(a,b,c){var d=null==a?0:a.length;return d?(b=c||b===aa?1:vi(b),b=d-b,ge(a,0,0>b?0:b)):[]}function hg(a,b){return a&&a.length?qe(a,tf(b,3),!0,!0):[]}function ig(a,b){return a&&a.length?qe(a,tf(b,3),!0):[]}function jg(a,b,c,d){var e=null==a?0:a.length;return e?(c&&"number"!=typeof c&&Hf(a,b,c)&&(c=0,d=e),Wc(a,b,c,d)):[]}function kg(a,b,c){var d=null==a?0:a.length;if(!d)return-1;var e=null==c?0:vi(c);return 0>e&&(e=Sk(d+e,0)),t(a,tf(b,3),e)}function lg(a,b,c){var d=null==a?0:a.length;if(!d)return-1;var e=d-1;return c!==aa&&(e=vi(c),e=0>c?Sk(d+e,0):Tk(e,d-1)),t(a,tf(b,3),e,!0)}function mg(a){var b=null==a?0:a.length;return b?Yc(a,1):[]}function ng(a){var b=null==a?0:a.length;return b?Yc(a,Ea):[]}function og(a,b){var c=null==a?0:a.length;return c?(b=b===aa?1:vi(b),Yc(a,b)):[]}function pg(a){for(var b=-1,c=null==a?0:a.length,d={};++be&&(e=Sk(d+e,0)),u(a,b,e)}function sg(a){var b=null==a?0:a.length;return b?ge(a,0,-1):[]}function tg(a,b){return null==a?"":Qk.call(a,b)}function ug(a){var b=null==a?0:a.length;return b?a[b-1]:aa}function vg(a,b,c){var d=null==a?0:a.length;if(!d)return-1;var e=d;return c!==aa&&(e=vi(c),e=0>e?Sk(d+e,0):Tk(e,d-1)),b===b?W(a,b,e):t(a,w,e,!0)}function wg(a,b){return a&&a.length?Td(a,vi(b)):aa}function xg(a,b){return a&&a.length&&b&&b.length?Yd(a,b):a}function yg(a,b,c){return a&&a.length&&b&&b.length?Yd(a,b,tf(c,2)):a}function zg(a,b,c){return a&&a.length&&b&&b.length?Yd(a,b,aa,c):a}function Ag(a,b){var c=[];if(!a||!a.length)return c;var d=-1,e=[],f=a.length;for(b=tf(b,3);++dd&&Sh(a[d],b))return d}return-1}function Gg(a,b){return ie(a,b,!0)}function Hg(a,b,c){return je(a,b,tf(c,2),!0)}function Ig(a,b){var c=null==a?0:a.length;if(c){var d=ie(a,b,!0)-1;if(Sh(a[d],b))return d}return-1}function Jg(a){return a&&a.length?ke(a):[]}function Kg(a,b){return a&&a.length?ke(a,tf(b,2)):[]}function Lg(a){var b=null==a?0:a.length;return b?ge(a,1,b):[]}function Mg(a,b,c){return a&&a.length?(b=c||b===aa?1:vi(b),ge(a,0,0>b?0:b)):[]}function Ng(a,b,c){var d=null==a?0:a.length;return d?(b=c||b===aa?1:vi(b),b=d-b,ge(a,0>b?0:b,d)):[]}function Og(a,b){return a&&a.length?qe(a,tf(b,3),!1,!0):[]}function Pg(a,b){return a&&a.length?qe(a,tf(b,3)):[]}function Qg(a){return a&&a.length?ne(a):[]}function Rg(a,b){return a&&a.length?ne(a,tf(b,2)):[]}function Sg(a,b){return b="function"==typeof b?b:aa,a&&a.length?ne(a,aa,b):[]}function Tg(a){if(!a||!a.length)return[];var b=0;return a=i(a,function(a){return Uh(a)?(b=Sk(a.length,b),!0):void 0}),D(b,function(b){return l(a,y(b))})}function Ug(a,b){if(!a||!a.length)return[];var c=Tg(a);return null==b?c:l(c,function(a){return d(b,aa,a)})}function Vg(a,b){return te(a||[],b||[],Bc)}function Wg(a,b){return te(a||[],b||[],ee)}function Xg(a){var c=b(a);return c.__chain__=!0,c}function Yg(a,b){return b(a),a}function Zg(a,b){return b(a)}function $g(){return Xg(this)}function _g(){return new q(this.value(),this.__chain__)}function ah(){this.__values__===aa&&(this.__values__=ti(this.value()));var a=this.__index__>=this.__values__.length,b=a?aa:this.__values__[this.__index__++];return{done:a,value:b}}function bh(){return this}function ch(a){for(var b,d=this;d instanceof c;){ var e=bg(d);e.__index__=0,e.__values__=aa,b?f.__wrapped__=e:b=e;var f=e;d=d.__wrapped__}return f.__wrapped__=a,b}function dh(){var a=this.__wrapped__;if(a instanceof z){var b=a;return this.__actions__.length&&(b=new z(this)),b=b.reverse(),b.__actions__.push({func:Zg,args:[Bg],thisArg:aa}),new q(b,this.__chain__)}return this.thru(Bg)}function eh(){return re(this.__wrapped__,this.__actions__)}function fh(a,b,c){var d=pm(a)?h:Qc;return c&&Hf(a,b,c)&&(b=aa),d(a,tf(b,3))}function gh(a,b){var c=pm(a)?i:Xc;return c(a,tf(b,3))}function hh(a,b){return Yc(nh(a,b),1)}function ih(a,b){return Yc(nh(a,b),Ea)}function jh(a,b,c){return c=c===aa?1:vi(c),Yc(nh(a,b),c)}function kh(a,b){var c=pm(a)?f:nl;return c(a,tf(b,3))}function lh(a,b){var c=pm(a)?g:ol;return c(a,tf(b,3))}function mh(a,b,c,d){a=Th(a)?a:$i(a),c=c&&!d?vi(c):0;var e=a.length;return 0>c&&(c=Sk(e+c,0)),oi(a)?e>=c&&a.indexOf(b,c)>-1:!!e&&u(a,b,c)>-1}function nh(a,b){var c=pm(a)?l:Od;return c(a,tf(b,3))}function oh(a,b,c,d){return null==a?[]:(pm(b)||(b=null==b?[]:[b]),c=d?aa:c,pm(c)||(c=null==c?[]:[c]),Ud(a,b,c))}function ph(a,b,c){var d=pm(a)?n:A,e=arguments.length<3;return d(a,tf(b,4),c,e,nl)}function qh(a,b,c){var d=pm(a)?o:A,e=arguments.length<3;return d(a,tf(b,4),c,e,ol)}function rh(a,b){var c=pm(a)?i:Xc;return c(a,Fh(tf(b,3)))}function sh(a){var b=pm(a)?xc:ce;return b(a)}function th(a,b,c){b=(c?Hf(a,b,c):b===aa)?1:vi(b);var d=pm(a)?yc:de;return d(a,b)}function uh(a){var b=pm(a)?zc:fe;return b(a)}function vh(a){if(null==a)return 0;if(Th(a))return oi(a)?X(a):a.length;var b=zl(a);return b==Va||b==ab?a.size:Ld(a).length}function wh(a,b,c){var d=pm(a)?p:he;return c&&Hf(a,b,c)&&(b=aa),d(a,tf(b,3))}function xh(a,b){if("function"!=typeof b)throw new jk(ea);return a=vi(a),function(){return--a<1?b.apply(this,arguments):void 0}}function yh(a,b,c){return b=c?aa:b,b=a&&null==b?a.length:b,gf(a,ua,aa,aa,aa,aa,b)}function zh(a,b){var c;if("function"!=typeof b)throw new jk(ea);return a=vi(a),function(){return--a>0&&(c=b.apply(this,arguments)),1>=a&&(b=aa),c}}function Ah(a,b,c){b=c?aa:b;var d=gf(a,qa,aa,aa,aa,aa,aa,b);return d.placeholder=Ah.placeholder,d}function Bh(a,b,c){b=c?aa:b;var d=gf(a,ra,aa,aa,aa,aa,aa,b);return d.placeholder=Bh.placeholder,d}function Ch(a,b,c){function d(b){var c=m,d=n;return m=n=aa,s=b,p=a.apply(d,c)}function e(a){return s=a,q=Cl(h,b),t?d(a):p}function f(a){var c=a-r,d=a-s,e=b-c;return u?Tk(e,o-d):e}function g(a){var c=a-r,d=a-s;return r===aa||c>=b||0>c||u&&d>=o}function h(){var a=dm();return g(a)?i(a):void(q=Cl(h,f(a)))}function i(a){return q=aa,v&&m?d(a):(m=n=aa,p)}function j(){q!==aa&&ul(q),s=0,m=r=n=q=aa}function k(){return q===aa?p:i(dm())}function l(){var a=dm(),c=g(a);if(m=arguments,n=this,r=a,c){if(q===aa)return e(r);if(u)return q=Cl(h,b),d(r)}return q===aa&&(q=Cl(h,b)),p}var m,n,o,p,q,r,s=0,t=!1,u=!1,v=!0;if("function"!=typeof a)throw new jk(ea);return b=xi(b)||0,di(c)&&(t=!!c.leading,u="maxWait"in c,o=u?Sk(xi(c.maxWait)||0,b):o,v="trailing"in c?!!c.trailing:v),l.cancel=j,l.flush=k,l}function Dh(a){return gf(a,wa)}function Eh(a,b){if("function"!=typeof a||null!=b&&"function"!=typeof b)throw new jk(ea);var c=function(){var d=arguments,e=b?b.apply(this,d):d[0],f=c.cache;if(f.has(e))return f.get(e);var g=a.apply(this,d);return c.cache=f.set(e,g)||f,g};return c.cache=new(Eh.Cache||hc),c}function Fh(a){if("function"!=typeof a)throw new jk(ea);return function(){var b=arguments;switch(b.length){case 0:return!a.call(this);case 1:return!a.call(this,b[0]);case 2:return!a.call(this,b[0],b[1]);case 3:return!a.call(this,b[0],b[1],b[2])}return!a.apply(this,b)}}function Gh(a){return zh(2,a)}function Hh(a,b){if("function"!=typeof a)throw new jk(ea);return b=b===aa?b:vi(b),be(a,b)}function Ih(a,b){if("function"!=typeof a)throw new jk(ea);return b=null==b?0:Sk(vi(b),0),be(function(c){var e=c[b],f=xe(c,0,b);return e&&m(f,e),d(a,this,f)})}function Jh(a,b,c){var d=!0,e=!0;if("function"!=typeof a)throw new jk(ea);return di(c)&&(d="leading"in c?!!c.leading:d,e="trailing"in c?!!c.trailing:e),Ch(a,b,{leading:d,maxWait:b,trailing:e})}function Kh(a){return yh(a,1)}function Lh(a,b){return jm(ve(b),a)}function Mh(){if(!arguments.length)return[];var a=arguments[0];return pm(a)?a:[a]}function Nh(a){return Jc(a,ka)}function Oh(a,b){return b="function"==typeof b?b:aa,Jc(a,ka,b)}function Ph(a){return Jc(a,ia|ka)}function Qh(a,b){return b="function"==typeof b?b:aa,Jc(a,ia|ka,b)}function Rh(a,b){return null==b||Nc(a,b,Ni(b))}function Sh(a,b){return a===b||a!==a&&b!==b}function Th(a){return null!=a&&ci(a.length)&&!ai(a)}function Uh(a){return ei(a)&&Th(a)}function Vh(a){return a===!0||a===!1||ei(a)&&gd(a)==Pa}function Wh(a){return ei(a)&&1===a.nodeType&&!mi(a)}function Xh(a){if(null==a)return!0;if(Th(a)&&(pm(a)||"string"==typeof a||"function"==typeof a.splice||rm(a)||wm(a)||om(a)))return!a.length;var b=zl(a);if(b==Va||b==ab)return!a.size;if(Mf(a))return!Ld(a).length;for(var c in a)if(pk.call(a,c))return!1;return!0}function Yh(a,b){return Cd(a,b)}function Zh(a,b,c){c="function"==typeof c?c:aa;var d=c?c(a,b):aa;return d===aa?Cd(a,b,aa,c):!!d}function $h(a){if(!ei(a))return!1;var b=gd(a);return b==Sa||b==Ra||"string"==typeof a.message&&"string"==typeof a.name&&!mi(a)}function _h(a){return"number"==typeof a&&Pk(a)}function ai(a){if(!di(a))return!1;var b=gd(a);return b==Ta||b==Ua||b==Oa||b==$a}function bi(a){return"number"==typeof a&&a==vi(a)}function ci(a){return"number"==typeof a&&a>-1&&a%1==0&&Fa>=a}function di(a){var b=typeof a;return null!=a&&("object"==b||"function"==b)}function ei(a){return null!=a&&"object"==typeof a}function fi(a,b){return a===b||Fd(a,b,vf(b))}function gi(a,b,c){return c="function"==typeof c?c:aa,Fd(a,b,vf(b),c)}function hi(a){return li(a)&&a!=+a}function ii(a){if(Al(a))throw new dk(da);return Gd(a)}function ji(a){return null===a}function ki(a){return null==a}function li(a){return"number"==typeof a||ei(a)&&gd(a)==Wa}function mi(a){if(!ei(a)||gd(a)!=Ya)return!1;var b=Ak(a);if(null===b)return!0;var c=pk.call(b,"constructor")&&b.constructor;return"function"==typeof c&&c instanceof c&&ok.call(c)==tk}function ni(a){return bi(a)&&a>=-Fa&&Fa>=a}function oi(a){return"string"==typeof a||!pm(a)&&ei(a)&&gd(a)==bb}function pi(a){return"symbol"==typeof a||ei(a)&&gd(a)==cb}function qi(a){return a===aa}function ri(a){return ei(a)&&zl(a)==eb}function si(a){return ei(a)&&gd(a)==fb}function ti(a){if(!a)return[];if(Th(a))return oi(a)?Y(a):Ie(a);if(Fk&&a[Fk])return P(a[Fk]());var b=zl(a),c=b==Va?Q:b==ab?T:$i;return c(a)}function ui(a){if(!a)return 0===a?a:0;if(a=xi(a),a===Ea||a===-Ea){var b=0>a?-1:1;return b*Ga}return a===a?a:0}function vi(a){var b=ui(a),c=b%1;return b===b?c?b-c:b:0}function wi(a){return a?Ic(vi(a),0,Ia):0}function xi(a){if("number"==typeof a)return a;if(pi(a))return Ha;if(di(a)){var b="function"==typeof a.valueOf?a.valueOf():a;a=di(b)?b+"":b}if("string"!=typeof a)return 0===a?a:+a;a=a.replace(Gb,"");var c=Rb.test(a);return c||Tb.test(a)?$c(a.slice(2),c?2:8):Qb.test(a)?Ha:+a}function yi(a){return Je(a,Oi(a))}function zi(a){return a?Ic(vi(a),-Fa,Fa):0===a?a:0}function Ai(a){return null==a?"":me(a)}function Bi(a,b){var c=ml(a);return null==b?c:Ec(c,b)}function Ci(a,b){return s(a,tf(b,3),_c)}function Di(a,b){return s(a,tf(b,3),ad)}function Ei(a,b){return null==a?a:pl(a,tf(b,3),Oi)}function Fi(a,b){return null==a?a:ql(a,tf(b,3),Oi)}function Gi(a,b){return a&&_c(a,tf(b,3))}function Hi(a,b){return a&&ad(a,tf(b,3))}function Ii(a){return null==a?[]:cd(a,Ni(a))}function Ji(a){return null==a?[]:cd(a,Oi(a))}function Ki(a,b,c){var d=null==a?aa:dd(a,b);return d===aa?c:d}function Li(a,b){return null!=a&&Af(a,b,rd)}function Mi(a,b){return null!=a&&Af(a,b,ud)}function Ni(a){return Th(a)?wc(a):Ld(a)}function Oi(a){return Th(a)?wc(a,!0):Md(a)}function Pi(a,b){var c={};return b=tf(b,3),_c(a,function(a,d,e){Gc(c,b(a,d,e),a)}),c}function Qi(a,b){var c={};return b=tf(b,3),_c(a,function(a,d,e){Gc(c,d,b(a,d,e))}),c}function Ri(a,b){return Si(a,Fh(tf(b)))}function Si(a,b){if(null==a)return{};var c=l(qf(a),function(a){return[a]});return b=tf(b),Wd(a,c,function(a,c){return b(a,c[0])})}function Ti(a,b,c){b=we(b,a);var d=-1,e=b.length;for(e||(e=1,a=aa);++db){var d=a;a=b,b=d}if(c||a%1||b%1){var e=Wk();return Tk(a+e*(b-a+Zc("1e-"+((e+"").length-1))),b)}return $d(a,b)}function dj(a){return Wm(Ai(a).toLowerCase())}function ej(a){return a=Ai(a),a&&a.replace(Vb,od).replace(Mc,"")}function fj(a,b,c){a=Ai(a),b=me(b);var d=a.length;c=c===aa?d:Ic(vi(c),0,d);var e=c;return c-=b.length,c>=0&&a.slice(c,e)==b}function gj(a){return a=Ai(a),a&&xb.test(a)?a.replace(vb,pd):a}function hj(a){return a=Ai(a),a&&Fb.test(a)?a.replace(Eb,"\\$&"):a}function ij(a,b,c){a=Ai(a),b=vi(b);var d=b?X(a):0;if(!b||d>=b)return a;var e=(b-d)/2;return _e(Mk(e),c)+a+_e(Lk(e),c)}function jj(a,b,c){a=Ai(a),b=vi(b);var d=b?X(a):0;return b&&b>d?a+_e(b-d,c):a}function kj(a,b,c){a=Ai(a),b=vi(b);var d=b?X(a):0;return b&&b>d?_e(b-d,c)+a:a}function lj(a,b,c){return c||null==b?b=0:b&&(b=+b),Vk(Ai(a).replace(Hb,""),b||0)}function mj(a,b,c){return b=(c?Hf(a,b,c):b===aa)?1:vi(b),ae(Ai(a),b)}function nj(){var a=arguments,b=Ai(a[0]);return a.length<3?b:b.replace(a[1],a[2])}function oj(a,b,c){return c&&"number"!=typeof c&&Hf(a,b,c)&&(b=c=aa),(c=c===aa?Ia:c>>>0)?(a=Ai(a),a&&("string"==typeof b||null!=b&&!um(b))&&(b=me(b),!b&&N(a))?xe(Y(a),0,c):a.split(b,c)):[]}function pj(a,b,c){return a=Ai(a),c=null==c?0:Ic(vi(c),0,a.length),b=me(b),a.slice(c,c+b.length)==b}function qj(a,c,d){var e=b.templateSettings;d&&Hf(a,c,d)&&(c=aa),a=Ai(a),c=Bm({},c,e,hf);var f,g,h=Bm({},c.imports,e.imports,hf),i=Ni(h),j=G(h,i),k=0,l=c.interpolate||Wb,m="__p += '",n=hk((c.escape||Wb).source+"|"+l.source+"|"+(l===Ab?Ob:Wb).source+"|"+(c.evaluate||Wb).source+"|$","g"),o="//# sourceURL="+("sourceURL"in c?c.sourceURL:"lodash.templateSources["+ ++Sc+"]")+"\n";a.replace(n,function(b,c,d,e,h,i){return d||(d=e),m+=a.slice(k,i).replace(Xb,L),c&&(f=!0,m+="' +\n__e("+c+") +\n'"),h&&(g=!0,m+="';\n"+h+";\n__p += '"),d&&(m+="' +\n((__t = ("+d+")) == null ? '' : __t) +\n'"),k=i+b.length,b}),m+="';\n";var p=c.variable;p||(m="with (obj) {\n"+m+"\n}\n"),m=(g?m.replace(rb,""):m).replace(sb,"$1").replace(tb,"$1;"),m="function("+(p||"obj")+") {\n"+(p?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(f?", __e = _.escape":"")+(g?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+m+"return __p\n}";var q=Xm(function(){return ek(i,o+"return "+m).apply(aa,j)});if(q.source=m,$h(q))throw q;return q}function rj(a){return Ai(a).toLowerCase()}function sj(a){return Ai(a).toUpperCase()}function tj(a,b,c){if(a=Ai(a),a&&(c||b===aa))return a.replace(Gb,"");if(!a||!(b=me(b)))return a;var d=Y(a),e=Y(b),f=I(d,e),g=J(d,e)+1;return xe(d,f,g).join("")}function uj(a,b,c){if(a=Ai(a),a&&(c||b===aa))return a.replace(Ib,"");if(!a||!(b=me(b)))return a;var d=Y(a),e=J(d,Y(b))+1;return xe(d,0,e).join("")}function vj(a,b,c){if(a=Ai(a),a&&(c||b===aa))return a.replace(Hb,"");if(!a||!(b=me(b)))return a;var d=Y(a),e=I(d,Y(b));return xe(d,e).join("")}function wj(a,b){var c=xa,d=ya;if(di(b)){var e="separator"in b?b.separator:e;c="length"in b?vi(b.length):c,d="omission"in b?me(b.omission):d}a=Ai(a);var f=a.length;if(N(a)){var g=Y(a);f=g.length}if(c>=f)return a;var h=c-X(d);if(1>h)return d;var i=g?xe(g,0,h).join(""):a.slice(0,h);if(e===aa)return i+d;if(g&&(h+=i.length-h),um(e)){if(a.slice(h).search(e)){var j,k=i;for(e.global||(e=hk(e.source,Ai(Pb.exec(e))+"g")),e.lastIndex=0;j=e.exec(k);)var l=j.index;i=i.slice(0,l===aa?h:l)}}else if(a.indexOf(me(e),h)!=h){var m=i.lastIndexOf(e);m>-1&&(i=i.slice(0,m))}return i+d}function xj(a){return a=Ai(a),a&&wb.test(a)?a.replace(ub,qd):a}function yj(a,b,c){return a=Ai(a),b=c?aa:b,b===aa?O(a)?_(a):r(a):a.match(b)||[]}function zj(a){var b=null==a?0:a.length,c=tf();return a=b?l(a,function(a){if("function"!=typeof a[1])throw new jk(ea);return[c(a[0]),a[1]]}):[],be(function(c){for(var e=-1;++ea||a>Fa)return[];var c=Ia,d=Tk(a,Ia);b=tf(b),a-=Ia;for(var e=D(d,b);++c1?a[b-1]:aa;return c="function"==typeof c?(a.pop(),c):aa,Ug(a,c)}),Wl=of(function(a){var b=a.length,c=b?a[0]:0,d=this.__wrapped__,e=function(b){return Hc(b,a)};return!(b>1||this.__actions__.length)&&d instanceof z&&Gf(c)?(d=d.slice(c,+c+(b?1:0)),d.__actions__.push({func:Zg,args:[e],thisArg:aa}),new q(d,this.__chain__).thru(function(a){return b&&!a.length&&a.push(aa),a})):this.thru(e)}),Xl=Me(function(a,b,c){pk.call(a,c)?++a[c]:Gc(a,c,1)}),Yl=Ve(kg),Zl=Ve(lg),$l=Me(function(a,b,c){pk.call(a,c)?a[c].push(b):Gc(a,c,[b])}),_l=be(function(a,b,c){var e=-1,f="function"==typeof b,g=Th(a)?bk(a.length):[];return nl(a,function(a){g[++e]=f?d(b,a,c):yd(a,b,c)}),g}),am=Me(function(a,b,c){Gc(a,c,b)}),bm=Me(function(a,b,c){a[c?0:1].push(b)},function(){return[[],[]]}),cm=be(function(a,b){if(null==a)return[];var c=b.length;return c>1&&Hf(a,b[0],b[1])?b=[]:c>2&&Hf(b[0],b[1],b[2])&&(b=[b[0]]),Ud(a,Yc(b,1),[])}),dm=Jk||function(){return bd.Date.now()},em=be(function(a,b,c){var d=na;if(c.length){var e=S(c,sf(em));d|=sa}return gf(a,d,b,c,e)}),fm=be(function(a,b,c){var d=na|oa;if(c.length){var e=S(c,sf(fm));d|=sa}return gf(b,d,a,c,e)}),gm=be(function(a,b){return Oc(a,1,b)}),hm=be(function(a,b,c){return Oc(a,xi(b)||0,c)});Eh.Cache=hc;var im=tl(function(a,b){b=1==b.length&&pm(b[0])?l(b[0],F(tf())):l(Yc(b,1),F(tf()));var c=b.length;return be(function(e){for(var f=-1,g=Tk(e.length,c);++f=b}),om=zd(function(){return arguments}())?zd:function(a){return ei(a)&&pk.call(a,"callee")&&!Ck.call(a,"callee")},pm=bk.isArray,qm=hd?F(hd):Ad,rm=Ok||Oj,sm=id?F(id):Bd,tm=jd?F(jd):Ed,um=kd?F(kd):Hd,vm=ld?F(ld):Id,wm=md?F(md):Jd,xm=cf(Nd),ym=cf(function(a,b){return b>=a}),zm=Ne(function(a,b){if(Mf(b)||Th(b))return void Je(b,Ni(b),a);for(var c in b)pk.call(b,c)&&Bc(a,c,b[c])}),Am=Ne(function(a,b){Je(b,Oi(b),a)}),Bm=Ne(function(a,b,c,d){Je(b,Oi(b),a,d)}),Cm=Ne(function(a,b,c,d){Je(b,Ni(b),a,d)}),Dm=of(Hc),Em=be(function(a,b){a=gk(a);var c=-1,d=b.length,e=d>2?b[2]:aa;for(e&&Hf(b[0],b[1],e)&&(d=1);++c1),b}),Je(a,qf(a),c),d&&(c=Jc(c,ia|ja|ka,kf));for(var e=b.length;e--;)oe(c,b[e]);return c}),Mm=of(function(a,b){return null==a?{}:Vd(a,b)}),Nm=ff(Ni),Om=ff(Oi),Pm=Se(function(a,b,c){return b=b.toLowerCase(),a+(c?dj(b):b)}),Qm=Se(function(a,b,c){return a+(c?"-":"")+b.toLowerCase()}),Rm=Se(function(a,b,c){return a+(c?" ":"")+b.toLowerCase()}),Sm=Re("toLowerCase"),Tm=Se(function(a,b,c){return a+(c?"_":"")+b.toLowerCase()}),Um=Se(function(a,b,c){return a+(c?" ":"")+Wm(b)}),Vm=Se(function(a,b,c){return a+(c?" ":"")+b.toUpperCase()}),Wm=Re("toUpperCase"),Xm=be(function(a,b){try{return d(a,aa,b)}catch(c){return $h(c)?c:new dk(c)}}),Ym=of(function(a,b){return f(b,function(b){b=$f(b),Gc(a,b,em(a[b],a))}),a}),Zm=We(),$m=We(!0),_m=be(function(a,b){return function(c){return yd(c,a,b)}}),an=be(function(a,b){return function(c){return yd(a,c,b)}}),bn=$e(l),cn=$e(h),dn=$e(p),en=bf(),fn=bf(!0),gn=Ze(function(a,b){return a+b},0),hn=ef("ceil"),jn=Ze(function(a,b){return a/b},1),kn=ef("floor"),ln=Ze(function(a,b){return a*b},1),mn=ef("round"),nn=Ze(function(a,b){return a-b},0);return b.after=xh,b.ary=yh,b.assign=zm,b.assignIn=Am,b.assignInWith=Bm,b.assignWith=Cm,b.at=Dm,b.before=zh,b.bind=em,b.bindAll=Ym,b.bindKey=fm,b.castArray=Mh,b.chain=Xg,b.chunk=cg,b.compact=dg,b.concat=eg,b.cond=zj,b.conforms=Aj,b.constant=Bj,b.countBy=Xl,b.create=Bi,b.curry=Ah,b.curryRight=Bh,b.debounce=Ch,b.defaults=Em,b.defaultsDeep=Fm,b.defer=gm,b.delay=hm,b.difference=Fl,b.differenceBy=Gl,b.differenceWith=Hl,b.drop=fg,b.dropRight=gg,b.dropRightWhile=hg,b.dropWhile=ig,b.fill=jg,b.filter=gh,b.flatMap=hh,b.flatMapDeep=ih,b.flatMapDepth=jh,b.flatten=mg,b.flattenDeep=ng,b.flattenDepth=og,b.flip=Dh,b.flow=Zm,b.flowRight=$m,b.fromPairs=pg,b.functions=Ii,b.functionsIn=Ji,b.groupBy=$l,b.initial=sg,b.intersection=Il,b.intersectionBy=Jl,b.intersectionWith=Kl,b.invert=Gm,b.invertBy=Hm,b.invokeMap=_l,b.iteratee=Ej,b.keyBy=am,b.keys=Ni,b.keysIn=Oi,b.map=nh,b.mapKeys=Pi,b.mapValues=Qi,b.matches=Fj,b.matchesProperty=Gj,b.memoize=Eh,b.merge=Jm,b.mergeWith=Km,b.method=_m,b.methodOf=an,b.mixin=Hj,b.negate=Fh,b.nthArg=Kj,b.omit=Lm,b.omitBy=Ri,b.once=Gh,b.orderBy=oh,b.over=bn,b.overArgs=im,b.overEvery=cn,b.overSome=dn,b.partial=jm,b.partialRight=km,b.partition=bm,b.pick=Mm,b.pickBy=Si,b.property=Lj,b.propertyOf=Mj,b.pull=Ll,b.pullAll=xg,b.pullAllBy=yg,b.pullAllWith=zg,b.pullAt=Ml,b.range=en,b.rangeRight=fn,b.rearg=lm,b.reject=rh,b.remove=Ag,b.rest=Hh,b.reverse=Bg,b.sampleSize=th,b.set=Ui,b.setWith=Vi,b.shuffle=uh,b.slice=Cg,b.sortBy=cm,b.sortedUniq=Jg,b.sortedUniqBy=Kg,b.split=oj,b.spread=Ih,b.tail=Lg,b.take=Mg,b.takeRight=Ng,b.takeRightWhile=Og,b.takeWhile=Pg,b.tap=Yg,b.throttle=Jh,b.thru=Zg,b.toArray=ti,b.toPairs=Nm,b.toPairsIn=Om,b.toPath=Tj,b.toPlainObject=yi,b.transform=Wi,b.unary=Kh,b.union=Nl,b.unionBy=Ol,b.unionWith=Pl,b.uniq=Qg,b.uniqBy=Rg,b.uniqWith=Sg,b.unset=Xi,b.unzip=Tg,b.unzipWith=Ug,b.update=Yi,b.updateWith=Zi,b.values=$i,b.valuesIn=_i,b.without=Ql,b.words=yj,b.wrap=Lh,b.xor=Rl,b.xorBy=Sl,b.xorWith=Tl,b.zip=Ul,b.zipObject=Vg,b.zipObjectDeep=Wg,b.zipWith=Vl,b.entries=Nm,b.entriesIn=Om,b.extend=Am,b.extendWith=Bm,Hj(b,b),b.add=gn,b.attempt=Xm,b.camelCase=Pm,b.capitalize=dj,b.ceil=hn,b.clamp=aj,b.clone=Nh,b.cloneDeep=Ph,b.cloneDeepWith=Qh,b.cloneWith=Oh,b.conformsTo=Rh,b.deburr=ej,b.defaultTo=Cj,b.divide=jn,b.endsWith=fj,b.eq=Sh,b.escape=gj,b.escapeRegExp=hj,b.every=fh,b.find=Yl,b.findIndex=kg,b.findKey=Ci,b.findLast=Zl,b.findLastIndex=lg,b.findLastKey=Di,b.floor=kn,b.forEach=kh,b.forEachRight=lh,b.forIn=Ei,b.forInRight=Fi,b.forOwn=Gi,b.forOwnRight=Hi,b.get=Ki,b.gt=mm,b.gte=nm,b.has=Li,b.hasIn=Mi,b.head=qg,b.identity=Dj,b.includes=mh,b.indexOf=rg,b.inRange=bj,b.invoke=Im,b.isArguments=om,b.isArray=pm,b.isArrayBuffer=qm,b.isArrayLike=Th,b.isArrayLikeObject=Uh,b.isBoolean=Vh,b.isBuffer=rm,b.isDate=sm,b.isElement=Wh,b.isEmpty=Xh,b.isEqual=Yh,b.isEqualWith=Zh,b.isError=$h,b.isFinite=_h,b.isFunction=ai,b.isInteger=bi,b.isLength=ci,b.isMap=tm,b.isMatch=fi,b.isMatchWith=gi,b.isNaN=hi,b.isNative=ii,b.isNil=ki,b.isNull=ji,b.isNumber=li,b.isObject=di,b.isObjectLike=ei,b.isPlainObject=mi,b.isRegExp=um,b.isSafeInteger=ni,b.isSet=vm,b.isString=oi,b.isSymbol=pi,b.isTypedArray=wm,b.isUndefined=qi,b.isWeakMap=ri,b.isWeakSet=si,b.join=tg,b.kebabCase=Qm,b.last=ug,b.lastIndexOf=vg,b.lowerCase=Rm,b.lowerFirst=Sm,b.lt=xm,b.lte=ym,b.max=Vj,b.maxBy=Wj,b.mean=Xj,b.meanBy=Yj,b.min=Zj,b.minBy=$j,b.stubArray=Nj,b.stubFalse=Oj,b.stubObject=Pj,b.stubString=Qj,b.stubTrue=Rj,b.multiply=ln,b.nth=wg,b.noConflict=Ij,b.noop=Jj,b.now=dm,b.pad=ij,b.padEnd=jj,b.padStart=kj,b.parseInt=lj,b.random=cj,b.reduce=ph,b.reduceRight=qh,b.repeat=mj,b.replace=nj,b.result=Ti,b.round=mn,b.runInContext=td,b.sample=sh,b.size=vh,b.snakeCase=Tm,b.some=wh,b.sortedIndex=Dg,b.sortedIndexBy=Eg,b.sortedIndexOf=Fg,b.sortedLastIndex=Gg,b.sortedLastIndexBy=Hg,b.sortedLastIndexOf=Ig,b.startCase=Um,b.startsWith=pj,b.subtract=nn,b.sum=_j,b.sumBy=ak,b.template=qj,b.times=Sj,b.toFinite=ui,b.toInteger=vi,b.toLength=wi,b.toLower=rj,b.toNumber=xi,b.toSafeInteger=zi,b.toString=Ai,b.toUpper=sj,b.trim=tj,b.trimEnd=uj,b.trimStart=vj,b.truncate=wj,b.unescape=xj,b.uniqueId=Uj,b.upperCase=Vm,b.upperFirst=Wm,b.each=kh,b.eachRight=lh,b.first=qg,Hj(b,function(){var a={};return _c(b,function(c,d){pk.call(b.prototype,d)||(a[d]=c)}),a}(),{chain:!1}),b.VERSION=ba,f(["bind","bindKey","curry","curryRight","partial","partialRight"],function(a){b[a].placeholder=b}),f(["drop","take"],function(a,b){z.prototype[a]=function(c){c=c===aa?1:Sk(vi(c),0);var d=this.__filtered__&&!b?new z(this):this.clone();return d.__filtered__?d.__takeCount__=Tk(c,d.__takeCount__):d.__views__.push({size:Tk(c,Ia),type:a+(d.__dir__<0?"Right":"")}),d},z.prototype[a+"Right"]=function(b){return this.reverse()[a](b).reverse()}}),f(["filter","map","takeWhile"],function(a,b){var c=b+1,d=c==Ba||c==Da;z.prototype[a]=function(a){var b=this.clone();return b.__iteratees__.push({iteratee:tf(a,3),type:c}),b.__filtered__=b.__filtered__||d,b}}),f(["head","last"],function(a,b){var c="take"+(b?"Right":"");z.prototype[a]=function(){return this[c](1).value()[0]}}),f(["initial","tail"],function(a,b){var c="drop"+(b?"":"Right");z.prototype[a]=function(){return this.__filtered__?new z(this):this[c](1)}}),z.prototype.compact=function(){return this.filter(Dj)},z.prototype.find=function(a){return this.filter(a).head()},z.prototype.findLast=function(a){return this.reverse().find(a)},z.prototype.invokeMap=be(function(a,b){return"function"==typeof a?new z(this):this.map(function(c){return yd(c,a,b)})}),z.prototype.reject=function(a){return this.filter(Fh(tf(a)))},z.prototype.slice=function(a,b){a=vi(a);var c=this;return c.__filtered__&&(a>0||0>b)?new z(c):(0>a?c=c.takeRight(-a):a&&(c=c.drop(a)),b!==aa&&(b=vi(b),c=0>b?c.dropRight(-b):c.take(b-a)),c)},z.prototype.takeRightWhile=function(a){return this.reverse().takeWhile(a).reverse()},z.prototype.toArray=function(){return this.take(Ia)},_c(z.prototype,function(a,c){var d=/^(?:filter|find|map|reject)|While$/.test(c),e=/^(?:head|last)$/.test(c),f=b[e?"take"+("last"==c?"Right":""):c],g=e||/^find/.test(c);f&&(b.prototype[c]=function(){var c=this.__wrapped__,h=e?[1]:arguments,i=c instanceof z,j=h[0],k=i||pm(c),l=function(a){var c=f.apply(b,m([a],h));return e&&n?c[0]:c};k&&d&&"function"==typeof j&&1!=j.length&&(i=k=!1);var n=this.__chain__,o=!!this.__actions__.length,p=g&&!n,r=i&&!o;if(!g&&k){c=r?c:new z(this);var s=a.apply(c,h);return s.__actions__.push({func:Zg,args:[l],thisArg:aa}),new q(s,n)}return p&&r?a.apply(this,h):(s=this.thru(l),p?e?s.value()[0]:s.value():s)})}),f(["pop","push","shift","sort","splice","unshift"],function(a){var c=kk[a],d=/^(?:push|sort|unshift)$/.test(a)?"tap":"thru",e=/^(?:pop|shift)$/.test(a);b.prototype[a]=function(){var a=arguments;if(e&&!this.__chain__){var b=this.value();return c.apply(pm(b)?b:[],a)}return this[d](function(b){return c.apply(pm(b)?b:[],a)})}}),_c(z.prototype,function(a,c){var d=b[c];if(d){var e=d.name+"",f=dl[e]||(dl[e]=[]);f.push({name:c,func:d})}}),dl[Xe(aa,oa).name]=[{name:"wrapper",func:aa}],z.prototype.clone=V,z.prototype.reverse=Z,z.prototype.value=$,b.prototype.at=Wl,b.prototype.chain=$g,b.prototype.commit=_g,b.prototype.next=ah,b.prototype.plant=ch,b.prototype.reverse=dh,b.prototype.toJSON=b.prototype.valueOf=b.prototype.value=eh,b.prototype.first=b.prototype.head,Fk&&(b.prototype[Fk]=bh),b},sd=rd();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(bd._=sd,define(function(){return sd})):dd?((dd.exports=sd)._=sd,cd._=sd):bd._=sd}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],20:[function(a,b){b.exports=function(a){for(var b=a+"=",c=document.cookie.split(";"),d=0;d0&&a(c,i))}catch(j){f.call(new h(i),j)}}}function f(b){var d=this;d.triggered||(d.triggered=!0,d.def&&(d=d.def),d.msg=b,d.state=2,d.chain.length>0&&a(c,d))}function g(a,b,c,d){for(var e=0;e0?x.fn.concat.apply([],a):a}function j(a){return a.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function k(a){return a in G?G[a]:G[a]=new RegExp("(^|\\s)"+a+"(\\s|$)")}function l(a,b){return"number"!=typeof b||H[j(a)]?b:b+"px"}function m(a){var b,c;return F[a]||(b=E.createElement(a),E.body.appendChild(b),c=getComputedStyle(b,"").getPropertyValue("display"),b.parentNode.removeChild(b),"none"==c&&(c="block"),F[a]=c),F[a]}function n(a){return"children"in a?C.call(a.children):x.map(a.childNodes,function(a){return 1==a.nodeType?a:void 0})}function o(a,b,c){for(w in b)c&&(f(b[w])||Z(b[w]))?(f(b[w])&&!f(a[w])&&(a[w]={}),Z(b[w])&&!Z(a[w])&&(a[w]=[]),o(a[w],b[w],c)):b[w]!==v&&(a[w]=b[w])}function p(a,b){return null==b?x(a):x(a).filter(b)}function q(a,c,d,e){return b(c)?c.call(a,d,e):c}function r(a,b,c){null==c?a.removeAttribute(b):a.setAttribute(b,c)}function s(a,b){var c=a.className||"",d=c&&c.baseVal!==v;return b===v?d?c.baseVal:c:void(d?c.baseVal=b:a.className=b)}function t(a){try{return a?"true"==a||("false"==a?!1:"null"==a?null:+a+""==a?+a:/^[\[\{]/.test(a)?x.parseJSON(a):a):a}catch(b){return a}}function u(a,b){b(a);for(var c=0,d=a.childNodes.length;d>c;c++)u(a.childNodes[c],b)}var v,w,x,y,z,A,B=[],C=B.slice,D=B.filter,E=window.document,F={},G={},H={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},I=/^\s*<(\w+|!)[^>]*>/,J=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,K=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,L=/^(?:body|html)$/i,M=/([A-Z])/g,N=["val","css","html","text","data","width","height","offset"],O=["after","prepend","before","append"],P=E.createElement("table"),Q=E.createElement("tr"),R={tr:E.createElement("tbody"),tbody:P,thead:P,tfoot:P,td:Q,th:Q,"*":E.createElement("div")},S=/complete|loaded|interactive/,T=/^[\w-]*$/,U={},V=U.toString,W={},X=E.createElement("div"),Y={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},Z=Array.isArray||function(a){return a instanceof Array};return W.matches=function(a,b){if(!b||!a||1!==a.nodeType)return!1;var c=a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.matchesSelector;if(c)return c.call(a,b);var d,e=a.parentNode,f=!e;return f&&(e=X).appendChild(a),d=~W.qsa(e,b).indexOf(a),f&&X.removeChild(a),d},z=function(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})},A=function(a){return D.call(a,function(b,c){return a.indexOf(b)==c})},W.fragment=function(a,b,c){var d,e,g;return J.test(a)&&(d=x(E.createElement(RegExp.$1))),d||(a.replace&&(a=a.replace(K,"<$1>")),b===v&&(b=I.test(a)&&RegExp.$1),b in R||(b="*"),g=R[b],g.innerHTML=""+a,d=x.each(C.call(g.childNodes),function(){g.removeChild(this)})),f(c)&&(e=x(d),x.each(c,function(a,b){N.indexOf(a)>-1?e[a](b):e.attr(a,b)})),d},W.Z=function(a,b){return a=a||[],a.__proto__=x.fn,a.selector=b||"",a},W.isZ=function(a){return a instanceof W.Z},W.init=function(a,c){var d;if(!a)return W.Z();if("string"==typeof a)if(a=a.trim(),"<"==a[0]&&I.test(a))d=W.fragment(a,RegExp.$1,c),a=null;else{if(c!==v)return x(c).find(a);d=W.qsa(E,a)}else{if(b(a))return x(E).ready(a);if(W.isZ(a))return a;if(Z(a))d=h(a);else if(e(a))d=[a],a=null;else if(I.test(a))d=W.fragment(a.trim(),RegExp.$1,c),a=null;else{if(c!==v)return x(c).find(a);d=W.qsa(E,a)}}return W.Z(d,a)},x=function(a,b){return W.init(a,b)},x.extend=function(a){var b,c=C.call(arguments,1);return"boolean"==typeof a&&(b=a,a=c.shift()),c.forEach(function(c){o(a,c,b)}),a},W.qsa=function(a,b){var c,e="#"==b[0],f=!e&&"."==b[0],g=e||f?b.slice(1):b,h=T.test(g);return d(a)&&h&&e?(c=a.getElementById(g))?[c]:[]:1!==a.nodeType&&9!==a.nodeType?[]:C.call(h&&!e?f?a.getElementsByClassName(g):a.getElementsByTagName(b):a.querySelectorAll(b))},x.contains=E.documentElement.contains?function(a,b){return a!==b&&a.contains(b)}:function(a,b){for(;b&&(b=b.parentNode);)if(b===a)return!0;return!1},x.type=a,x.isFunction=b,x.isWindow=c,x.isArray=Z,x.isPlainObject=f,x.isEmptyObject=function(a){var b;for(b in a)return!1;return!0},x.inArray=function(a,b,c){return B.indexOf.call(b,a,c)},x.camelCase=z,x.trim=function(a){return null==a?"":String.prototype.trim.call(a)},x.uuid=0,x.support={},x.expr={},x.map=function(a,b){var c,d,e,f=[];if(g(a))for(d=0;d=0?a:a+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(a){return B.every.call(this,function(b,c){return a.call(b,c,b)!==!1}),this},filter:function(a){return b(a)?this.not(this.not(a)):x(D.call(this,function(b){return W.matches(b,a)}))},add:function(a,b){return x(A(this.concat(x(a,b))))},is:function(a){return this.length>0&&W.matches(this[0],a)},not:function(a){var c=[];if(b(a)&&a.call!==v)this.each(function(b){a.call(this,b)||c.push(this)});else{var d="string"==typeof a?this.filter(a):g(a)&&b(a.item)?C.call(a):x(a);this.forEach(function(a){d.indexOf(a)<0&&c.push(a)})}return x(c)},has:function(a){return this.filter(function(){return e(a)?x.contains(this,a):x(this).find(a).size()})},eq:function(a){return-1===a?this.slice(a):this.slice(a,+a+1)},first:function(){var a=this[0];return a&&!e(a)?a:x(a)},last:function(){var a=this[this.length-1];return a&&!e(a)?a:x(a)},find:function(a){var b,c=this;return b=a?"object"==typeof a?x(a).filter(function(){var a=this;return B.some.call(c,function(b){return x.contains(b,a)})}):1==this.length?x(W.qsa(this[0],a)):this.map(function(){return W.qsa(this,a)}):x()},closest:function(a,b){var c=this[0],e=!1;for("object"==typeof a&&(e=x(a));c&&!(e?e.indexOf(c)>=0:W.matches(c,a));)c=c!==b&&!d(c)&&c.parentNode;return x(c)},parents:function(a){for(var b=[],c=this;c.length>0;)c=x.map(c,function(a){return(a=a.parentNode)&&!d(a)&&b.indexOf(a)<0?(b.push(a),a):void 0});return p(b,a)},parent:function(a){return p(A(this.pluck("parentNode")),a)},children:function(a){return p(this.map(function(){return n(this)}),a)},contents:function(){return this.map(function(){return C.call(this.childNodes)})},siblings:function(a){return p(this.map(function(a,b){return D.call(n(b.parentNode),function(a){return a!==b})}),a)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(a){return x.map(this,function(b){return b[a]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=m(this.nodeName))})},replaceWith:function(a){return this.before(a).remove()},wrap:function(a){var c=b(a);if(this[0]&&!c)var d=x(a).get(0),e=d.parentNode||this.length>1;return this.each(function(b){x(this).wrapAll(c?a.call(this,b):e?d.cloneNode(!0):d)})},wrapAll:function(a){if(this[0]){x(this[0]).before(a=x(a));for(var b;(b=a.children()).length;)a=b.first();x(a).append(this)}return this},wrapInner:function(a){var c=b(a);return this.each(function(b){var d=x(this),e=d.contents(),f=c?a.call(this,b):a;e.length?e.wrapAll(f):d.append(f)})},unwrap:function(){return this.parent().each(function(){x(this).replaceWith(x(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(a){return this.each(function(){var b=x(this);(a===v?"none"==b.css("display"):a)?b.show():b.hide()})},prev:function(a){return x(this.pluck("previousElementSibling")).filter(a||"*")},next:function(a){return x(this.pluck("nextElementSibling")).filter(a||"*")},html:function(a){return 0 in arguments?this.each(function(b){var c=this.innerHTML;x(this).empty().append(q(this,a,b,c))}):0 in this?this[0].innerHTML:null},text:function(a){return 0 in arguments?this.each(function(b){var c=q(this,a,b,this.textContent);this.textContent=null==c?"":""+c}):0 in this?this[0].textContent:null},attr:function(a,b){var c;return"string"!=typeof a||1 in arguments?this.each(function(c){if(1===this.nodeType)if(e(a))for(w in a)r(this,w,a[w]);else r(this,a,q(this,b,c,this.getAttribute(a)))}):this.length&&1===this[0].nodeType?!(c=this[0].getAttribute(a))&&a in this[0]?this[0][a]:c:v},removeAttr:function(a){return this.each(function(){1===this.nodeType&&a.split(" ").forEach(function(a){r(this,a)},this)})},prop:function(a,b){return a=Y[a]||a,1 in arguments?this.each(function(c){this[a]=q(this,b,c,this[a])}):this[0]&&this[0][a]},data:function(a,b){var c="data-"+a.replace(M,"-$1").toLowerCase(),d=1 in arguments?this.attr(c,b):this.attr(c);return null!==d?t(d):v},val:function(a){return 0 in arguments?this.each(function(b){this.value=q(this,a,b,this.value)}):this[0]&&(this[0].multiple?x(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(a){if(a)return this.each(function(b){var c=x(this),d=q(this,a,b,c.offset()),e=c.offsetParent().offset(),f={top:d.top-e.top,left:d.left-e.left};"static"==c.css("position")&&(f.position="relative"),c.css(f)});if(!this.length)return null;var b=this[0].getBoundingClientRect();return{left:b.left+window.pageXOffset,top:b.top+window.pageYOffset,width:Math.round(b.width),height:Math.round(b.height)}},css:function(b,c){if(arguments.length<2){var d,e=this[0];if(!e)return;if(d=getComputedStyle(e,""),"string"==typeof b)return e.style[z(b)]||d.getPropertyValue(b);if(Z(b)){var f={};return x.each(b,function(a,b){f[b]=e.style[z(b)]||d.getPropertyValue(b)}),f}}var g="";if("string"==a(b))c||0===c?g=j(b)+":"+l(b,c):this.each(function(){this.style.removeProperty(j(b))});else for(w in b)b[w]||0===b[w]?g+=j(w)+":"+l(w,b[w])+";":this.each(function(){this.style.removeProperty(j(w))});return this.each(function(){this.style.cssText+=";"+g})},index:function(a){return a?this.indexOf(x(a)[0]):this.parent().children().indexOf(this[0])},hasClass:function(a){return a?B.some.call(this,function(a){return this.test(s(a))},k(a)):!1},addClass:function(a){return a?this.each(function(b){if("className"in this){y=[];var c=s(this),d=q(this,a,b,c);d.split(/\s+/g).forEach(function(a){x(this).hasClass(a)||y.push(a)},this),y.length&&s(this,c+(c?" ":"")+y.join(" "))}}):this},removeClass:function(a){return this.each(function(b){if("className"in this){if(a===v)return s(this,"");y=s(this),q(this,a,b,y).split(/\s+/g).forEach(function(a){y=y.replace(k(a)," ")}),s(this,y.trim())}})},toggleClass:function(a,b){return a?this.each(function(c){var d=x(this),e=q(this,a,c,s(this));e.split(/\s+/g).forEach(function(a){(b===v?!d.hasClass(a):b)?d.addClass(a):d.removeClass(a)})}):this},scrollTop:function(a){if(this.length){var b="scrollTop"in this[0];return a===v?b?this[0].scrollTop:this[0].pageYOffset:this.each(b?function(){this.scrollTop=a}:function(){this.scrollTo(this.scrollX,a)})}},scrollLeft:function(a){if(this.length){var b="scrollLeft"in this[0];return a===v?b?this[0].scrollLeft:this[0].pageXOffset:this.each(b?function(){this.scrollLeft=a}:function(){this.scrollTo(a,this.scrollY)})}},position:function(){if(this.length){var a=this[0],b=this.offsetParent(),c=this.offset(),d=L.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(x(a).css("margin-top"))||0,c.left-=parseFloat(x(a).css("margin-left"))||0,d.top+=parseFloat(x(b[0]).css("border-top-width"))||0,d.left+=parseFloat(x(b[0]).css("border-left-width"))||0,{top:c.top-d.top,left:c.left-d.left}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||E.body;a&&!L.test(a.nodeName)&&"static"==x(a).css("position");)a=a.offsetParent;return a})}},x.fn.detach=x.fn.remove,["width","height"].forEach(function(a){var b=a.replace(/./,function(a){return a[0].toUpperCase()});x.fn[a]=function(e){var f,g=this[0];return e===v?c(g)?g["inner"+b]:d(g)?g.documentElement["scroll"+b]:(f=this.offset())&&f[a]:this.each(function(b){g=x(this),g.css(a,q(this,e,b,g[a]()))})}}),O.forEach(function(b,c){var d=c%2;x.fn[b]=function(){var b,e,f=x.map(arguments,function(c){return b=a(c),"object"==b||"array"==b||null==c?c:W.fragment(c)}),g=this.length>1;return f.length<1?this:this.each(function(a,b){e=d?b:b.parentNode,b=0==c?b.nextSibling:1==c?b.firstChild:2==c?b:null;var h=x.contains(E.documentElement,e);f.forEach(function(a){if(g)a=a.cloneNode(!0);else if(!e)return x(a).remove();e.insertBefore(a,b),h&&u(a,function(a){null==a.nodeName||"SCRIPT"!==a.nodeName.toUpperCase()||a.type&&"text/javascript"!==a.type||a.src||window.eval.call(window,a.innerHTML)})})})},x.fn[d?b+"To":"insert"+(c?"Before":"After")]=function(a){return x(a)[b](this),this}}),W.Z.prototype=x.fn,W.uniq=A,W.deserializeValue=t,x.zepto=W,x}();window.Zepto=d,void 0===window.$&&(window.$=d),function(a){function b(a){return a._zid||(a._zid=m++)}function c(a,c,f,g){if(c=d(c),c.ns)var h=e(c.ns);return(q[b(a)]||[]).filter(function(a){return!(!a||c.e&&a.e!=c.e||c.ns&&!h.test(a.ns)||f&&b(a.fn)!==b(f)||g&&a.sel!=g)})}function d(a){var b=(""+a).split(".");return{e:b[0],ns:b.slice(1).sort().join(" ")}}function e(a){return new RegExp("(?:^| )"+a.replace(" "," .* ?")+"(?: |$)")}function f(a,b){return a.del&&!s&&a.e in t||!!b}function g(a){return u[a]||s&&t[a]||a}function h(c,e,h,i,k,m,n){var o=b(c),p=q[o]||(q[o]=[]);e.split(/\s/).forEach(function(b){if("ready"==b)return a(document).ready(h);var e=d(b);e.fn=h,e.sel=k,e.e in u&&(h=function(b){var c=b.relatedTarget;return!c||c!==this&&!a.contains(this,c)?e.fn.apply(this,arguments):void 0}),e.del=m;var o=m||h;e.proxy=function(a){if(a=j(a),!a.isImmediatePropagationStopped()){a.data=i;var b=o.apply(c,a._args==l?[a]:[a].concat(a._args));return b===!1&&(a.preventDefault(),a.stopPropagation()),b}},e.i=p.length,p.push(e),"addEventListener"in c&&c.addEventListener(g(e.e),e.proxy,f(e,n))})}function i(a,d,e,h,i){var j=b(a);(d||"").split(/\s/).forEach(function(b){c(a,b,e,h).forEach(function(b){delete q[j][b.i],"removeEventListener"in a&&a.removeEventListener(g(b.e),b.proxy,f(b,i))})})}function j(b,c){return(c||!b.isDefaultPrevented)&&(c||(c=b),a.each(y,function(a,d){var e=c[a];b[a]=function(){return this[d]=v,e&&e.apply(c,arguments)},b[d]=w}),(c.defaultPrevented!==l?c.defaultPrevented:"returnValue"in c?c.returnValue===!1:c.getPreventDefault&&c.getPreventDefault())&&(b.isDefaultPrevented=v)),b}function k(a){var b,c={originalEvent:a};for(b in a)x.test(b)||a[b]===l||(c[b]=a[b]);return j(c,a)}var l,m=1,n=Array.prototype.slice,o=a.isFunction,p=function(a){return"string"==typeof a},q={},r={},s="onfocusin"in window,t={focus:"focusin",blur:"focusout"},u={mouseenter:"mouseover",mouseleave:"mouseout"};r.click=r.mousedown=r.mouseup=r.mousemove="MouseEvents",a.event={add:h,remove:i},a.proxy=function(c,d){var e=2 in arguments&&n.call(arguments,2);if(o(c)){var f=function(){return c.apply(d,e?e.concat(n.call(arguments)):arguments)};return f._zid=b(c),f}if(p(d))return e?(e.unshift(c[d],c),a.proxy.apply(null,e)):a.proxy(c[d],c);throw new TypeError("expected function")},a.fn.bind=function(a,b,c){return this.on(a,b,c)},a.fn.unbind=function(a,b){return this.off(a,b)},a.fn.one=function(a,b,c,d){return this.on(a,b,c,d,1)};var v=function(){return!0},w=function(){return!1},x=/^([A-Z]|returnValue$|layer[XY]$)/,y={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};a.fn.delegate=function(a,b,c){return this.on(b,a,c)},a.fn.undelegate=function(a,b,c){return this.off(b,a,c)},a.fn.live=function(b,c){return a(document.body).delegate(this.selector,b,c),this},a.fn.die=function(b,c){return a(document.body).undelegate(this.selector,b,c),this},a.fn.on=function(b,c,d,e,f){var g,j,m=this;return b&&!p(b)?(a.each(b,function(a,b){m.on(a,c,d,b,f)}),m):(p(c)||o(e)||e===!1||(e=d,d=c,c=l),(o(d)||d===!1)&&(e=d,d=l),e===!1&&(e=w),m.each(function(l,m){f&&(g=function(a){return i(m,a.type,e),e.apply(this,arguments)}),c&&(j=function(b){var d,f=a(b.target).closest(c,m).get(0);return f&&f!==m?(d=a.extend(k(b),{currentTarget:f,liveFired:m}),(g||e).apply(f,[d].concat(n.call(arguments,1)))):void 0}),h(m,b,e,d,c,j||g)}))},a.fn.off=function(b,c,d){var e=this;return b&&!p(b)?(a.each(b,function(a,b){e.off(a,c,b)}),e):(p(c)||o(d)||d===!1||(d=c,c=l),d===!1&&(d=w),e.each(function(){i(this,b,d,c)}))},a.fn.trigger=function(b,c){return b=p(b)||a.isPlainObject(b)?a.Event(b):j(b),b._args=c,this.each(function(){b.type in t&&"function"==typeof this[b.type]?this[b.type]():"dispatchEvent"in this?this.dispatchEvent(b):a(this).triggerHandler(b,c)})},a.fn.triggerHandler=function(b,d){var e,f;return this.each(function(g,h){e=k(p(b)?a.Event(b):b),e._args=d,e.target=h,a.each(c(h,b.type||b),function(a,b){return f=b.proxy(e),e.isImmediatePropagationStopped()?!1:void 0})}),f},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(b){a.fn[b]=function(a){return 0 in arguments?this.bind(b,a):this.trigger(b)}}),a.Event=function(a,b){p(a)||(b=a,a=b.type);var c=document.createEvent(r[a]||"Events"),d=!0;if(b)for(var e in b)"bubbles"==e?d=!!b[e]:c[e]=b[e];return c.initEvent(a,d,!0),j(c)}}(d),function(a){function b(b,c,d){var e=a.Event(c);return a(b).trigger(e,d),!e.isDefaultPrevented()}function c(a,c,d,e){return a.global?b(c||s,d,e):void 0}function d(b){b.global&&0===a.active++&&c(b,null,"ajaxStart")}function e(b){b.global&&!--a.active&&c(b,null,"ajaxStop")}function f(a,b){var d=b.context;return b.beforeSend.call(d,a,b)===!1||c(b,d,"ajaxBeforeSend",[a,b])===!1?!1:void c(b,d,"ajaxSend",[a,b])}function g(a,b,d,e){var f=d.context,g="success";d.success.call(f,a,g,b),e&&e.resolveWith(f,[a,g,b]),c(d,f,"ajaxSuccess",[b,d,a]),i(g,b,d)}function h(a,b,d,e,f){var g=e.context;e.error.call(g,d,b,a),f&&f.rejectWith(g,[d,b,a]),c(e,g,"ajaxError",[d,e,a||b]),i(b,d,e)}function i(a,b,d){var f=d.context;d.complete.call(f,b,a),c(d,f,"ajaxComplete",[b,d]),e(d)}function j(){}function k(a){return a&&(a=a.split(";",2)[0]),a&&(a==x?"html":a==w?"json":u.test(a)?"script":v.test(a)&&"xml")||"text"}function l(a,b){return""==b?a:(a+"&"+b).replace(/[&?]{1,2}/,"?")}function m(b){b.processData&&b.data&&"string"!=a.type(b.data)&&(b.data=a.param(b.data,b.traditional)),!b.data||b.type&&"GET"!=b.type.toUpperCase()||(b.url=l(b.url,b.data),b.data=void 0)}function n(b,c,d,e){return a.isFunction(c)&&(e=d,d=c,c=void 0),a.isFunction(d)||(e=d,d=void 0),{url:b,data:c,success:d,dataType:e}}function o(b,c,d,e){var f,g=a.isArray(c),h=a.isPlainObject(c);a.each(c,function(c,i){f=a.type(i),e&&(c=d?e:e+"["+(h||"object"==f||"array"==f?c:"")+"]"),!e&&g?b.add(i.name,i.value):"array"==f||!d&&"object"==f?o(b,i,d,c):b.add(c,i)})}var p,q,r=0,s=window.document,t=/)<[^<]*)*<\/script>/gi,u=/^(?:text|application)\/javascript/i,v=/^(?:text|application)\/xml/i,w="application/json",x="text/html",y=/^\s*$/,z=s.createElement("a");z.href=window.location.href,a.active=0,a.ajaxJSONP=function(b,c){if(!("type"in b))return a.ajax(b);var d,e,i=b.jsonpCallback,j=(a.isFunction(i)?i():i)||"jsonp"+ ++r,k=s.createElement("script"),l=window[j],m=function(b){a(k).triggerHandler("error",b||"abort")},n={abort:m};return c&&c.promise(n),a(k).on("load error",function(f,i){clearTimeout(e),a(k).off().remove(),"error"!=f.type&&d?g(d[0],n,b,c):h(null,i||"error",n,b,c),window[j]=l,d&&a.isFunction(l)&&l(d[0]),l=d=void 0}),f(n,b)===!1?(m("abort"),n):(window[j]=function(){d=arguments},k.src=b.url.replace(/\?(.+)=\?/,"?$1="+j),s.head.appendChild(k),b.timeout>0&&(e=setTimeout(function(){m("timeout")},b.timeout)),n)},a.ajaxSettings={type:"GET",beforeSend:j,success:j,error:j,complete:j,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:w,xml:"application/xml, text/xml",html:x,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0},a.ajax=function(b){var c,e=a.extend({},b||{}),i=a.Deferred&&a.Deferred();for(p in a.ajaxSettings)void 0===e[p]&&(e[p]=a.ajaxSettings[p]);d(e),e.crossDomain||(c=s.createElement("a"),c.href=e.url,c.href=c.href,e.crossDomain=z.protocol+"//"+z.host!=c.protocol+"//"+c.host),e.url||(e.url=window.location.toString()),m(e);var n=e.dataType,o=/\?.+=\?/.test(e.url);if(o&&(n="jsonp"),e.cache!==!1&&(b&&b.cache===!0||"script"!=n&&"jsonp"!=n)||(e.url=l(e.url,"_="+Date.now())),"jsonp"==n)return o||(e.url=l(e.url,e.jsonp?e.jsonp+"=?":e.jsonp===!1?"":"callback=?")),a.ajaxJSONP(e,i);var r,t=e.accepts[n],u={},v=function(a,b){u[a.toLowerCase()]=[a,b]},w=/^([\w-]+:)\/\//.test(e.url)?RegExp.$1:window.location.protocol,x=e.xhr(),A=x.setRequestHeader;if(i&&i.promise(x),e.crossDomain||v("X-Requested-With","XMLHttpRequest"),v("Accept",t||"*/*"),(t=e.mimeType||t)&&(t.indexOf(",")>-1&&(t=t.split(",",2)[0]),x.overrideMimeType&&x.overrideMimeType(t)),(e.contentType||e.contentType!==!1&&e.data&&"GET"!=e.type.toUpperCase())&&v("Content-Type",e.contentType||"application/x-www-form-urlencoded"),e.headers)for(q in e.headers)v(q,e.headers[q]);if(x.setRequestHeader=v,x.onreadystatechange=function(){if(4==x.readyState){x.onreadystatechange=j,clearTimeout(r);var b,c=!1;if(x.status>=200&&x.status<300||304==x.status||0==x.status&&"file:"==w){n=n||k(e.mimeType||x.getResponseHeader("content-type")),b=x.responseText;try{"script"==n?(1,eval)(b):"xml"==n?b=x.responseXML:"json"==n&&(b=y.test(b)?null:a.parseJSON(b))}catch(d){c=d}c?h(c,"parsererror",x,e,i):g(b,x,e,i)}else h(x.statusText||null,x.status?"error":"abort",x,e,i)}},f(x,e)===!1)return x.abort(),h(null,"abort",x,e,i),x;if(e.xhrFields)for(q in e.xhrFields)x[q]=e.xhrFields[q];var B="async"in e?e.async:!0;x.open(e.type,e.url,B,e.username,e.password);for(q in u)A.apply(x,u[q]);return e.timeout>0&&(r=setTimeout(function(){x.onreadystatechange=j,x.abort(),h(null,"timeout",x,e,i)},e.timeout)),x.send(e.data?e.data:null),x},a.get=function(){return a.ajax(n.apply(null,arguments))},a.post=function(){var b=n.apply(null,arguments);return b.type="POST",a.ajax(b)},a.getJSON=function(){var b=n.apply(null,arguments);return b.dataType="json",a.ajax(b)},a.fn.load=function(b,c,d){if(!this.length)return this;var e,f=this,g=b.split(/\s/),h=n(b,c,d),i=h.success;return g.length>1&&(h.url=g[0],e=g[1]),h.success=function(b){f.html(e?a("
").html(b.replace(t,"")).find(e):b),i&&i.apply(f,arguments)},a.ajax(h),this};var A=encodeURIComponent;a.param=function(b,c){var d=[];return d.add=function(b,c){a.isFunction(c)&&(c=c()),null==c&&(c=""),this.push(A(b)+"="+A(c))},o(d,b,c),d.join("&").replace(/%20/g,"+")}}(d),function(a){a.fn.serializeArray=function(){var b,c,d=[],e=function(a){return a.forEach?a.forEach(e):void d.push({name:b,value:a})};return this[0]&&a.each(this[0].elements,function(d,f){c=f.type,b=f.name,b&&"fieldset"!=f.nodeName.toLowerCase()&&!f.disabled&&"submit"!=c&&"reset"!=c&&"button"!=c&&"file"!=c&&("radio"!=c&&"checkbox"!=c||f.checked)&&e(a(f).val())}),d},a.fn.serialize=function(){var a=[];return this.serializeArray().forEach(function(b){a.push(encodeURIComponent(b.name)+"="+encodeURIComponent(b.value))}),a.join("&")},a.fn.submit=function(b){if(0 in arguments)this.bind("submit",b);else if(this.length){var c=a.Event("submit");this.eq(0).trigger(c),c.isDefaultPrevented()||this.get(0).submit()}return this}}(d),function(a){"__proto__"in{}||a.extend(a.zepto,{Z:function(b,c){return b=b||[],a.extend(b,a.fn),b.selector=c||"",b.__Z=!0,b},isZ:function(b){return"array"===a.type(b)&&"__Z"in b}});try{getComputedStyle(void 0)}catch(b){var c=getComputedStyle;window.getComputedStyle=function(a){try{return c(a)}catch(b){return null}}}}(d),"object"==typeof c&&(b.exports=d)},{}],25:[function(a,b){var c=!1,d=0,e={pushAudience:function(a,b){var f=e;a.integrations&&a.integrations.olark&&a.integrations.olark&&(a.integrations.olark.operatorNotifications||a.integrations.olark.visitorStatus)&&(console.log("integrated! called"),c===!1&&"undefined"!=typeof olark?f.pushToOlark(a,b):d++<10&&setTimeout(f.pushAudience(a,b),50))},pushToOlark:function(a,b){c=!0,b.cache.get("fe_olark_vid").then(function(c){c||a.integrations.olark.operatorNotifications!==!0||(b.cache.set("fe_olark_vid",b._fe_bvid||""),olark("api.chat.sendNotificationToOperator",{body:"This visitor is in the Backstage audience destination "+a.name}),b.log("Notification sent to olark operator","info"))}),a.integrations.olark.visitorStatus===!0&&(olark("api.chat.updateVisitorStatus",{snippet:"Backstage audience destination: "+a.name}),b.log("Olark visitor status updated","info"))}};b.exports=e},{}],26:[function(a,b){b.exports={pushAudience:function(a,b){if(this.bctx=b,window.optimizely=window.optimizely||[],a.integrations&&a.integrations.optimizely&&a.integrations.optimizely.audienceId){var c=a.integrations.optimizely.audienceId;b.log("Pushing audience "+c+" to Optimizely."),this.bucketAndActivate(c)}},bucketAndActivate:function(a){var b=this.bctx;if(!window.optimizely||"function"!=typeof window.optimizely.addToAudience)return window.optimizely=window.optimizely||[],window.optimizely.push(["addToAudience",a]),!1;var c=(window.optimizely.allExperiments,function(c){return function(d){d==a&&-1===window.optimizely.activeExperiments.indexOf(c)&&(b.log("activating experiment "+c,"info"),window.optimizely.activate(c))}});window.optimizely.addToAudience(a);for(var d in window.optimizely.allExperiments)experiment=window.optimizely.allExperiments[d],!experiment.audiences||experiment.activation_mode&&"conditional"==experiment.activation_mode||experiment.audiences.forEach(c(d))}}},{}],27:[function(a,b){var c=a("./classic"),d=a("./x");optimizelyAdapter={pushAudience:function(a,b){this.bctx=b,c.pushAudience(a,b),d.pushAudience(a,b)},activate:function(a){d.activateExperiences(a)}},b.exports=optimizelyAdapter},{"./classic":26,"./x":28}],28:[function(a,b){var c=a("./xVariations");b.exports={pushAudience:function(a,b){this.bctx=b,window.optimizely=window.optimizely||[],b.log(a.integrations),a.integrations&&a.integrations.optimizely&&a.integrations.optimizely.isIntegrated&&(b.log("Pushing audience "+a.slug+" to OptimizelyX."),this.bucketAndActivate(a,b))},bucketAndActivate:function(a,b){document.cookie=a.slug+"=true",window.optimizely=window.optimizely||[];var c={type:"user",attributes:{}};c.attributes[a.name]=!0,window.optimizely.push(c),b.log("attribute setup complete",c)},activateExperiences:function(a){c.activate(a)}}},{"./xVariations":29}],29:[function(a,b){function c(){window.optimizely=window.optimizely||[],window.optimizely.push({type:"addListener",filter:{type:"lifecycle",name:"campaignDecided"},handler:d})}function d(a){(a.data.decision.variationId||a.data.decision.experimentId)&&a.data&&e(a.data.decision.experimentId,a.data.decision.variationId,a.data.decision.isCampaignHoldback)}function e(a,b,c){if(i.campaignState){var d=j(i.campaignState,{source:"optimizely",status:"running",campaignSourceId:a});if(0==d.length)i.log("FE - SKIPPING OptX VARIATION ACTIVATION: Backstage doesn't know about campaignSourceId="+a);else{var e=window.optimizely.feCampaignsInHoldback[a]===!0,f=window.optimizely.feActiveBucketedVariations[b]===!0;c?(i.log("FE - OptX HOLDBACK : optimizelyExperimentId ("+a+") visitor is in the Optimizely Holdback. This should never happen if Optimizely is configured correctly with the holdback at 0%"), i.push({event:"activate_variation",isActivateVariation:!0,source:"optimizely",attributes:{optimizely:{experimentId:a,variationId:"holdback",isOptXCampaignHoldback:!0}}})):(i.log("FE - OptX VARIATION ACTIVATED: { recommended:"+f+", optimizelyVariationId:"+b+", optimizelyExperimentId: '"+a+"', isInFEHoldback:"+e),i.push({event:"activate_variation",isActivateVariation:!0,source:"optimizely",attributes:{recommended:f,holdback:e,optimizely:{experimentId:a,variationId:b}}}))}}else i.log("FE - SKIPPING OptX VARIATION ACTIVATION: Backstage campaignState is not found")}function f(){if(i.log("FE - applyRecommendedVariationBucketing"),i.campaignState){var a=j(i.campaignState,{source:"optimizely",status:"running"});a.length>0?a.forEach(function(a){g(a)}):i.log("FE - NO OptX CAMPAIGNS Running : There were no campaigns returned as part of the campaign state in the visitor path response that are in a running state")}else i.log("No backstage.campaignState object was found....?Timing?")}function g(a){var b=a.campaignSourceId;if(a.isInHoldback)i.log("FE - HOLDBACK - The optimizely Experiment: "+a.campaignSourceId+" is in HOLDBACK in FunnelEnvy. FunnelEnvy ignores it and lets OptX make the bucketing decision."),window.optimizely.feCampaignsInHoldback[b]=!0;else if(a.recommendation){var c=a.recommendation.variationSourceId,d=h(c);d?(i.log("FE - BUCKETING - The optimizely Experiment: "+a.campaignSourceId+" has recommended and bucketed the variation: "+d.id),window.optimizely.feActiveBucketedVariations[d.id]=!0,optimizely.push({type:"bucketVisitor",experimentId:b,variationId:d.id})):i.log("FE - BUCKETING ERROR - The variation "+c+" was not found in the Optimizely X data object. FunnelEnvy can't do anything with it.")}else i.log("FE - NO RECOMMENDATION - The optimizely Experiment: "+a.campaignSourceId+" does NOT have a recommendation. FunnelEnvy ignores it and lets OptX make the bucketing decision.");return a}function h(a){if(!window.optimizely||!window.optimizely.get)return i.log("window['optimizely'].get is not found. Can't return the variation id"),null;var b=optimizely.get("data");return b.variations[a]}var i=null;const j=a("lodash.filter");b.exports={activate:function(a){i=a,this.bctx=a,window.optimizely?(window.optimizely.feActiveBucketedVariations={},window.optimizely.feCampaignsInHoldback={},c(),f(),i.log("setting the flag to trigger activation"),window.optimizely.feDone=!0):i.log("FE - window.optimizely not found")}}},{"lodash.filter":17}],30:[function(a,b){function c(){throw new Error("setTimeout has not been defined")}function d(){throw new Error("clearTimeout has not been defined")}function e(a){if(k===setTimeout)return setTimeout(a,0);if((k===c||!k)&&setTimeout)return k=setTimeout,setTimeout(a,0);try{return k(a,0)}catch(b){try{return k.call(null,a,0)}catch(b){return k.call(this,a,0)}}}function f(a){if(l===clearTimeout)return clearTimeout(a);if((l===d||!l)&&clearTimeout)return l=clearTimeout,clearTimeout(a);try{return l(a)}catch(b){try{return l.call(null,a)}catch(b){return l.call(this,a)}}}function g(){p&&n&&(p=!1,n.length?o=n.concat(o):q=-1,o.length&&h())}function h(){if(!p){var a=e(g);p=!0;for(var b=o.length;b;){for(n=o,o=[];++q1)for(var c=1;c0;)a+=c||"0";return a}function d(b){this.epoch=b&&b.epoch||Date.parse("2012"),this.base=b&&b.base||36,this.sep=b&&null!=b.sep?b.sep:"-",this.seed=b&&b.seeed||Math.floor(Math.random()*Math.pow(2,20)),this.maxTime=0,this.counter=0,this.unique=a.pid,this.append=null}d.create=function(a){return new d(a)},d.prototype.flake=function(){var a,b,d=Date.now()-this.epoch,e=this.base,f=this.maxTime;if(this.counter>8191||f>d)for(console.error(f>d?"Clock went backwards! "+d+" < "+f:"Sequence overflow: "+this.counter),console.error("Holding up id generation until next clock tick.");;)if(d=Date.now()-this.epoch,d>f)break;return d>f&&(this.counter=0,this.maxTime=d),d=parseInt(c(d.toString(2),41),2),a=++this.counter<<10|this.unique%1024,b=d.toString(e)+this.sep+a.toString(e),this.append&&(b+=this.sep+this.append),b},d.prototype.bigflake=function(){var b,c,d=Date.now(),e=this.base,f=this.maxTime;if(f>d)for(console.error("Clock went backwards! "+d+" < "+f),console.error("Holding up id generation until next clock tick.");;)if(d=Date.now()-this.epoch,d>f)break;return d>f&&(this.maxTime=d),b=a.hrtime()[1]>>7,sequence=parseInt(b.toString(2)+this.seed.toString(2),2),c=d.toString(e)+this.sep+sequence.toString(e),this.append&&(c+=this.sep+this.append),c},b.exports=d}).call(this,a("_process"))},{_process:30}],33:[function(a,b){var c={pushAudience:function(a,b){var c={nonInteraction:!0};if(a&&a.integrations&&a.integrations["universal-analytics"]){var d=a.integrations["universal-analytics"];ga?(d.setAsDimension&&d.dimensionId&&!isNaN(Number(d.dimensionId))&&(ga("set","dimension"+d.dimensionId,a.name),b.log("Universal Analytics dimension set","info")),d.sentAsEvent?(c.eventCategory=d.eventCategory||"",c.eventAction=d.eventAction||"",c.eventLabel=d.eventLabel||"",ga("send","event",c),b.log("Universal Analytics event sent","info")):d.setAsDimension&&(ga("send","event",c),b.log("Empty Universal Analytics event sent","info"))):b.log('The object "ga" is not defined, please verify that the file "analytics.js" was loaded correctly',"error")}}};b.exports=c},{}],34:[function(a,b){b.exports=function(a){return a&&"object"==typeof a&&"function"==typeof a.copy&&"function"==typeof a.fill&&"function"==typeof a.readUInt8}},{}],35:[function(a,b,c){(function(b,d){function e(a,b){var d={seen:[],stylize:g};return arguments.length>=3&&(d.depth=arguments[2]),arguments.length>=4&&(d.colors=arguments[3]),p(b)?d.showHidden=b:b&&c._extend(d,b),v(d.showHidden)&&(d.showHidden=!1),v(d.depth)&&(d.depth=2),v(d.colors)&&(d.colors=!1),v(d.customInspect)&&(d.customInspect=!0),d.colors&&(d.stylize=f),i(d,a,d.depth)}function f(a,b){var c=e.styles[b];return c?"["+e.colors[c][0]+"m"+a+"["+e.colors[c][1]+"m":a}function g(a){return a}function h(a){var b={};return a.forEach(function(a){b[a]=!0}),b}function i(a,b,d){if(a.customInspect&&b&&A(b.inspect)&&b.inspect!==c.inspect&&(!b.constructor||b.constructor.prototype!==b)){var e=b.inspect(d,a);return t(e)||(e=i(a,e,d)),e}var f=j(a,b);if(f)return f;var g=Object.keys(b),p=h(g);if(a.showHidden&&(g=Object.getOwnPropertyNames(b)),z(b)&&(g.indexOf("message")>=0||g.indexOf("description")>=0))return k(b);if(0===g.length){if(A(b)){var q=b.name?": "+b.name:"";return a.stylize("[Function"+q+"]","special")}if(w(b))return a.stylize(RegExp.prototype.toString.call(b),"regexp");if(y(b))return a.stylize(Date.prototype.toString.call(b),"date");if(z(b))return k(b)}var r="",s=!1,u=["{","}"];if(o(b)&&(s=!0,u=["[","]"]),A(b)){var v=b.name?": "+b.name:"";r=" [Function"+v+"]"}if(w(b)&&(r=" "+RegExp.prototype.toString.call(b)),y(b)&&(r=" "+Date.prototype.toUTCString.call(b)),z(b)&&(r=" "+k(b)),0===g.length&&(!s||0==b.length))return u[0]+r+u[1];if(0>d)return w(b)?a.stylize(RegExp.prototype.toString.call(b),"regexp"):a.stylize("[Object]","special");a.seen.push(b);var x;return x=s?l(a,b,d,p,g):g.map(function(c){return m(a,b,d,p,c,s)}),a.seen.pop(),n(x,r,u)}function j(a,b){if(v(b))return a.stylize("undefined","undefined");if(t(b)){var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string")}return s(b)?a.stylize(""+b,"number"):p(b)?a.stylize(""+b,"boolean"):q(b)?a.stylize("null","null"):void 0}function k(a){return"["+Error.prototype.toString.call(a)+"]"}function l(a,b,c,d,e){for(var f=[],g=0,h=b.length;h>g;++g)f.push(F(b,String(g))?m(a,b,c,d,String(g),!0):"");return e.forEach(function(e){e.match(/^\d+$/)||f.push(m(a,b,c,d,e,!0))}),f}function m(a,b,c,d,e,f){var g,h,j;if(j=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},j.get?h=j.set?a.stylize("[Getter/Setter]","special"):a.stylize("[Getter]","special"):j.set&&(h=a.stylize("[Setter]","special")),F(d,e)||(g="["+e+"]"),h||(a.seen.indexOf(j.value)<0?(h=q(c)?i(a,j.value,null):i(a,j.value,c-1),h.indexOf("\n")>-1&&(h=f?h.split("\n").map(function(a){return" "+a}).join("\n").substr(2):"\n"+h.split("\n").map(function(a){return" "+a}).join("\n"))):h=a.stylize("[Circular]","special")),v(g)){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function n(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.replace(/\u001b\[\d\d?m/g,"").length+1},0);return e>60?c[0]+(""===b?"":b+"\n ")+" "+a.join(",\n ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function o(a){return Array.isArray(a)}function p(a){return"boolean"==typeof a}function q(a){return null===a}function r(a){return null==a}function s(a){return"number"==typeof a}function t(a){return"string"==typeof a}function u(a){return"symbol"==typeof a}function v(a){return void 0===a}function w(a){return x(a)&&"[object RegExp]"===C(a)}function x(a){return"object"==typeof a&&null!==a}function y(a){return x(a)&&"[object Date]"===C(a)}function z(a){return x(a)&&("[object Error]"===C(a)||a instanceof Error)}function A(a){return"function"==typeof a}function B(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function C(a){return Object.prototype.toString.call(a)}function D(a){return 10>a?"0"+a.toString(10):a.toString(10)}function E(){var a=new Date,b=[D(a.getHours()),D(a.getMinutes()),D(a.getSeconds())].join(":");return[a.getDate(),J[a.getMonth()],b].join(" ")}function F(a,b){return Object.prototype.hasOwnProperty.call(a,b)}var G=/%[sdj%]/g;c.format=function(a){if(!t(a)){for(var b=[],c=0;c=f)return a;switch(a){case"%s":return String(d[c++]);case"%d":return Number(d[c++]);case"%j":try{return JSON.stringify(d[c++])}catch(b){return"[Circular]"}default:return a}}),h=d[c];f>c;h=d[++c])g+=q(h)||!x(h)?" "+h:" "+e(h);return g},c.deprecate=function(a,e){function f(){if(!g){if(b.throwDeprecation)throw new Error(e);b.traceDeprecation?console.trace(e):console.error(e),g=!0}return a.apply(this,arguments)}if(v(d.process))return function(){return c.deprecate(a,e).apply(this,arguments)};if(b.noDeprecation===!0)return a;var g=!1;return f};var H,I={};c.debuglog=function(a){if(v(H)&&(H=b.env.NODE_DEBUG||""),a=a.toUpperCase(),!I[a])if(new RegExp("\\b"+a+"\\b","i").test(H)){var d=b.pid;I[a]=function(){var b=c.format.apply(c,arguments);console.error("%s %d: %s",a,d,b)}}else I[a]=function(){};return I[a]},c.inspect=e,e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},c.isArray=o,c.isBoolean=p,c.isNull=q,c.isNullOrUndefined=r,c.isNumber=s,c.isString=t,c.isSymbol=u,c.isUndefined=v,c.isRegExp=w,c.isObject=x,c.isDate=y,c.isError=z,c.isFunction=A,c.isPrimitive=B,c.isBuffer=a("./support/isBuffer");var J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];c.log=function(){console.log("%s - %s",E(),c.format.apply(c,arguments))},c.inherits=a("inherits"),c._extend=function(a,b){if(!b||!x(b))return a;for(var c=Object.keys(b),d=c.length;d--;)a[c[d]]=b[c[d]];return a}}).call(this,a("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":34,_process:30,inherits:14}],36:[function(a,b){!function(a,c,d){"undefined"!=typeof b&&b.exports?b.exports=d():a[c]=d()}(this,"verge",function(){function a(){return{width:k(),height:l()}}function b(a,b){var c={};return b=+b||0,c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c}function c(a,c){return a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?b(a.getBoundingClientRect(),c):!1}function d(b){b=null==b?a():1===b.nodeType?c(b):b;var d=b.height,e=b.width;return d="function"==typeof d?d.call(b):d,e="function"==typeof e?e.call(b):e,e/d}var e={},f="undefined"!=typeof window&&window,g="undefined"!=typeof document&&document,h=g&&g.documentElement,i=f.matchMedia||f.msMatchMedia,j=i?function(a){return!!i.call(f,a).matches}:function(){return!1},k=e.viewportW=function(){var a=h.clientWidth,b=f.innerWidth;return b>a?b:a},l=e.viewportH=function(){var a=h.clientHeight,b=f.innerHeight;return b>a?b:a};return e.mq=j,e.matchMedia=i?function(){return i.apply(f,arguments)}:function(){return{}},e.viewport=a,e.scrollX=function(){return f.pageXOffset||h.scrollLeft},e.scrollY=function(){return f.pageYOffset||h.scrollTop},e.rectangle=c,e.aspect=d,e.inX=function(a,b){var d=c(a,b);return!!d&&d.right>=0&&d.left<=k()},e.inY=function(a,b){var d=c(a,b);return!!d&&d.bottom>=0&&d.top<=l()},e.inViewport=function(a,b){var d=c(a,b);return!!d&&d.bottom>=0&&d.right>=0&&d.top<=l()&&d.left<=k()},e})},{}],37:[function(a,b,c){(function(a){function d(){}b.exports=c=function(a,b,c,e){return"undefined"==typeof a?new d:(new d).interval(a).times(b).condition(c).done(e)},d.prototype.interval=function(a){var b=this;return b._interval=a,b},d.prototype.times=function(a){var b=this;return b._times=a,b},d.prototype.condition=function(a,b){var c=this;return c._condition=a,b?c.done(b):c},d.prototype.done=function(b){var c=this;if(!c._times)throw new Error("waitUntil.times() not called yet");if(!c._interval)throw new Error("waitUntil.interval() not called yet");if(!c._condition)throw new Error("waitUntil.condition() not called yet");return function d(e,f){e==c._times?b(f):setTimeout(function(){function f(a){a?b(a):d(e+1,a)}c._condition.length?c._condition(f):a.nextTick(function(){f(c._condition())})},c._interval)}(0),c}}).call(this,a("_process"))},{_process:30}],38:[function(a,b){"use strict";var c=a("optimizely-adapter/client-adapter"),d=a("adroll-adapter/client-adapter"),e=a("olark-adapter/client-adapter"),f=a("universal-analytics-adapter/client-adapter"),g=a("uberflip-adapter/client-adapter"),h=a("convert-adapter/client-adapter"),i=a("demandbase-adapter/client-adapter"),j=a("marketo-adapter/client-adapter"),k=a("kickfire-adapter/client-adapter"),l=a("clearbit-adapter/client-adapter"),m=a("behavioral-adapter/client-adapter"),n={getDestinationAdapters:function(){var a={optimizely:c,adroll:d,olark:e,uberflip:g,universal_analytics:f,convert:h};return a},getSourceAdapters:function(a){var b=[];return b.push(i(a)),b.push(j(a)),b.push(k(a)),b.push(m(a)),b.push(l(a)),b}};b.exports=n},{"adroll-adapter/client-adapter":3,"behavioral-adapter/client-adapter":8,"clearbit-adapter/client-adapter":10,"convert-adapter/client-adapter":11,"demandbase-adapter/client-adapter":13,"kickfire-adapter/client-adapter":15,"marketo-adapter/client-adapter":22,"olark-adapter/client-adapter":25,"optimizely-adapter/client-adapter":27,"uberflip-adapter/client-adapter":31,"universal-analytics-adapter/client-adapter":33}],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")}Object.defineProperty(c,"__esModule",{value:!0}),c.Audiences=void 0;{var f=a("babel-runtime/regenerator"),g=d(f),h=function(){function a(a,b){for(var c=0;c "+JSON.stringify(b)),a.pdcampaigns.init(a.organizationData,!1),a.pdcampaigns.runOrganizationJavascript(a.organizationData),a.pushInitialCustomEvents(),a.processRequest()):(a.showPage(),a.log("***FLASH: Unhiding because FE content was not allowed to run"),a.log("FE - not allowed to run ->"+JSON.stringify(b)))})["catch"](function(b){throw a.showPage(),b});case 19:case"end":return d.stop()}},null,this,[[2,8]])},hidePage:function(){var a=this;a.isHidingEnabledForOrg&&(document.documentElement.style.opacity="0")},showPage:function(){var a=this;a.isHidingEnabledForOrg&&(document.documentElement.style.opacity="100")},checkIfAllowedToRun:function(){var a=this,b="isAllowedToRun";return a.isPreview===!0?Promise.resolve({isAllowedToRunForOrganization:!0}):a.cache.get(b).then(function(c){if(c&&c.country&&c.expires&&c.expires>new Date)return c;if("5a556ca4488a1a4c5398309b"!==a.config.customerId)return a.log("Skipping EU check for org "+a.config.customerId),{isAllowedToRunForOrganization:!0};a.log("Performing EU check for org "+a.config.customerId);var d="https://ipinfo.io/geo?token=8e3f8f371b370e";return t.simpleAjax(d,null,a,"GET").then(function(c){var d=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","GB"],e=c?c.country||"unknown":"unknown",f=d.includes(e),g=864e5,h={country:e,isEU:f,isAllowedToRunForOrganization:!f,expires:new Date((new Date).getTime()+g)};return h.isAllowedToRunForOrganization||a.log(JSON.stringify(c)),a.cache.set(b,h).then(function(a){return a})})["catch"](function(a){throw a.name="ipinfo error",a})})},sendPageViewEvent:function(){var a=this,b={event:"page_view",isPageView:!0};document&&document.location&&(b.pageURL=document.location.href),a.push({event:"page_view",isPageView:!0,pageURL:window.location.href})},pushInitialCustomEvents:function(){var a=this;this.log("pushing initial custom events"),window&&window.funnelEnvy&&window.funnelEnvy instanceof Array&&window.funnelEnvy.forEach(function(b){a.push(b)})},processRequest:function(){var a=this;return l.getQueryParam("fe_preview")&&this.handlePreviewRequest(),this.runBrowserConditions(),this.getAudiences().then(function(){return a.sendPageViewEvent()})["catch"](function(a){throw this.bugsnag.notifyException(a,"Uncaught Error in getAudiences"),this.log(a,"error"),a})},runBrowserConditions:function(){var a=this;a.log("executing browser condition");var b=Array.isArray(a.organizationData.browserInfoConditions)?a.organizationData.browserInfoConditions:[],c={};w.forEach(b,function(a){c[a.id]={conditionGroups:[]},w.forEach(a.conditionGroups,function(b){var d={conditionList:[]};w.forEach(b.conditionList,function(){d.conditionList.push({result:null})}),c[a.id].conditionGroups.push(d)})}),window.funnelEnvy.browserInfoConditionResults=c,w.forEach(b,function(b){w.forEach(b.conditionGroups,function(c){w.forEach(c.conditionList,function(c){if("ip_address"===c.comparisonAttr)return void(window.funnelEnvy.browserInfoConditionResults[b.id]=c);var d="var f = function(){\r\n";d+=c.condition+"\r\n};\r\n",d+="var val = f();\r\n",d+="window.funnelEnvy.browserInfoConditionResults['"+b.id+"'] = val;",a.log(d),u.evalHelper.evalJs(d,a.bugsnag,"runBrowserConditions")})})})},handlePreviewRequest:function(){var a,b;return f["default"].async(function(c){for(;;)switch(c.prev=c.next){case 0:return a=this,b=void 0,this.log("preview params available"),this.hasPreview=!0,c.next=6,f["default"].awrap(this.pdcampaigns.getCampaignPreview({customerID:this.config.customerId,campaign:l.getQueryParam("fe_campaign"),experienceIndex:l.getQueryParam("fe_index"),baseurl:this.config.apiUrl,bctx:a}));case 6:return b=c.sent,c.abrupt("return",this.pdcampaigns.init(b));case 8:case"end":return c.stop()}},null,this)},getAudiences:function(a){var b,c,d,e,g;return f["default"].async(function(h){for(;;)switch(h.prev=h.next){case 0:if(b=this,c=void 0,!(this.openRequests<1)){h.next=28;break}return h.prev=3,this.log("Initial getAudiences() request."),h.next=7,f["default"].awrap(this.audiences.get(a));case 7:d=h.sent,c=m.extend(d,this.organizationData),c.bctx&&(c.bctx.orgRaw=c.org_raw),h.next=17;break;case 12:return h.prev=12,h.t0=h["catch"](3),h.t0 instanceof Error?b.bugsnag.notifyException(h.t0,"Error getting audiences"):(e=new Error("Something went wrong while classifying visitor"),b.bugsnag.notifyException(e,"Error getting audiences",h.t0)),b.log(h.t0,"error"),h.abrupt("return");case 17:return h.prev=17,h.next=20,f["default"].awrap(this.distributor.push(c));case 20:return h.abrupt("return",h.sent);case 23:return h.prev=23,h.t1=h["catch"](17),h.t1 instanceof Error?b.bugsnag.notifyException(h.t1,"Error processing result"):(g=new Error("Something went wrong while processing visitor path result"),b.bugsnag.notifyException(g,"Error processing result",h.t1)),b.log(h.t1,"error"),h.abrupt("return");case 28:b.waitUntil().interval(50).times(100).condition(function(){return b.openRequests<1}).done(function(){return b.log("Now able to call getAudiences() without duplicate work for account data."),b.getAudiences(a)});case 29:case"end":return h.stop()}},null,this,[[3,12],[17,23]])},_pushDataToDataLayer:function(a,b,c){if(a&&b&&c){"string"==typeof c&&(c=JSON.parse(c));var d={event:"backstage."+a,backstage:{}};d.backstage[b]={},"audiences"===b||"destinations"===b?c.forEach(function(a){var c=a.slug;d.backstage[b][c]=a,d.backstage[b][c].member=!0}):d.backstage[b]=c,this.dataLayer.push(d)}return c},push:function(a){var b,c,d,e;return f["default"].async(function(g){for(;;)switch(g.prev=g.next){case 0:if(g.prev=0,b={event:null,data:a},!a.event){g.next=22;break}return c=[],d=this,b._fe_pid=this._fe_pid||window.funnelEnvy._fe_pid,b._fe_bvid=this._fe_bvid||window.funnelEnvy._fe_bvid,b.event=a.event,g.prev=8,g.next=11,f["default"].awrap(d.pdcampaigns.getCampaignsCache(d));case 11:return e=g.sent,e&&Object.keys(e).forEach(function(a){b.data[a]=e[a]}),c.push(d.events.track("custom_event",b)),g.next=16,f["default"].awrap(Promise.all(c));case 16:g.next=22;break;case 18:g.prev=18,g.t0=g["catch"](8),d.log("err",g.t0),d.log(g.t0,"error");case 22:g.next=29;break;case 24:g.prev=24,g.t1=g["catch"](0),d.log("Unexpected error in bctx.push call."),d.log("err",g.t1),d.log(g.t1,"error");case 29:case"end":return g.stop()}},null,this,[[0,24],[8,18]])},log:function(a,b){var c={warn:"color:orange;",error:"color:red;font-weight:bold;",info:"color:blue;",success:"color:green;"};if(this.config.debug&&void 0!==console){var d=c[b];if(void 0!==d){if("error"===b){var e=new z("bctx:Error",{detail:{errObject:a}});window.dispatchEvent(e)}console.log("%c"+a,d),a.stack&&console.log(a.stack,"color:gray;")}else b?console.log(a,b):console.log(a)}},createConfig:function(a){var b={debug:!1,apiUrl:"https://api.funnelenvy.com",publicCDN:"https://cdn2.funnelenvy.com",localforageNamespace:"BACKSTAGE_AUDIENCES",activeCampaignsCache:"ACTIVE_CAMPAIGNS",customEventsNamespace:"CUSTOM_EVENTS",customerId:!1,dataLayer:window.dataLayer||[],forceRefresh:!1,stage:"production",test:!1},c=m.extend(b,a);return c.debug=l.getQueryParam("fe-debug")||c.debug,"localhost"===window.location.hostname&&(c.stage="development"),("//backstage.funnelenvy.com"===c.apiUrl||"//api.funnelenvy.com"===c.apiUrl||"http://api.funnelenvy.com"===c.apiUrl)&&(c.apiUrl="https://backstage.funnelenvy.com"), c}},b.exports=BackStage},{"./audiences.js":39,"./bugtracker":41,"./cache.js":42,"./customEvent.js":44,"./dependencies/data-layer-helper":46,"./distributor":47,"./evalHelper":48,"./events":49,"./forms":51,"./lib/extend.js":55,"./lib/get-query-param.js":56,"./lib/get-unique-id":57,"./lib/simple-ajax":59,"./organization.js":61,"./pdcampaigns.js":63,"./privacy":64,"./urls":65,"babel-runtime/regenerator":7,lodash:19,"npm-zepto":24,unik:32,"wait-until":37}],41:[function(a,b,c){"use strict";function d(a){var b=e({apiKey:"e0823d3e321e8c1750bb5f95eaf022e7",autoNotify:!1,autoBreadcrumbs:!1,autoCaptureSessions:!1,releaseStage:a.config.debug?"development":"production",appVersion:f.version,beforeSend:function(a){a.updateMetaData("eventContext",{type:a.metaData&&a.metaData.eventType,clonedError:a.metaData&&a.metaData.eventClone})}});return b.user={customerId:a.config.customerId},{notifyException:function(a,c,d){b.metaData=d||{},b.notify(a)},notify:function(a,c,d){b.metaData=d,b.notify(new Error(c))}}}Object.defineProperty(c,"__esModule",{value:!0}),c.bugTracker=d;var e=a("bugsnag-js"),f=a("../config.json")},{"../config.json":1,"bugsnag-js":9}],42:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!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=function(){function a(a,b){for(var c=0;c=new Date?d.log(b.provider+" cache entry found and will expire on "+new Date(a.identities[f].expires)):c=!1}),c}}]),a}()}},{"localforage/dist/localforage.js":16}],43:[function(a,b,c){"use strict";function d(a){a.bctx.log("classifying @"+a.baseurl+" ",{identities:a.identities,customer:a.customerID,visitor:a.visitorID});var b=a.bctx,c={identities:a.identities,browserConditionResults:a.browserConditionResults,customer:a.customerID,visitor:a.visitorID,_fe_pid:a.pid,testAudienceSlug:a.testAudienceSlug,ignoreCookie:a.ignoreCookie,privacy:a.privacy},d=a.baseurl+"/visitor";return e.simpleAjax(d,c,b,"POST").then(function(b){var c={audiences:b.audiences,destinations:b.destinations,identities:a.identities,visitor:a.visitorID,forms:b.forms,accountData:b.accountData,contentAttributes:b.contentAttributes,campaigns:b.campaigns,campaignState:b.campaignState,unmatchedAudiences:b.unmatchedAudiences};return c})["catch"](function(a){throw a.name="CLASSIFY_ERROR",a})}Object.defineProperty(c,"__esModule",{value:!0}),c.classify=d;var e=a("./lib/simple-ajax")},{"./lib/simple-ajax":59}],44:[function(a,b){(function(a){"use strict";function c(){try{var a=new d("cat",{detail:{foo:"bar"}});return"cat"===a.type&&"bar"===a.detail.foo}catch(b){return!1}}var d=a.CustomEvent;b.exports=c()?d:"undefined"!=typeof document&&"function"==typeof document.createEvent?function(a,b){var c=document.createEvent("CustomEvent");return b?c.initCustomEvent(a,b.bubbles,b.cancelable,b.detail):c.initCustomEvent(a,!1,!1),c}:function(a,b){var c=document.createEventObject();return c.type=a,b?(c.bubbles=Boolean(b.bubbles),c.cancelable=Boolean(b.cancelable),c.detail=b.detail):(c.bubbles=!1,c.cancelable=!1),c}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],45:[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")}Object.defineProperty(c,"__esModule",{value:!0}),c.Customizer=void 0;{var g=function(){function a(a,b){for(var c=0;c"+b+"";for(var h=f.childNodes,j=0;h[j];j++)!g||!a.nodeName(h[j],"script")||h[j].type&&"text/javascript"!==h[j].type.toLowerCase()||a.evalScript(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j],c,d);m.log("Executing: "+b)}else m.log("Preview has to add an eventListener because document.readyState = "+document.readyState),document.addEventListener?document.addEventListener("DOMContentLoaded",function(){return a.insertAndExecute(b,c,d)}):(m.log("document.addEventListener is null or undefined;"),m.log("Error: Failed to execute JS string because document not ready"))}},{key:"isCustomJavascriptObject",value:function(a){return!Array.isArray(a)}},{key:"runCustomJavascript",value:function(b,c){var d=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;a.isCustomJavascriptObject(b)?a.runCustomJavascriptObject(b,c,d):b.forEach(function(b){a.insertAndExecute(b,c,d)})}},{key:"runCustomJavascriptObject",value:function(a,b,c){var d=this,e=[],f=[],g=a.customJavascriptInstructions;g&&g.forEach(function(a){a.changes.forEach(function(b){b.selector=a.selector,f.push(b)})});var h=k["default"](f,function(a){return a.lastChanged});window.funnelEnvy.evalHelperRef=l.evalHelper;var i=" var sortedChanges = "+JSON.stringify(h)+";\n\n for (var i=0; i ",a),c.log("rendering the results after getting back audiences..."),c.pdcampaigns.init(a).then(f.checkGoals).then(function(a){return b.forms.run(a)}).then(this.expose)["catch"](function(a){var b={CLASSIFY_ERROR:{what_failed:"API HTTP request",message:"failure in classify request"},CACHE_ERROR:{what_failed:"localforage",message:"failure in classify cache"},EXPOSE_ERROR:{what_failed:"expose",message:"failure in classified audience/destination push"},EXP_TRACKING_ERROR:{what_failed:"expose",message:"failure in classified audience/destination push"},missing:{what_failed:"expose",message:"unknown failure in fetchAudiences"}},d=b[a.name];d||(d=b.missing),c.bugsnag.notifyException(a,d.message),c.log(a,"error")})}}]),a}()}},{"./expose":50,"./forms":51,"./goals":52}],48:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var evalHelper={evalJs:function evalJs(jsString,bugsnag,originatorMethod){originatorMethod=originatorMethod||"unknown";try{eval(jsString)}catch(e){window.funnelEnvy.log("Error trying to execute custom JS:",e),bugsnag&&bugsnag.notifyException(e,"Error evaluating js from method: "+originatorMethod)}}};exports.evalHelper=evalHelper},{}],49:[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")}Object.defineProperty(c,"__esModule",{value:!0}),c.Events=void 0;var f=a("babel-runtime/regenerator"),g=d(f),h=function(){function a(a,b){for(var c=0;c0?c(e).val(f):c(b.selector).append('""&&!a.isArchived&&a.sourceId>""}function i(a){var b=void 0;switch(a.holdbackMode){case o.Variation:b=new r(a);break;case o.Random:case void 0:b=new q(a);break;default:b=new p(a),m.log("Unknown holdback mode: '"+a.holdbackMode+"'")}return b}Object.defineProperty(c,"__esModule",{value:!0}),c.VariationHoldback=c.RandomHoldback=c.Holdback=c.HoldbackModes=void 0;var j=function(){function a(a,b){for(var c=0;c2&&void 0!==arguments[2]?arguments[2]:m.Customizer,d=void 0;switch(a.source){case r.Custom:d=new y(a,b,c);break;case r.Drift:d=new x(a,b,c);break;case r.Google:d=new w(a,b,c);break;case r.Optimizely:d=new v(a,b,c);break;case r.Visual:d=new z(a,b,c);break;default:n.log('Unknown campaign source type "'+a.source+'", using generic campaign'),d=new s(a,b,c)}return d}Object.defineProperty(c,"__esModule",{value:!0}),c.VisualCampaign=c.CustomCampaign=c.DriftCampaign=c.GoogleCampaign=c.OptimizelyCampaign=c.InternalCampaign=c.ExternalCampaign=c.PDCampaign=c.CampaignSource=c.CampaignStatus=void 0;var i=function(){function a(a,b){for(var c=0;c2&&void 0!==arguments[2]?arguments[2]:m.Customizer;g(this,a),k.assign(this,k.defaults(b,{audience:null,customCss:[],customJavascript:[],pageTargets:[],variations:[]})),this.variations=k.map(this.variations,function(a){return o.variationFactory(a,d)}),this._holdback=l.holdbackFactory(this),this._customizer=d,this._urlMatcher=c}return i(a,[{key:"chooseVariation",value:function(a){var b=a.getCampaignStateFor(this.id);this.applyCampaignState(b)}},{key:"activate",value:function(a){return a?(n.log("Applying variation "+a.id+" for campaign "+this.id),this._activeVariation=a instanceof o.Variation?a:this.getVariation(a.id),a):void 0}},{key:"activateById",value:function(a){var b=this.getVariation(a);return this.activate(b)}},{key:"applyCampaignState",value:function(a){this._isInHoldback=a.isInHoldback}},{key:"audienceMatches",value:function(a){return!this.hasAudience||-1!==k.indexOf(a,this.audience)}},{key:"getVariation",value:function(a){return k.find(this.variations,{id:a})}},{key:"runFor",value:function(){arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.activeVariation,arguments.length>2&&void 0!==arguments[2]?arguments[2]:!1}},{key:"runVariation",value:function(){}},{key:"shouldRunFor",value:function(a){var b=!1;return a.isInPreview?(n.log("Running "+this.label+" in preview"),b=!0):this._urlMatcher.hasUrlMatched(this.pageTargets)?this.audienceMatches(a.audiences)?this.isRunning?b=!0:n.log("Skipping "+this.label+" because its state is '"+this.state+"' not 'running'"):n.log("Skipping "+this.label+" because visitor doesn't match audience '"+this.audience+"'"):n.log("Skipping "+this.label+" because its pageTargets don't match"),b}},{key:"activeVariation",get:function(){return this._activeVariation}},{key:"isInHoldback",get:function(){return Boolean(this._isInHoldback)}},{key:"isRunning",get:function(){return this.status===q.Running}},{key:"hasAudience",get:function(){return Boolean(this.audience)}},{key:"hasContent",get:function(){return!1}},{key:"hasRun",get:function(){return Boolean(this._hasRun)}},{key:"hasRunVariation",get:function(){return Boolean(this._hasRunVariation)}},{key:"label",get:function(){return this.slug+" ("+this.id+")"}}]),a}(),t=c.ExternalCampaign=function(a){function b(){return g(this,b),e(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments)); }return f(b,a),b}(s),u=c.InternalCampaign=function(a){function b(){return g(this,b),e(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}return f(b,a),i(b,[{key:"chooseVariation",value:function(a){var b=a.getCampaignStateFor(this.id);this.applyCampaignState(b);var c=void 0;return b.isInHoldback?(n.log("FE - HOLDBACK - The Campaign: "+this.id+" is in "+(this.holdbackMode||"random")+" HOLDBACK in FunnelEnvy. APPLYING RANDOM VARIATION."),c=this._holdback.variation):k.get(b,"recommendation.variationId")?(n.log("FE - BUCKETING - The Campaign: "+this.id+" has recommended and bucketed the variation: "+b.recommendation.variationId),c=this.getVariation(b.recommendation.variationId)):n.log("FE - NO RECOMMENDATION - The campaign: "+this.id+" does NOT have a recommendation."),this.activate(c),c}},{key:"runFor",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new p.Visitor,b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.activeVariation;return n.log("Testing run for "+this.label),this.shouldRunFor(a)?(this.runCampaignJSFor(a),this.runVariationFor(a,b),this.hasRun||this.hasRunVariation):(n.log("Aborting run for campaign "+this.label),!1)}},{key:"runCampaignJSFor",value:function(){arguments.length>0&&void 0!==arguments[0]?arguments[0]:new p.Visitor;return this.hasRun?(n.log("Skipping "+this.label+" campaign JS because it has already run"),!1):(n.log("Running campaign JS for "+this.label),this._customizer.insertStyles(this.customCss),this._customizer.runCustomJavascript(this.customJavascript,this.id),this._hasRun=!0,!0)}},{key:"runVariationFor",value:function(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new p.Visitor,b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.activeVariation;return b?this.hasRunVariation?(n.log("Skipping "+this.label+" variation because it has already run"),!1):(n.log(JSON.stringify(this.activeVariation,void 0,2)),this._hasRunVariation=this.activeVariation.runFor(a,this),this.hasRunVariation):(n.log("Skipping "+this.label+" variation because none has been chosen"),!1)}},{key:"hasContent",get:function(){return!0}}]),b}(s),v=c.OptimizelyCampaign=function(a){function b(){return g(this,b),e(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}return f(b,a),b}(t),w=c.GoogleCampaign=function(a){function b(){return g(this,b),e(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}return f(b,a),b}(t),x=c.DriftCampaign=function(a){function b(){return g(this,b),e(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}return f(b,a),b}(t),y=c.CustomCampaign=function(a){function b(){return g(this,b),e(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}return f(b,a),b}(u),z=c.VisualCampaign=function(a){function b(){return g(this,b),e(this,(b.__proto__||Object.getPrototypeOf(b)).apply(this,arguments))}return f(b,a),b}(u)},{"./customizer":45,"./holdback":53,"./logger":60,"./variation":66,"./visitor":67,lodash:19}],63:[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")}Object.defineProperty(c,"__esModule",{value:!0}),c.PDCampaigns=void 0;{var f=a("babel-runtime/regenerator"),g=d(f),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=function(){function a(a,b){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:!0;return new Promise(function(d,e){if(void 0===a){var f=new Error("no options passed");f.name="OPTIONS_ERROR",e(f)}b.options=a,b.bctx=a.bctx,b.bctx.$(function(){b.options.pdcampaigns=b.options.pdcampaigns||[],c&&b.checkCampaigns(b.campaignsFitToRun),d(a)})})}},{key:"runOrganizationJavascript",value:function(a){a=a||{},a.org_raw=a.org_raw||{};var b=a.org_raw.orgJs;b&&l.Customizer.insertAndExecute(b)}},{key:"checkCampaigns",value:function(a){if(this.isPreview){this.bctx.campaignId||this.bctx.log("No campaign id was passed for the preview "),this.bctx.variationId||this.bctx.log("No variation id was passed for the preview ");var b=p.find(a,{id:this.bctx.campaignId});b?(this.bctx.variationId=this.bctx.variationId||"",b.activateById(this.bctx.variationId),b.activeVariation||this.bctx.log("No variation with id "+this.bctx.variationId+" was found for campaign "+this.bctx.campaignId),this.previewCampaign(b)):this.bctx.log("No campaign with id "+this.bctx.campaignId+" was found for this organization.")}else this.runCampaigns(a)}},{key:"campaignIsFitToRun",value:function(a){return this.isPreview||a.isRunning&&this.bctx.urls.hasUrlMatched(a.pageTargets)}},{key:"getAudiences",value:function(){var a,b;return g["default"].async(function(c){for(;;)switch(c.prev=c.next){case 0:return c.next=2,g["default"].awrap(this.bctx.cache.get(this.bctx.config.localforageNamespace));case 2:return a=c.sent,b=[],a&&"object"===("undefined"==typeof a?"undefined":h(a))&&a.audiences&&(b=a.audiences.map(function(a){return a.id})),c.abrupt("return",b);case 6:case"end":return c.stop()}},null,this)}},{key:"getVisitor",value:function(){var a;return g["default"].async(function(b){for(;;)switch(b.prev=b.next){case 0:return b.next=2,g["default"].awrap(this.getAudiences());case 2:return a=b.sent,b.abrupt("return",new m.IdentifiedVisitor({audiences:a,campaignState:this.options.campaignState,isInPreview:this.isPreview}));case 4:case"end":return b.stop()}},null,this)}},{key:"runCampaigns",value:function(a){var b,c=this;return g["default"].async(function(d){for(;;)switch(d.prev=d.next){case 0:return d.next=2,g["default"].awrap(this.getVisitor());case 2:b=d.sent,a.forEach(function(a){c.runCampaignFor(a,b)}),this.bctx.log("***FLASH: Unhiding because all FE JS should have executed by now"),document.documentElement.style.opacity="100";case 6:case"end":return d.stop()}},null,this)}},{key:"previewCampaign",value:function(a){this.bctx.log("Preview for campaign ",a),this.runCampaignFor(a,new m.Visitor({isInPreview:!0}))||this.bctx.log("Preview failed: No variations exist in the campaign object."),document.documentElement.style.opacity="100"}},{key:"runCampaignFor",value:function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:new m.Visitor,c=a.activeVariation||a.chooseVariation(b),d=a.runFor(b,c);return c&&d&&this.notifyBackstageOfVariationActivation(a,c),d}},{key:"runMatchingCampaigns",value:function(){var a=new m.Visitor;this.isPreview||this.campaignsFitToRun.forEach(function(b){return b.runFor(a)})}},{key:"notifyBackstageOfVariationActivation",value:function(a,b){var c=a.isInHoldback,d=!c,e=n.getId(a),f=n.getId(b);this.bctx.log("FE - Custom Campaign VARIATION ACTIVATED: { recommended: "+d+", variation: '"+f+"', campaign: '"+e+"'"),this.bctx.push({event:"activate_variation",isActivateVariation:!0,attributes:{source:"funnelenvy",recommended:d,holdback:c,campaignId:e,variationId:f,optimizely:{info:"fe-custom-campaign",experimentId:e,variationId:f}}})}},{key:"getCampaignsCache",value:function(a){var b=a||this.bctx;return b.cache.get(b.config.activeCampaignsCache).then(function(a){a=a||JSON.stringify([]);var c,d=a?JSON.parse(a):a;return d.forEach(function(a){c=c||{campaigns:[],variations:[]},c.campaigns.push(a.campaignId),c.variations.push(a.variation)}),c&&(c.organization=b.config.customerId,c.bvid=b._fe_bvid),c})}},{key:"getCampaignPreview",value:function(a){var b,c,d,e,f,h;return g["default"].async(function(i){for(;;)switch(i.prev=i.next){case 0:return b=this,c=a.bctx,d=a.baseurl+"/campaign-preview/"+a.customerID+"/"+a.campaign+"/"+a.experienceIndex,e="",i.prev=4,i.next=7,g["default"].awrap(j.simpleAjax(d,e,c,"GET"));case 7:return f=i.sent,h={campaigns:[].concat(f),isPreview:!0,bctx:c,experienceIndex:a.experienceIndex},i.abrupt("return",h);case 12:throw i.prev=12,i.t0=i["catch"](4),i.t0.name="PREVIEW_ERROR",i.t0;case 16:case"end":return i.stop()}},null,this,[[4,12]])}}]),a}()}},{"./customizer":45,"./lib/models":58,"./lib/simple-ajax":59,"./pdcampaign":62,"./visitor":67,"babel-runtime/regenerator":7,lodash:19,"lodash.filter":17}],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,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0}),c.Privacy=void 0;{var f=function(){function a(a,b){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:void 0,c=void 0;if(window.localStorage){var d=window.localStorage.getItem(a);c=null===d?b:d}else c=this.bctx.config?this.bctx.config[a]:b;return c}},{key:"setConfig",value:function(a,b){return window.localStorage?window.localStorage.setItem(a,b):this.bctx.config&&(this.bctx.config[a]=b),b}},{key:"toJson",value:function(){return h.pick(this,["consentRequired","consentProvided"])}},{key:"clear",value:function(){window.localStorage&&(window.localStorage.removeItem(i),window.localStorage.removeItem(j)),this.bctx.config&&(delete this.bctx.config[i],delete this.bctx.config[j])}},{key:"consentRequired",get:function(){return"true"===this.getConfig(i,!1)},set:function(a){return this.setConfig(i,a)}},{key:"consentProvided",get:function(){var a=this.getConfig(j,null);return"true"===a||null===a},set:function(a){return this.setConfig(j,a)}},{key:"gatherPersonalInformation",get:function(){return!this.consentRequired||this.consentProvided}}]),a}()}},{lodash:19}],65:[function(a,b,c){"use strict";function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0});{var e=function(){function a(a,b){for(var c=0;c=0;return c},regex:function(a,b){var c=new RegExp(b),d=null!==a.match(c);return d},simple:function(a,b){var d=c.getSimpleUrl(b),e=c.getSimpleUrl(a);return d===e?!0:!1}}}return e(a,[{key:"getSimpleUrl",value:function(a){return a=a.replace("http://","").replace("https://","").replace("www.",""),a.indexOf("?")>-1&&(a=a.split("?")[0]),"/"===a.substr(a.length-1,1)&&(a=a.substr(0,a.length-1)),a}},{key:"hasUrlMatched",value:function(a){var b=this.bctx.hasPreview?window.location.href.split("?")[0]:window.location.href,c=!1;a=a||[];for(var d in a)if(a[d]&&(a[d].matchType=a[d].matchType||a[d].match,a[d].url&&a[d].url.length>0&&a[d].matchType&&a[d].matchType.length>0&&this.matchTypeDictionary[a[d].matchType]&&(c=this.matchTypeDictionary[a[d].matchType](b,a[d].url)),c===!0))break;return c}}]),a}()}},{}],66:[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,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:j.Customizer;return new l(a,b)}Object.defineProperty(c,"__esModule",{value:!0}),c.Variation=void 0;var g=function(){function a(a,b){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:j.Customizer;e(this,a),i.assign(this,i.defaults(b,{customCss:[],customJavascript:[]})),this._customizer=c}return g(a,[{key:"runFor",value:function(a,b){return k.log("Running variation "+this.label),this._customizer.insertStyles(this.customCSS),this._customizer.runCustomJavascript(this.customJavascript,b.id,this.id),!0}},{key:"label",get:function(){return this.slug+" ("+this.id+")"}}]),a}()},{"./customizer":45,"./logger":60,lodash:19}],67:[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,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 f(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 g(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(c,"__esModule",{value:!0}),c.IdentifiedVisitor=c.Visitor=void 0;{var h=function(){function a(a,b){for(var c=0;c\n\n function AddOnloadEvent(f) {\n if (typeof window.onload != 'function') {\n window.onload = f;\n } else {\n var cache = window.onload;\n window.onload = function () {\n if (cache) {\n cache();\n }\n f();\n };\n }\n }\n function parseHttpHeaders(httpHeaders) {\n return httpHeaders.split(\"\\n\")\n .map(x=>x.split(/: */,2))\n .filter(x=>x[0])\n .reduce((ac, x)=>{ac[x[0]] = x[1];return ac;}, {});\n }\n AddOnloadEvent(function ipLocatorAsync() {\n var req = new XMLHttpRequest();\n req.open('GET', document.location, false);\n req.send(null);\n var headers = parseHttpHeaders(req.getAllResponseHeaders());\n\n if(!headers['X-CDN-country'] || headers['X-CDN-country'] != \"CN\"){\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','GTM-SP2R');\n }\n else {\n var _hmt = _hmt || [];\n (function()\n {\n var hm = document.createElement(\"script\"); hm.src = \"//hm.baidu.com/hm.js?4f26be7d4be5b600a261d2ed78da8d93\"; hm.async = true; var s = document.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(hm, s);\n }\n )();\n }\n });\n\n\n ProductAnypoint Platform Platform overview Design Center Exchange Management Center Mule runtime engine SecurityComponents Analytics API designer API Manager Connectors Flow designer Monitoring Runtime Manager Studio FeaturedSee what's new in the Anypoint Platform 2018 October release Learn more SolutionsBy industry Financial services Government Healthcare Higher education Insurance Manufacturing Media RetailTelecommunicationsBy technology APIs B2B/EDI Data integration DevOps ESB IoT Microservices SOABy integration Microsoft Salesforce SAP ServiceNowBy initiative Business automation eCommerce Legacy system modernization Mobile Move to the cloud Omnichannel SaaS integrations Single view of customerSee all solutions WhitepaperHow to build a digital platform to lead in the API economy Download now ServicesOverview Support Consulting Training and certification Support login Training courseGet hands-ons experience using Anypoint Platform to build APIs and integrations Register today ResourcesCustomer stories Case studiesFeatured resources Webinars Videos Analyst reports eBooks Whitepapers Infographics Blog Articles See all resourcesProduct Documentation Tutorials Analyst reportSee why Gartner names MuleSoft a Magic Quadrant leader Download now CompanyAbout What we do Why MuleSoft Careers Leadership Events News Awards Contact DevelopersGetting started Meetups Forums Ambassadors Jobs in the community PartnersFind a partner Partner program Become a partner Partner login Contact Free trial Login + + ProductAnypoint Platform Platform overview Design Center Exchange Management Center Mule runtime engine SecurityComponents Analytics API designer API Manager Connectors Flow designer Monitoring Runtime Manager Studio FeaturedSee what's new in the Anypoint Platform 2018 October release Learn more SolutionsBy industry Financial services Government Healthcare Higher education Insurance Manufacturing Media RetailTelecommunicationsBy technology APIs B2B/EDI Data integration DevOps ESB IoT Microservices SOABy integration Microsoft Salesforce SAP ServiceNowBy initiative Business automation eCommerce Legacy system modernization Mobile Move to the cloud Omnichannel SaaS integrations Single view of customerSee all solutions WhitepaperHow to build a digital platform to lead in the API economy Download now ServicesOverview Support Consulting Training and certification Support login Training courseGet hands-ons experience using Anypoint Platform to build APIs and integrations Register today ResourcesCustomer stories Case studiesFeatured resources Webinars Videos Analyst reports eBooks Whitepapers Infographics Blog Articles See all resourcesProduct Documentation Tutorials Analyst reportSee why Gartner names MuleSoft a Magic Quadrant leader Download now CompanyAbout What we do Why MuleSoft Careers Leadership Events News Awards DevelopersGetting started Meetups Forums Ambassadors Jobs in the community PartnersFind a partner Partner program Become a partner Partner login Contact Free trial Login ©2018 MuleSoft, Inc. We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used and to tailor advertising. You can read more and make your cookie choices here. By continuing to use this site you are giving us your consent to do this.+#block-block-11 {\nmargin-bottom: 0 !important;\n}\n.gdpr-row {\ndisplay: none;\nposition: fixed;\nbottom: 0;\nz-index: 100;\nwidth: 100%;\nmin-height: 90px;\npadding: 20px 80px;\nbackground: rgba(0,0,0,0.7);\n}\n.gdpr-row .copy-container {\nmax-width: 1160px;\nmargin: auto;\nposition: relative;\n}\n.gdpr-row .copy-container .close-button {\nposition: absolute;\ntop: 0;\nright: 80px;\ncolor: #fff;\nfont-size: 35px;\ncursor: pointer;\n-webkit-transform: rotate(45deg);\n-moz-transform: rotate(45deg);\n-ms-transform: rotate(45deg);\n-o-transform: rotate(45deg);\ntransform: rotate(45deg);\n}\n.gdpr-row .copy-container p {\ncolor: #FFF;\nwidth: 87%;\nmargin: 0;\nfont-size: 15px;\n}\n.gdpr-row .copy-container a {\ndisplay: inline-block;\n}.gdpr-row .copy-container a:hover {\ncolor: #fff;\n}@media screen and (max-width: 992px){\n.gdpr-row .copy-container .close-button {\ntop: 10px;\nright: 10px;\n}\n}\n@media screen and (max-width: 768px){\n.gdpr-row {\npadding: 20px;\n}\n.gdpr-row .copy-container {\npadding-top: 10px;\n}\n.gdpr-row .copy-container p {\nwidth: 95%;\n}\n.gdpr-row .copy-container .close-button {\ntop: -10px;\nright: -10px;\n}\n}\n\n\ndocument.addEventListener(\"DOMContentLoaded\", function(event) {\nvar gdprFlag = localStorage.getItem('GDPR');\nif(!gdprFlag)\njQuery('.gdpr-row').show();\njQuery('.gdpr-row .close-button').click(function(){\nlocalStorage.setItem('GDPR', 'off');\njQuery('.gdpr-row').hide();\n})\n});\n\n Home Resources eBooks API lifecycle management Managing the full API lifecycle Managing your API from design to deprecation \n .mktoForm .mktoButtonWrap.mktoInset .mktoButton {\ncolor:#000;\nbackground:#fff;\nborder:1px solid #aeb0b6;\npadding:0.4em 1em;\nfont-size:1em;\nbox-shadow: 1px 1px 6px 1px #ccc;\nbackground-color:#f5f5f5;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#dfdfdf));\nbackground-image: -webkit-linear-gradient(top, #f5f5f5, #dfdfdf);\nbackground-image: -moz-linear-gradient(top, #f5f5f5, #dfdfdf);\nbackground-image: linear-gradient(to bottom, #f5f5f5, #dfdfdf);\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:hover {\nborder:1px solid #999;\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:focus {\noutline:none;\nborder:1px solid #999;\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:active{\nbox-shadow:inset 1px 1px 6px 1px #ccc;\nbackground-color:#dfdfdf;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#dfdfdf), to(#f5f5f5));\nbackground-image: -webkit-linear-gradient(top, #dfdfdf, #f5f5f5);\nbackground-image: -moz-linear-gradient(top, #dfdfdf, #f5f5f5);\nbackground-image: linear-gradient(to bottom, #dfdfdf, #f5f5f5);\n}\n******I agree to MuleSoft's Privacy Policy.Download\nMktoForms2.loadForm(\"https://app-abd.marketo.com\", \"564-SZS-136\", 1740,function (form){\njQuery('.mktoForm').find('#preferencesPrivacyPolicyAgreement').closest('.field-ebook-marketo-form-script .mktoFormRow').attr('id','gdpr').insertBefore( \".field-ebook-marketo-form-script .mktoButtonRow\" );\njQuery('#Email').on(\"change\", function(){\n//get the values the user supplied\nvar vals = form.vals();\n//Email Validation Step\nvar url = \"https://api.kickbox.io/v2/verify?email=\" + encodeURIComponent(vals.Email) + \"&apikey=e32cc8e69f23761cf738bee119edb9f530c2c988b338319e9a2d761f95919c56\";\njQuery.getJSON(url + \"&callback=?\")\n.done(function(data) {\nvar EmailElem = form.getFormElem().find(\"#Email\");\nif(data.result == 'undeliverable'){\n//prevent form submission\nform.submittable(false);\n//Show error message, pointed at email element\nform.showErrorMessage(\"Please enter a valid email address\", EmailElem);\n//change the class of the field\nEmailElem.removeClass(\"mktoValid\");\nEmailElem.addClass(\"mktoInvalid\");\nconsole.log(\"Email validated: Undeliverable\");\n}else{\nform.submittable(true);\n//change the class of the field back to OK\nEmailElem.removeClass(\"mktoInvalid\");\nEmailElem.addClass(\"mktoValid\");\nconsole.log(\"Email validated OK\");\n}\n})\n.fail(function() {\nform.submittable(true);\nconsole.log(\"Script failed, proceeding to allow submission\");\n})\n.always(function() {\n// Run regardless if the request was made successfully\nconsole.log(\"Email validation script complete\");\n});\n});\n});\nWe all know that APIs are rising in value as drivers of business and technology strategy. But how can you make sure your APIs are designed and managed well throughout their lifecycle? Download our eBook to find out.All resources Webinars Whitepapers Reports eBooks Customers Infographics Articles Videos Related resources The value of APIs for business What is REST API design? API development best practices Recommended for you Connectivity benchmark report The application network How to design and manage APIs Watch now on demand Best practices for microservices API security best practices Anypoint Platform overviewSign up for our newsletter.mktoForm .mktoButtonWrap.mktoSimple .mktoButton {\ncolor:#fff;\nborder:1px solid #75ae4c;\npadding:0.4em 1em;\nfont-size:1em;\nbackground-color:#99c47c;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#99c47c), to(#75ae4c));\nbackground-image: -webkit-linear-gradient(top, #99c47c, #75ae4c);\nbackground-image: -moz-linear-gradient(top, #99c47c, #75ae4c);\nbackground-image: linear-gradient(to bottom, #99c47c, #75ae4c);\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:hover {\nborder:1px solid #447f19;\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:focus {\noutline:none;\nborder:1px solid #447f19;\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:active{\nbackground-color:#75ae4c;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#75ae4c), to(#99c47c));\nbackground-image: -webkit-linear-gradient(top, #75ae4c, #99c47c);\nbackground-image: -moz-linear-gradient(top, #75ae4c, #99c47c);\nbackground-image: linear-gradient(to bottom, #75ae4c, #99c47c);\n}\n*> Developers Blog Terms Privacy Contact 1-415-229-2009 MuleSoft provides a widely used integration platform for connecting SaaS and enterprise applications in the cloud and on-premises. Delivered as a unified integration experience, CloudHub™ and Mule ESB™ (enterprise service bus) are built on proven open source technology for fast and reliable on-premises and cloud integration without vendor lock-in. Our solutions also include Tcat, an Apache Tomcat server for enterprises. ©2018 MuleSoft, Inc. Deutsch 中文 English Deutsch 中文 English \nfunction advagg_mod_2(){advagg_mod_2.count=++advagg_mod_2.count||1;try{if(advagg_mod_2.count<=40){document.createElement(\"picture\");advagg_mod_2.count=100;}}\ncatch(e){if(advagg_mod_2.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_2,250);}}}\nfunction advagg_mod_2_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_2();}\nelse{window.setTimeout(advagg_mod_2_check,250);}}\nadvagg_mod_2_check();\nfunction advagg_mod_3(){advagg_mod_3.count=++advagg_mod_3.count||1;try{if(advagg_mod_3.count<=40){loadCSS(\"/sites/default/files/advagg_css/css__VOl1Z2OHGdVgQmdLG4usKNvWiTk9Kqhm-R9I3M9ZSu0__5eeQlTWhnPF-sMR3dDTfKCFYN0kq9CR4jBMkgnLweV8__sbpnCnd040-1fPYRgR7X3Ybixc6EwE9ukJiN9N7HF6Q.css\")\nadvagg_mod_3.count=100;}}\ncatch(e){if(advagg_mod_3.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_3,250);}}}\nfunction advagg_mod_3_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_3();}\nelse{window.setTimeout(advagg_mod_3_check,250);}}\nadvagg_mod_3_check();\n\nfunction advagg_mod_4(){advagg_mod_4.count=++advagg_mod_4.count||1;try{if(advagg_mod_4.count<=40){loadCSS(\"/sites/default/files/advagg_css/css__bFx3vyqVZk1Zj-Dt0TK5hLRHGaFsUflrn_Fdd2TuMtU__iEo5LfqpxR6-tuagwvNrabT07WMUfZ19UWE7qWAuBKU__sbpnCnd040-1fPYRgR7X3Ybixc6EwE9ukJiN9N7HF6Q.css\")\nadvagg_mod_4.count=100;}}\ncatch(e){if(advagg_mod_4.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_4,250);}}}\nfunction advagg_mod_4_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_4();}\nelse{window.setTimeout(advagg_mod_4_check,250);}}\nadvagg_mod_4_check();\n\n\n\n\n(function(){AITag.activateCampaign(1611);})()\n button::-moz-focus-inner,\n input::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n function passRevealDataToGTM(a){var b=a.company;a=a.type;b&&(dataLayer.push({\"clearbit-company\":b}),dataLayer.push({\"clearbit-type\":a}))}ga(\"send\",\"event\",\"Clearbit\",\"Clearbit Enriched\",\"Clearbit Enriched\",{nonInteraction:!0});\n\nvar _eiq=_eiq||[],_engagio_settings={accountId:\"b012434c46df9e9e8b80e48d9cd99ee84f651d96\"};(function(){var a=document.createElement(\"script\");a.type=\"text/javascript\";a.async=!0;a.src=(\"https:\"==document.location.protocol?\"https://\":\"http://\")+\"web-analytics.engagio.com/js/ei.js\";var b=document.getElementsByTagName(\"script\")[0];b.parentNode.insertBefore(a,b)})();\n!function(b,e,f,g,a,c,d){b.fbq||(a=b.fbq=function(){a.callMethod?a.callMethod.apply(a,arguments):a.queue.push(arguments)},b._fbq||(b._fbq=a),a.push=a,a.loaded=!0,a.version=\"2.0\",a.queue=[],c=e.createElement(f),c.async=!0,c.src=g,d=e.getElementsByTagName(f)[0],d.parentNode.insertBefore(c,d))}(window,document,\"script\",\"//connect.facebook.net/en_US/fbevents.js\");fbq(\"init\",\"223798547972643\");fbq(\"track\",\"PageView\");\n\nwindow._tfa=window._tfa||[];_tfa.push({notify:\"mark\",type:\"Site_Retargeting\"});\n\n(function(b,d,e,c,a){b[c]=b[c]||function(){(b[c].queue=b[c].queue||[]).push(arguments)};b.__hly_widget_object={name:c};b[c].accountId=a;e+=\"?aid\\x3d\"+a;a=d.createElement(\"script\");a.type=\"text/javascript\";a.async=!0;a.src=e;d=d.getElementsByTagName(\"script\")[0];d.parentNode.insertBefore(a,d)})(window,document,\"https://app.hushly.com/runtime/widget.js\",\"hushly\",\"7179\");\nfunction processForm(a){a=document.querySelector(\".mktoForm #Email\").value;_tcaq.push([\"captureIdentity\",a,\"email\"])}var form=document.querySelector(\".mktoForm\");form.attachEvent?form.attachEvent(\"submit\",processForm):form.addEventListener(\"submit\",processForm);function callbackFunction(a){var b=a.results;a=a.results.isp;b&&!a&&dataLayer.push({\"rtp-results\":b})}rtp(\"get\",\"visitor\",callbackFunction);(function(a,e,f,g,b,c,d){a.GoogleAnalyticsObject=b;a[b]=a[b]||function(){(a[b].q=a[b].q||[]).push(arguments)};a[b].l=1*new Date;c=e.createElement(f);d=e.getElementsByTagName(f)[0];c.async=1;c.src=g;d.parentNode.insertBefore(c,d)})(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\");ga(\"create\",\"UA-605632-12\",{siteSpeedSampleRate:10});ga(\"send\",\"pageview\");window.AcquiaLift={account_id:\"MULESOFT\",liftAssetsURL:\"https://lift3assets.lift.acquia.com/stable\",liftDecisionAPIURL:\"https://us-east-1-decisionapi.lift.acquia.com\",authEndpoint:\"https://us-east-1-oauth2.lift.acquia.com\",contentReplacementMode:\"trusted\",site_id:\"mulesoft_prod\",profile:{person_udf5:google_tag_manager[\"GTM-SP2R\"].macro(14),person_udf6:google_tag_manager[\"GTM-SP2R\"].macro(15),person_udf18:\"undefined\"}};\n\n\n\n \n \n\n \n\n .hly-overlay div.hly-view-text, .hly-overlay .hly-icon, .hly-overlay div.hly-view-text span {\n\tbackground: #78bc1f !important;\n\tbackground: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-toolbar .hly-tools ul li a,.hly-viewer .hly-toolbar .hly-tools ul li a:hover,.hly-viewer .hly-toolbar .hly-tools ul li a span,.hly-embed-wrap .hly-viewer .hly-title {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-btn {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tborder-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-embed-wrap .hly-recommendations,.hly-embed-wrap .hly-recommendations .hly-recommendation-list,.hly-mobile .hly-viewer .hly-recommendations,.hly-mobile .hly-recommendations .hly-recommendation-list {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-recommendations ul li.active,.hly-embed-wrap .hly-viewer .hly-recommendations ul li.active,.hly-mobile .hly-viewer .hly-recommendations ul li.active {\n\tborder-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-recommendations::-webkit-scrollbar-thumb,.hly-viewer div.hly-doc::-webkit-scrollbar-thumb,.hly-mobile .hly-viewer .hly-recommendations .hly-recommendation-list::-webkit-scrollbar-thumb {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer {\n\tbackground: #ffffff !important;\n\tbackground-color: #ffffff !important;\n}\n\n\ntwttr.conversion.trackPid(\"nue0l\",{tw_sale_amount:0,tw_order_quantity:0});\n\n\"\"\n\"\"\n\n","originalHtml":"
\n\n\n
\n
Contact Free trial Login
+
+

We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used and to tailor advertising. You can read more and make your cookie choices here. By continuing to use this site you are giving us your consent to do this.

+
\n\n

Managing the full API lifecycle

Managing your API from design to deprecation

\n
 
\n\n

We all know that APIs are rising in value as drivers of business and technology strategy. But how can you make sure your APIs are designed and managed well throughout their lifecycle? Download our eBook to find out.

\n\n\n\n\n\n
\n\n\n
\n\n\n\n\n\n\n\n\n\n\n
\n \n \n\n
\n\n
\n\n\n\n","changes":[{"type":"jc","js":"(function() {\n\n var $ = window.jQuery;\n var FEHelper = {\n\n // waitfor jQuery\n doWhenJqueryLoaded: function(todoWhenLoaded) {\n var waitForjQuery = setInterval(\n function() {\n if (typeof window.jQuery != 'undefined') {\n clearInterval(waitForjQuery);\n todoWhenLoaded();\n }\n }, 50);\n },\n // waitfor jQuery\n doWhenElementLoaded: function(element, todoWhenLoaded) {\n var waitForElement = setInterval(\n function() {\n if ($(element).length > 0) {\n clearInterval(waitForElement);\n todoWhenLoaded();\n }\n }, 50);\n }\n };\n\n function init(){\n $('body').addClass('feProLPN');\n $('.header-inside .right-side a:first-of-type').clone().insertAfter('.header-inside nav[role=\"navigation\"]:nth-of-type(1) ul');\n $('#header-nav-search-form > span.search-mag-icon').click();\n }\n\n FEHelper.doWhenJqueryLoaded(function() {\n $ = window.jQuery;\n FEHelper.doWhenElementLoaded('body', init);\n });\n\n})();","lastChanged":"\"2018-11-21T10:01:04.986Z\"","selector":".html"}]}]},"isBaselineVariation":false,"id":"5bf518607e504e184e385145"},{"organization":"5bc0d4fa834f08700786b368","name":"V4: Limited CTAs only","campaign":"5bf513a57e504e184e383cf4","status":"running","isArchived":false,"slug":"v4LimitedCtasOnly","sourceId":"v4LimitedCtasOnly","createdAt":"2018-11-21T08:34:35.120Z","updatedAt":"2018-12-07T18:46:10.567Z","customCSS":".header-inside nav[role=\"navigation\"]:nth-of-type(1) .menu-item {\n display: none!important;\n}\n.header-inside nav[role=\"navigation\"]:nth-of-type(2) .menu-item {\n display: none!important;\n}\n.header-inside .right-side a {\n display: none!important;\n}\n.header-inside .right-side a:first-of-type {\n display:inline-block!important;\n font-size: 14px!important;\n padding-right: 5px;\n}\n.header-inside .right-side a.button.blue-button {\n display: inline-block!important;\n}\n#header-nav-search-form {\n display: none;\n}\n.ms-com-content.ms-com-content-header header.ms-com-header .right-side {\n padding-right: 0px!important;\n}","customJavascript":{"customJavascriptInstructions":[]},"isBaselineVariation":false,"id":"5bf5189b7e504e184e385261"}],"organization":"5bc0d4fa834f08700786b368","holdbackVariation":null,"audience":"5c06eb8278e32ffa1b591411","holdback":50,"holdbackMode":"random","name":"PRO-1: LandingPage Navigation","source":"visual","slug":"pro1LandingPageNavigation","sourceId":"pro1LandingPageNavigation","status":"paused","createdAt":"2018-11-21T08:13:25.063Z","updatedAt":"2018-12-07T18:46:10.214Z","pageTargets":[{"url":"https://www.mulesoft.com/lp/ebook/api/api-lifecycle-management","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/api/microservices-best-practices","match":"simple"},{"url":"https://www.mulesoft.com/lp/reports/connectivity-benchmark","match":"simple"},{"url":"https://www.mulesoft.com/lp/dl/studio","match":"simple"},{"url":"https://www.mulesoft.com/lp/reports/gartner-magic-quadrant-api","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/api/api-led-integration-sap-hana","match":"simple"},{"url":"https://www.mulesoft.com/lp/reports/ipaas-solution-evaluation","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/api/secrets-great-api","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/api/business-automation","match":"simple"},{"url":"https://www.mulesoft.com/lp/ebook/api/advantages-microservices-api-devops","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/api/psd2-open-banking-financial-services","match":"simple"},{"url":"https://www.mulesoft.com/lp/ebook/api/restbook","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/api/digital-platform","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/api/top-microservices-patterns","match":"simple"},{"url":"https://www.mulesoft.com/lp/dl/studio/previous","match":"simple"},{"url":"https://www.mulesoft.com/lp/ebook/api/first-break-it","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/saas/salesforce-integration-patterns","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/api/design-apis","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/soa/business-processes-management","match":"simple"},{"match":"simple","url":"https://www.mulesoft.com/lp/whitepaper/api/devops-model"},{"url":"https://www.mulesoft.com/lp/reports/gartner-magic-quadrant-leader","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/api/rising-value-apis","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/api/api-led-connectivity","match":"simple"},{"url":"https://www.mulesoft.com/lp/kit/legacy-application-modernization-roadmap","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/api/rising-value-apis-t","match":"simple"}],"editorUrl":"https://www.mulesoft.com/lp/ebook/api/api-lifecycle-management","runningFrom":"2018-12-04T22:11:01.996Z","pausedAt":"2018-12-07T18:46:04.412Z","id":"5bf513a57e504e184e383cf4"},{"variations":[{"organization":"5bc0d4fa834f08700786b368","name":"Baseline","campaign":"5bfe8f46507fb7ea12ecbcb4","status":"running","isArchived":false,"slug":"baseline2","sourceId":"baseline2","createdAt":"2018-11-28T12:58:10.363Z","updatedAt":"2018-12-03T22:43:04.319Z","isBaselineVariation":true,"id":"5bfe90e2f5c54d825600e6f5"},{"organization":"5bc0d4fa834f08700786b368","name":"V2: Free Trial & Contact","customJavascript":["(function() {\n\n var $ = window.jQuery;\n var FEHelper = {\n\n // waitfor jQuery\n doWhenJqueryLoaded: function(todoWhenLoaded) {\n var waitForjQuery = setInterval(\n function() {\n if (typeof window.jQuery != 'undefined') {\n clearInterval(waitForjQuery);\n todoWhenLoaded();\n }\n }, 50);\n },\n // waitfor jQuery\n doWhenElementLoaded: function(element, todoWhenLoaded) {\n var waitForElement = setInterval(\n function() {\n if ($(element).length > 0) {\n clearInterval(waitForElement);\n todoWhenLoaded();\n }\n }, 50);\n }\n };\n\n function init(){\n $('.pane-node-field-basic-links > div.field-basic-links:nth-child(1) > a:nth-child(1), #content > section.row.billboard-row > div > div > a:first-of-type').text('Free trial');\n $('.pane-node-field-basic-links > div.field-basic-links:nth-child(1) > a:nth-child(1), #content > section.row.billboard-row > div > div > a:first-of-type').attr('href','https://anypoint.mulesoft.com/login/#/signup?apintent=generic');\n\n }\n\n FEHelper.doWhenJqueryLoaded(function() {\n $ = window.jQuery;\n FEHelper.doWhenElementLoaded('.pane-node-field-basic-links > div.field-basic-links:nth-child(1) > a:nth-child(1), #content > section.row.billboard-row > div > div > a:first-of-type', init);\n });\n\n})();\n"],"campaign":"5bfe8f46507fb7ea12ecbcb4","status":"running","isArchived":false,"slug":"v2FreeTrialContact1","sourceId":"v2FreeTrialContact1","createdAt":"2018-11-28T12:59:14.872Z","updatedAt":"2018-12-03T22:43:04.319Z","isBaselineVariation":false,"id":"5bfe9122f5c54d825600e82f"},{"organization":"5bc0d4fa834f08700786b368","name":"V3: Single Free Trial","customJavascript":["(function() {\n\n var $ = window.jQuery;\n var FEHelper = {\n\n // waitfor jQuery\n doWhenJqueryLoaded: function(todoWhenLoaded) {\n var waitForjQuery = setInterval(\n function() {\n if (typeof window.jQuery != 'undefined') {\n clearInterval(waitForjQuery);\n todoWhenLoaded();\n }\n }, 50);\n },\n // waitfor jQuery\n doWhenElementLoaded: function(element, todoWhenLoaded) {\n var waitForElement = setInterval(\n function() {\n if ($(element).length > 0) {\n clearInterval(waitForElement);\n todoWhenLoaded();\n }\n }, 50);\n }\n };\n\n function init(){\n $('body').addClass('feHideOther');\n $('.pane-node-field-basic-links > div.field-basic-links:nth-child(1) > a:nth-child(1), #content > section.row.billboard-row > div > div > a:first-of-type').text('Free trial');\n $('.pane-node-field-basic-links > div.field-basic-links:nth-child(1) > a:nth-child(1), #content > section.row.billboard-row > div > div > a:first-of-type').attr('href','https://anypoint.mulesoft.com/login/#/signup?apintent=generic');\n\n }\n\n FEHelper.doWhenJqueryLoaded(function() {\n $ = window.jQuery;\n FEHelper.doWhenElementLoaded('.pane-node-field-basic-links > div.field-basic-links:nth-child(1) > a:nth-child(1), #content > section.row.billboard-row > div > div > a:first-of-type', init);\n });\n\n})();\n"],"campaign":"5bfe8f46507fb7ea12ecbcb4","status":"running","isArchived":false,"slug":"v3SingleFreeTrial1","sourceId":"v3SingleFreeTrial1","createdAt":"2018-11-28T12:59:43.539Z","updatedAt":"2018-12-03T22:43:04.319Z","isBaselineVariation":false,"id":"5bfe913ff5c54d825600e8bb"}],"organization":"5bc0d4fa834f08700786b368","holdbackVariation":null,"audience":null,"holdback":50,"holdbackMode":"random","name":"Mulesoft PRO-2: Solutions Heros","source":"custom","slug":"mulesoftPro2SolutionsHeros","sourceId":"mulesoftPro2SolutionsHeros","status":"draft","createdAt":"2018-11-28T12:51:18.646Z","updatedAt":"2018-12-05T13:05:16.942Z","pageTargets":[{"url":"https://www.mulesoft.com/integration-solutions/saas/salesforce","match":"simple"},{"url":"https://www.mulesoft.com/integration-solutions/api/microservices","match":"simple"},{"url":"https://www.mulesoft.com/integration-solutions/api/saas","match":"simple"},{"url":"https://www.mulesoft.com/integration-solutions/api/business-automation","match":"simple"},{"url":"https://www.mulesoft.com/integration-solutions/soa/sap","match":"simple"},{"url":"https://www.mulesoft.com/integration-solutions/soa/healthcare#healthcare-providers","match":"simple"},{"url":"https://www.mulesoft.com/integration-solutions/soa/financial-services","match":"simple"}],"editorUrl":"https://www.mulesoft.com/integration-solutions/saas/salesforce","customCss":[".feHideOther .pane-node-field-basic-links > div.field-basic-links:nth-child(2),\n.feHideOther #content > section.row.billboard-row > div > div > a:not(:first-of-type) {\n display: none !important;\n}\n\n.feHideOther .field-basic-links.multiple-buttons [href=\"https://www.mulesoft.com/lp/contact\"] {\n display: none !important;\n opacity: 0;\n visibility: hidden;\n}\n"],"id":"5bfe8f46507fb7ea12ecbcb4"},{"variations":[{"organization":"5bc0d4fa834f08700786b368","name":"Baseline","campaign":"5c04c225daed66b73c4c150e","status":"running","isArchived":false,"slug":"baseline3","sourceId":"baseline3","createdAt":"2018-12-03T05:45:56.127Z","updatedAt":"2018-12-03T22:43:04.327Z","isBaselineVariation":true,"id":"5c04c314507fb7ea12ffdb80"},{"organization":"5bc0d4fa834f08700786b368","name":"Form Right","campaign":"5c04c225daed66b73c4c150e","status":"draft","isArchived":false,"slug":"formRight","sourceId":"formRight","createdAt":"2018-12-03T05:56:57.169Z","updatedAt":"2018-12-07T10:23:27.876Z","customCSS":".resource-b .content-row .panels-flexible-region-last {\n\tfloat: left!important;\n\tpadding-top: 32px;\n\t\t\n}\n#main .panels-flexible-row .panels-flexible-region.col-lg-4 {\n float: right!important;\n\t\n}\n@media only screen and (max-width: 1366px) and (max-width: 1025px) {\n .panel-pane.pane-entity-field.pane-node-body {\n margin-left: 80px!important;\n}\n\n\n}\n@media only screen and (max-width: 768px) {\n#main .panels-flexible-row .panels-flexible-region.col-lg-4 {\n float: none!important;\n}\n.resource-b .content-row .panels-flexible-region-last {\n float: none!important;\n\n}\n .panel-pane.pane-entity-field.pane-node-body {\n margin-left: 0px!important;\n}\n\n}","customJavascript":{"customJavascriptInstructions":[{"changes":[],"originalHtml":"
\n\n\n
\n
Contact Free trial Login
+
+

We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used and to tailor advertising. You can read more and make your cookie choices here. By continuing to use this site you are giving us your consent to do this.

+
\n\n

Integrating SAP S/4HANA using API-led architectures

A new approach to SAP integration

\n\n
 
\n\n

Numerous organizations rely on SAP platform solutions, many of which were implemented during the late 1990s and early 2000s. The SAP platform solutions that underpin these organizations were once fit for purpose, but by 2025 SAP will end mainstream maintenance on all instances of ERP installations. As a result, businesses will need to upgrade, integrate, and/or migrate their systems to SAP S/4HANA, or re-implement complex ERP installations. This will be challenging.

Read this whitepaper, written in collaboration with Capgemini, to learn:

  • How to prove the business value of a migration to SAP S/4HANA.
  • Why an API-led architecture is the best approach for SAP S/4HANA integration with existing systems, providing agility and shielding an organization’s technology stack from future changes to other systems.
  • The main principles of a Center for Enablement (C4E) and how it enables enterprises to implement software design with governance and high delivery speeds.
\n\n\n\n\n\n
\n\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
\n \n \n\n
\n\n
","originalText":"\n\n \n\n function AddOnloadEvent(f) {\n if (typeof window.onload != 'function') {\n window.onload = f;\n } else {\n var cache = window.onload;\n window.onload = function () {\n if (cache) {\n cache();\n }\n f();\n };\n }\n }\n function parseHttpHeaders(httpHeaders) {\n return httpHeaders.split(\"\\n\")\n .map(x=>x.split(/: */,2))\n .filter(x=>x[0])\n .reduce((ac, x)=>{ac[x[0]] = x[1];return ac;}, {});\n }\n AddOnloadEvent(function ipLocatorAsync() {\n var req = new XMLHttpRequest();\n req.open('GET', document.location, false);\n req.send(null);\n var headers = parseHttpHeaders(req.getAllResponseHeaders());\n\n if(!headers['X-CDN-country'] || headers['X-CDN-country'] != \"CN\"){\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','GTM-SP2R');\n }\n else {\n var _hmt = _hmt || [];\n (function()\n {\n var hm = document.createElement(\"script\"); hm.src = \"//hm.baidu.com/hm.js?4f26be7d4be5b600a261d2ed78da8d93\"; hm.async = true; var s = document.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(hm, s);\n }\n )();\n }\n });\n\n\n ProductAnypoint Platform Platform overview Design Center Exchange Management Center Mule runtime engine SecurityComponents Analytics API designer API Manager Connectors Flow designer Monitoring Runtime Manager Studio FeaturedSee what's new in the Anypoint Platform 2018 October release Learn more SolutionsBy industry Financial services Government Healthcare Higher education Insurance Manufacturing Media RetailTelecommunicationsBy technology APIs B2B/EDI Data integration DevOps ESB IoT Microservices SOABy integration Microsoft Salesforce SAP ServiceNowBy initiative Business automation eCommerce Legacy system modernization Mobile Move to the cloud Omnichannel SaaS integrations Single view of customerSee all solutions WhitepaperHow to build a digital platform to lead in the API economy Download now ServicesOverview Support Consulting Training and certification Support login Training courseGet hands-ons experience using Anypoint Platform to build APIs and integrations Register today ResourcesCustomer stories Case studiesFeatured resources Webinars Videos Analyst reports eBooks Whitepapers Infographics Blog Articles See all resourcesProduct Documentation Tutorials Analyst reportSee why Gartner names MuleSoft a Magic Quadrant leader Download now CompanyAbout What we do Why MuleSoft Careers Leadership Events News Awards DevelopersGetting started Meetups Forums Ambassadors Jobs in the community PartnersFind a partner Partner program Become a partner Partner login Contact Free trial Login + + ProductAnypoint Platform Platform overview Design Center Exchange Management Center Mule runtime engine SecurityComponents Analytics API designer API Manager Connectors Flow designer Monitoring Runtime Manager Studio FeaturedSee what's new in the Anypoint Platform 2018 October release Learn more SolutionsBy industry Financial services Government Healthcare Higher education Insurance Manufacturing Media RetailTelecommunicationsBy technology APIs B2B/EDI Data integration DevOps ESB IoT Microservices SOABy integration Microsoft Salesforce SAP ServiceNowBy initiative Business automation eCommerce Legacy system modernization Mobile Move to the cloud Omnichannel SaaS integrations Single view of customerSee all solutions WhitepaperHow to build a digital platform to lead in the API economy Download now ServicesOverview Support Consulting Training and certification Support login Training courseGet hands-ons experience using Anypoint Platform to build APIs and integrations Register today ResourcesCustomer stories Case studiesFeatured resources Webinars Videos Analyst reports eBooks Whitepapers Infographics Blog Articles See all resourcesProduct Documentation Tutorials Analyst reportSee why Gartner names MuleSoft a Magic Quadrant leader Download now CompanyAbout What we do Why MuleSoft Careers Leadership Events News Awards DevelopersGetting started Meetups Forums Ambassadors Jobs in the community PartnersFind a partner Partner program Become a partner Partner login Contact Free trial Login ©2018 MuleSoft, Inc. We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used and to tailor advertising. You can read more and make your cookie choices here. By continuing to use this site you are giving us your consent to do this.+#block-block-11 {\nmargin-bottom: 0 !important;\n}\n.gdpr-row {\ndisplay: none;\nposition: fixed;\nbottom: 0;\nz-index: 100;\nwidth: 100%;\nmin-height: 90px;\npadding: 20px 80px;\nbackground: rgba(0,0,0,0.7);\n}\n.gdpr-row .copy-container {\nmax-width: 1160px;\nmargin: auto;\nposition: relative;\n}\n.gdpr-row .copy-container .close-button {\nposition: absolute;\ntop: 0;\nright: 80px;\ncolor: #fff;\nfont-size: 35px;\ncursor: pointer;\n-webkit-transform: rotate(45deg);\n-moz-transform: rotate(45deg);\n-ms-transform: rotate(45deg);\n-o-transform: rotate(45deg);\ntransform: rotate(45deg);\n}\n.gdpr-row .copy-container p {\ncolor: #FFF;\nwidth: 87%;\nmargin: 0;\nfont-size: 15px;\n}\n.gdpr-row .copy-container a {\ndisplay: inline-block;\n}.gdpr-row .copy-container a:hover {\ncolor: #fff;\n}@media screen and (max-width: 992px){\n.gdpr-row .copy-container .close-button {\ntop: 10px;\nright: 10px;\n}\n}\n@media screen and (max-width: 768px){\n.gdpr-row {\npadding: 20px;\n}\n.gdpr-row .copy-container {\npadding-top: 10px;\n}\n.gdpr-row .copy-container p {\nwidth: 95%;\n}\n.gdpr-row .copy-container .close-button {\ntop: -10px;\nright: -10px;\n}\n}\n\n\ndocument.addEventListener(\"DOMContentLoaded\", function(event) {\nvar gdprFlag = localStorage.getItem('GDPR');\nif(!gdprFlag)\njQuery('.gdpr-row').show();\njQuery('.gdpr-row .close-button').click(function(){\nlocalStorage.setItem('GDPR', 'off');\njQuery('.gdpr-row').hide();\n})\n});\n\n Home Resources Whitepapers Integrating SAP S/4HANA using API-led architectures Integrating SAP S/4HANA using API-led architectures A new approach to SAP integration\n\n .mktoForm .mktoButtonWrap.mktoInset .mktoButton {\ncolor:#000;\nbackground:#fff;\nborder:1px solid #aeb0b6;\npadding:0.4em 1em;\nfont-size:1em;\nbox-shadow: 1px 1px 6px 1px #ccc;\nbackground-color:#f5f5f5;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#dfdfdf));\nbackground-image: -webkit-linear-gradient(top, #f5f5f5, #dfdfdf);\nbackground-image: -moz-linear-gradient(top, #f5f5f5, #dfdfdf);\nbackground-image: linear-gradient(to bottom, #f5f5f5, #dfdfdf);\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:hover {\nborder:1px solid #999;\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:focus {\noutline:none;\nborder:1px solid #999;\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:active{\nbox-shadow:inset 1px 1px 6px 1px #ccc;\nbackground-color:#dfdfdf;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#dfdfdf), to(#f5f5f5));\nbackground-image: -webkit-linear-gradient(top, #dfdfdf, #f5f5f5);\nbackground-image: -moz-linear-gradient(top, #dfdfdf, #f5f5f5);\nbackground-image: linear-gradient(to bottom, #dfdfdf, #f5f5f5);\n}\n******I agree to MuleSoft's Privacy Policy.Download\nMktoForms2.loadForm(\"https://app-abd.marketo.com\", \"564-SZS-136\", 3149,function (form){\njQuery('.mktoForm').find('#preferencesPrivacyPolicyAgreement').closest('.field-whitepaper-marketo-script .mktoFormRow').attr('id','gdpr').insertBefore( \".field-whitepaper-marketo-script .mktoButtonRow\" );\njQuery('#Email').on(\"change\", function(){\n//get the values the user supplied\nvar vals = form.vals();\n//Email Validation Step\nvar url = \"https://kickbox.io/v2/verify?email=\" + encodeURIComponent(vals.Email) + \"&apikey=e32cc8e69f23761cf738bee119edb9f530c2c988b338319e9a2d761f95919c56\";\njQuery.getJSON(url + \"&callback=?\")\n.done(function(data) {\nconsole.log(\"result\", data.result);\nif(data.result == 'undeliverable'){\n//prevent form submission\nform.submittable(false);\n//Show error message, pointed at email element\nvar EmailElem = form.getFormElem().find(\"#Email\");\nform.showErrorMessage(\"Please enter a valid email address\", EmailElem);\n//change the class of the field\nEmailElem.removeClass(\"mktoValid\");\nEmailElem.addClass(\"mktoInvalid\");\nconsole.log(\"Email validated: Undeliverable\");\n}else{\nform.submittable(true);\n//change the class of the field back to OK\nEmailElem.removeClass(\"mktoInvalid\");\nEmailElem.addClass(\"mktoValid\");\nconsole.log(\"Email validated OK\");\n}\n})\n.fail(function() {\nform.submittable(true);\nconsole.log(\"Script failed, proceeding to allow submission\");\n})\n.always(function() {\n// Run regardless if the request was made successfully\nconsole.log(\"Email validation script complete\");\n});\n});\n});\nNumerous organizations rely on SAP platform solutions, many of which were implemented during the late 1990s and early 2000s. The SAP platform solutions that underpin these organizations were once fit for purpose, but by 2025 SAP will end mainstream maintenance on all instances of ERP installations. As a result, businesses will need to upgrade, integrate, and/or migrate their systems to SAP S/4HANA, or re-implement complex ERP installations. This will be challenging.Read this whitepaper, written in collaboration with Capgemini, to learn:How to prove the business value of a migration to SAP S/4HANA.Why an API-led architecture is the best approach for SAP S/4HANA integration with existing systems, providing agility and shielding an organization’s technology stack from future changes to other systems.The main principles of a Center for Enablement (C4E) and how it enables enterprises to implement software design with governance and high delivery speeds.All resources Webinars Whitepapers Reports eBooks Customers Infographics Articles Videos Related resources The value of APIs for business What is REST API design? API development best practices Recommended for you Connectivity benchmark report The application network How to design and manage APIs Watch now on demand Best practices for microservices API security best practices Anypoint Platform overviewSign up for our newsletter.mktoForm .mktoButtonWrap.mktoSimple .mktoButton {\ncolor:#fff;\nborder:1px solid #75ae4c;\npadding:0.4em 1em;\nfont-size:1em;\nbackground-color:#99c47c;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#99c47c), to(#75ae4c));\nbackground-image: -webkit-linear-gradient(top, #99c47c, #75ae4c);\nbackground-image: -moz-linear-gradient(top, #99c47c, #75ae4c);\nbackground-image: linear-gradient(to bottom, #99c47c, #75ae4c);\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:hover {\nborder:1px solid #447f19;\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:focus {\noutline:none;\nborder:1px solid #447f19;\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:active{\nbackground-color:#75ae4c;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#75ae4c), to(#99c47c));\nbackground-image: -webkit-linear-gradient(top, #75ae4c, #99c47c);\nbackground-image: -moz-linear-gradient(top, #75ae4c, #99c47c);\nbackground-image: linear-gradient(to bottom, #75ae4c, #99c47c);\n}\n*> Developers Blog Terms Privacy Contact 1-415-229-2009 MuleSoft provides a widely used integration platform for connecting SaaS and enterprise applications in the cloud and on-premises. Delivered as a unified integration experience, CloudHub™ and Mule ESB™ (enterprise service bus) are built on proven open source technology for fast and reliable on-premises and cloud integration without vendor lock-in. Our solutions also include Tcat, an Apache Tomcat server for enterprises. ©2018 MuleSoft, Inc. Deutsch 中文 English Deutsch 中文 English \nfunction advagg_mod_2(){advagg_mod_2.count=++advagg_mod_2.count||1;try{if(advagg_mod_2.count<=40){document.createElement(\"picture\");advagg_mod_2.count=100;}}\ncatch(e){if(advagg_mod_2.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_2,250);}}}\nfunction advagg_mod_2_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_2();}\nelse{window.setTimeout(advagg_mod_2_check,250);}}\nadvagg_mod_2_check();\nfunction advagg_mod_3(){advagg_mod_3.count=++advagg_mod_3.count||1;try{if(advagg_mod_3.count<=40){loadCSS(\"/sites/default/files/advagg_css/css__VOl1Z2OHGdVgQmdLG4usKNvWiTk9Kqhm-R9I3M9ZSu0__5eeQlTWhnPF-sMR3dDTfKCFYN0kq9CR4jBMkgnLweV8__sbpnCnd040-1fPYRgR7X3Ybixc6EwE9ukJiN9N7HF6Q.css\")\nadvagg_mod_3.count=100;}}\ncatch(e){if(advagg_mod_3.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_3,250);}}}\nfunction advagg_mod_3_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_3();}\nelse{window.setTimeout(advagg_mod_3_check,250);}}\nadvagg_mod_3_check();\n\nfunction advagg_mod_4(){advagg_mod_4.count=++advagg_mod_4.count||1;try{if(advagg_mod_4.count<=40){loadCSS(\"/sites/default/files/advagg_css/css__bFx3vyqVZk1Zj-Dt0TK5hLRHGaFsUflrn_Fdd2TuMtU__vCiA5_lrnNpC4p-VBCxb7RhKX7bxxdHvAveashMQy3w__sbpnCnd040-1fPYRgR7X3Ybixc6EwE9ukJiN9N7HF6Q.css\")\nadvagg_mod_4.count=100;}}\ncatch(e){if(advagg_mod_4.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_4,250);}}}\nfunction advagg_mod_4_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_4();}\nelse{window.setTimeout(advagg_mod_4_check,250);}}\nadvagg_mod_4_check();\n\n\n\n\n\n button::-moz-focus-inner,\n input::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n function passRevealDataToGTM(a){var b=a.company,c=a.type;b&&(dataLayer.push({\"clearbit-company\":b}),dataLayer.push({\"clearbit-type\":c}),window.clearbitReveal=a)}ga(\"send\",\"event\",\"Clearbit\",\"Clearbit Enriched\",\"Clearbit Enriched\",{nonInteraction:!0});\n\nvar _eiq=_eiq||[],_engagio_settings={accountId:\"b012434c46df9e9e8b80e48d9cd99ee84f651d96\"};(function(){var a=document.createElement(\"script\");a.type=\"text/javascript\";a.async=!0;a.src=(\"https:\"==document.location.protocol?\"https://\":\"http://\")+\"web-analytics.engagio.com/js/ei.js\";var b=document.getElementsByTagName(\"script\")[0];b.parentNode.insertBefore(a,b)})();\n!function(b,e,f,g,a,c,d){b.fbq||(a=b.fbq=function(){a.callMethod?a.callMethod.apply(a,arguments):a.queue.push(arguments)},b._fbq||(b._fbq=a),a.push=a,a.loaded=!0,a.version=\"2.0\",a.queue=[],c=e.createElement(f),c.async=!0,c.src=g,d=e.getElementsByTagName(f)[0],d.parentNode.insertBefore(c,d))}(window,document,\"script\",\"//connect.facebook.net/en_US/fbevents.js\");fbq(\"init\",\"223798547972643\");fbq(\"track\",\"PageView\");\n\nwindow._tfa=window._tfa||[];_tfa.push({notify:\"mark\",type:\"Site_Retargeting\"});\n\n(function(b,d,e,c,a){b[c]=b[c]||function(){(b[c].queue=b[c].queue||[]).push(arguments)};b.__hly_widget_object={name:c};b[c].accountId=a;e+=\"?aid\\x3d\"+a;a=d.createElement(\"script\");a.type=\"text/javascript\";a.async=!0;a.src=e;d=d.getElementsByTagName(\"script\")[0];d.parentNode.insertBefore(a,d)})(window,document,\"https://app.hushly.com/runtime/widget.js\",\"hushly\",\"7179\");\nfunction processForm(a){a=document.querySelector(\".mktoForm #Email\").value;_tcaq.push([\"captureIdentity\",a,\"email\"])}var form=document.querySelector(\".mktoForm\");form.attachEvent?form.attachEvent(\"submit\",processForm):form.addEventListener(\"submit\",processForm);function callbackFunction(a){var b=a.results;a=a.results.isp;b&&!a&&dataLayer.push({\"rtp-results\":b})}rtp(\"get\",\"visitor\",callbackFunction);(function(a,e,f,g,b,c,d){a.GoogleAnalyticsObject=b;a[b]=a[b]||function(){(a[b].q=a[b].q||[]).push(arguments)};a[b].l=1*new Date;c=e.createElement(f);d=e.getElementsByTagName(f)[0];c.async=1;c.src=g;d.parentNode.insertBefore(c,d)})(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\");ga(\"create\",\"UA-605632-12\",{siteSpeedSampleRate:10});ga(\"send\",\"pageview\");\nwindow.AcquiaLift={account_id:\"MULESOFT\",liftAssetsURL:\"https://lift3assets.lift.acquia.com/stable\",liftDecisionAPIURL:\"https://us-east-1-decisionapi.lift.acquia.com\",authEndpoint:\"https://us-east-1-oauth2.lift.acquia.com\",contentReplacementMode:\"trusted\",site_id:\"mulesoft.com-D8-Prod\",profile:{person_udf5:google_tag_manager[\"GTM-SP2R\"].macro(24),person_udf6:google_tag_manager[\"GTM-SP2R\"].macro(25),person_udf18:\"83168200000\"}};\n\n\n\ntwttr.conversion.trackPid(\"nue0l\",{tw_sale_amount:0,tw_order_quantity:0});\n\n\"\"\n\"\"\n\n\n \n \n\n \n\n .hly-overlay div.hly-view-text, .hly-overlay .hly-icon, .hly-overlay div.hly-view-text span {\n\tbackground: #78bc1f !important;\n\tbackground: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-toolbar .hly-tools ul li a,.hly-viewer .hly-toolbar .hly-tools ul li a:hover,.hly-viewer .hly-toolbar .hly-tools ul li a span,.hly-embed-wrap .hly-viewer .hly-title {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-btn {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tborder-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-embed-wrap .hly-recommendations,.hly-embed-wrap .hly-recommendations .hly-recommendation-list,.hly-mobile .hly-viewer .hly-recommendations,.hly-mobile .hly-recommendations .hly-recommendation-list {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-recommendations ul li.active,.hly-embed-wrap .hly-viewer .hly-recommendations ul li.active,.hly-mobile .hly-viewer .hly-recommendations ul li.active {\n\tborder-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-recommendations::-webkit-scrollbar-thumb,.hly-viewer div.hly-doc::-webkit-scrollbar-thumb,.hly-mobile .hly-viewer .hly-recommendations .hly-recommendation-list::-webkit-scrollbar-thumb {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer {\n\tbackground: #ffffff !important;\n\tbackground-color: #ffffff !important;\n}\n","selector":".html"}]},"isBaselineVariation":false,"id":"5c04c5a90fafbc5b4ebbf900"},{"organization":"5bc0d4fa834f08700786b368","name":"Bullet Only Copy","campaign":"5c04c225daed66b73c4c150e","status":"draft","isArchived":false,"slug":"bulletOnlyCopy","sourceId":"bulletOnlyCopy","createdAt":"2018-12-03T09:48:54.096Z","updatedAt":"2018-12-07T10:25:59.932Z","customCSS":".resource-b .content-row .panels-flexible-region-last {\n float: left!important;\n /* padding-top: 32px;*/\n \n}\n#main .panels-flexible-row .panels-flexible-region.col-lg-4 {\n float: right!important;\n \n}\n.resource-b .content-row .panels-flexible-region-last {\n\t float: right;\n\t\t\n}\n#main .panels-flexible-row .panels-flexible-region.col-lg-4 {\n float: left;\n}\n.fe_whitePaper p::before {\n content: \"• \";\n color: rgb(169, 168, 169); \n margin-right: 10px;\n}\n.fe_whitePaper h2{\n color: #a9a8a9!important;\n}\n\n\n/*.fe_whitePaper p .fe_icon_check {\n color: #a9a8a9;\n list-style: none;\n margin: 0;\n text-align: left;\n font-family: 'OpenSans',sans-serif;\n font-size: 15px;\n}*/\n.fe_whitePaper p {\n display: flex;\n margin-bottom: 10px;\n}\n@media only screen and (min-width: 1025px) and (max-width: 1366px){\n .panel-pane.pane-entity-field.pane-node-body {\n margin-left: 80px!important;\n}\n\n\n\n}\n@media only screen and (max-width: 768px) {\n#main .panels-flexible-row .panels-flexible-region.col-lg-4 {\n float: none!important;\n}\n.resource-b .content-row .panels-flexible-region-last {\n float: none!important;\n\n}\n.resource-b .field-body {\n padding-top: 0px; \n}\n .panel-pane.pane-entity-field.pane-node-body {\n margin-left: 0px!important;\n}\n}","customJavascript":{"customJavascriptInstructions":[{"changes":[{"type":"jc","js":"(function() {\n \n var $ = window.jQuery;\n var FEHelper = {\n\n // waitfor jQuery\n doWhenJqueryLoaded: function(todoWhenLoaded) {\n var waitForjQuery = setInterval(\n function() {\n if (typeof window.jQuery != 'undefined') {\n clearInterval(waitForjQuery);\n todoWhenLoaded();\n }\n }, 50);\n setTimeout(function(){ clearInterval(waitForElement)}, 5000)\n },\n // waitfor jQuery\n doWhenElementLoaded: function(element, todoWhenLoaded) {\n var waitForElement = setInterval(\n function() {\n if ($(element).length > 0) {\n clearInterval(waitForElement);\n todoWhenLoaded();\n }\n }, 50);\n setTimeout(function(){ clearInterval(waitForElement)}, 5000);\n }\n\n };\n\n function init(){\n $('body').addClass('feProLPN');\n\t var feProLPN =''+ \n\t '
'+\n\t '

Read this White paper & Learn:

'+\n\t\t'

How to prove the business value of a migration to SAP S/4HANA

'+ \n\t\t'

Why an API-led architecture is the best approach for SAP S/4HANA integration with existing systems, providing agility and shielding an organization’s technology stack from future changes to other systems

'+ \n\t\t'

The main principles of a Center for Enablement (C4E) and how it enables enterprises to implement software design with governance and high delivery speeds

'+\n\t\t'
';\n\t \n\t $('.pane-node-body .field-body').html(feProLPN); \n\t\n\n }\n\n FEHelper.doWhenJqueryLoaded(function() {\n $ = window.jQuery;\n FEHelper.doWhenElementLoaded('.pane-node-body .field-body', init);\n });\n\n})();","lastChanged":"\"2018-12-07T10:25:26.408Z\"","selector":".html"}],"originalHtml":"
\n\n\n
\n
Contact Free trial Login
+
+

We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used and to tailor advertising. You can read more and make your cookie choices here. By continuing to use this site you are giving us your consent to do this.

+
\n\n

Integrating SAP S/4HANA using API-led architectures

A new approach to SAP integration

\n\n
 
\n\n

Numerous organizations rely on SAP platform solutions, many of which were implemented during the late 1990s and early 2000s. The SAP platform solutions that underpin these organizations were once fit for purpose, but by 2025 SAP will end mainstream maintenance on all instances of ERP installations. As a result, businesses will need to upgrade, integrate, and/or migrate their systems to SAP S/4HANA, or re-implement complex ERP installations. This will be challenging.

Read this whitepaper, written in collaboration with Capgemini, to learn:

  • How to prove the business value of a migration to SAP S/4HANA.
  • Why an API-led architecture is the best approach for SAP S/4HANA integration with existing systems, providing agility and shielding an organization’s technology stack from future changes to other systems.
  • The main principles of a Center for Enablement (C4E) and how it enables enterprises to implement software design with governance and high delivery speeds.
\n\n\n\n\n\n
\n\n\n
\n\n\n\n\n\n\n\n
\n \n \n\n
\n\n
\n\n\n\n\n\n\n","originalText":"\n\n \n\n function AddOnloadEvent(f) {\n if (typeof window.onload != 'function') {\n window.onload = f;\n } else {\n var cache = window.onload;\n window.onload = function () {\n if (cache) {\n cache();\n }\n f();\n };\n }\n }\n function parseHttpHeaders(httpHeaders) {\n return httpHeaders.split(\"\\n\")\n .map(x=>x.split(/: */,2))\n .filter(x=>x[0])\n .reduce((ac, x)=>{ac[x[0]] = x[1];return ac;}, {});\n }\n AddOnloadEvent(function ipLocatorAsync() {\n var req = new XMLHttpRequest();\n req.open('GET', document.location, false);\n req.send(null);\n var headers = parseHttpHeaders(req.getAllResponseHeaders());\n\n if(!headers['X-CDN-country'] || headers['X-CDN-country'] != \"CN\"){\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','GTM-SP2R');\n }\n else {\n var _hmt = _hmt || [];\n (function()\n {\n var hm = document.createElement(\"script\"); hm.src = \"//hm.baidu.com/hm.js?4f26be7d4be5b600a261d2ed78da8d93\"; hm.async = true; var s = document.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(hm, s);\n }\n )();\n }\n });\n\n\n ProductAnypoint Platform Platform overview Design Center Exchange Management Center Mule runtime engine SecurityComponents Analytics API designer API Manager Connectors Flow designer Monitoring Runtime Manager Studio FeaturedSee what's new in the Anypoint Platform 2018 October release Learn more SolutionsBy industry Financial services Government Healthcare Higher education Insurance Manufacturing Media RetailTelecommunicationsBy technology APIs B2B/EDI Data integration DevOps ESB IoT Microservices SOABy integration Microsoft Salesforce SAP ServiceNowBy initiative Business automation eCommerce Legacy system modernization Mobile Move to the cloud Omnichannel SaaS integrations Single view of customerSee all solutions WhitepaperHow to build a digital platform to lead in the API economy Download now ServicesOverview Support Consulting Training and certification Support login Training courseGet hands-ons experience using Anypoint Platform to build APIs and integrations Register today ResourcesCustomer stories Case studiesFeatured resources Webinars Videos Analyst reports eBooks Whitepapers Infographics Blog Articles See all resourcesProduct Documentation Tutorials Analyst reportSee why Gartner names MuleSoft a Magic Quadrant leader Download now CompanyAbout What we do Why MuleSoft Careers Leadership Events News Awards DevelopersGetting started Meetups Forums Ambassadors Jobs in the community PartnersFind a partner Partner program Become a partner Partner login Contact Free trial Login + + ProductAnypoint Platform Platform overview Design Center Exchange Management Center Mule runtime engine SecurityComponents Analytics API designer API Manager Connectors Flow designer Monitoring Runtime Manager Studio FeaturedSee what's new in the Anypoint Platform 2018 October release Learn more SolutionsBy industry Financial services Government Healthcare Higher education Insurance Manufacturing Media RetailTelecommunicationsBy technology APIs B2B/EDI Data integration DevOps ESB IoT Microservices SOABy integration Microsoft Salesforce SAP ServiceNowBy initiative Business automation eCommerce Legacy system modernization Mobile Move to the cloud Omnichannel SaaS integrations Single view of customerSee all solutions WhitepaperHow to build a digital platform to lead in the API economy Download now ServicesOverview Support Consulting Training and certification Support login Training courseGet hands-ons experience using Anypoint Platform to build APIs and integrations Register today ResourcesCustomer stories Case studiesFeatured resources Webinars Videos Analyst reports eBooks Whitepapers Infographics Blog Articles See all resourcesProduct Documentation Tutorials Analyst reportSee why Gartner names MuleSoft a Magic Quadrant leader Download now CompanyAbout What we do Why MuleSoft Careers Leadership Events News Awards DevelopersGetting started Meetups Forums Ambassadors Jobs in the community PartnersFind a partner Partner program Become a partner Partner login Contact Free trial Login ©2018 MuleSoft, Inc. We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used and to tailor advertising. You can read more and make your cookie choices here. By continuing to use this site you are giving us your consent to do this.+#block-block-11 {\nmargin-bottom: 0 !important;\n}\n.gdpr-row {\ndisplay: none;\nposition: fixed;\nbottom: 0;\nz-index: 100;\nwidth: 100%;\nmin-height: 90px;\npadding: 20px 80px;\nbackground: rgba(0,0,0,0.7);\n}\n.gdpr-row .copy-container {\nmax-width: 1160px;\nmargin: auto;\nposition: relative;\n}\n.gdpr-row .copy-container .close-button {\nposition: absolute;\ntop: 0;\nright: 80px;\ncolor: #fff;\nfont-size: 35px;\ncursor: pointer;\n-webkit-transform: rotate(45deg);\n-moz-transform: rotate(45deg);\n-ms-transform: rotate(45deg);\n-o-transform: rotate(45deg);\ntransform: rotate(45deg);\n}\n.gdpr-row .copy-container p {\ncolor: #FFF;\nwidth: 87%;\nmargin: 0;\nfont-size: 15px;\n}\n.gdpr-row .copy-container a {\ndisplay: inline-block;\n}.gdpr-row .copy-container a:hover {\ncolor: #fff;\n}@media screen and (max-width: 992px){\n.gdpr-row .copy-container .close-button {\ntop: 10px;\nright: 10px;\n}\n}\n@media screen and (max-width: 768px){\n.gdpr-row {\npadding: 20px;\n}\n.gdpr-row .copy-container {\npadding-top: 10px;\n}\n.gdpr-row .copy-container p {\nwidth: 95%;\n}\n.gdpr-row .copy-container .close-button {\ntop: -10px;\nright: -10px;\n}\n}\n\n\ndocument.addEventListener(\"DOMContentLoaded\", function(event) {\nvar gdprFlag = localStorage.getItem('GDPR');\nif(!gdprFlag)\njQuery('.gdpr-row').show();\njQuery('.gdpr-row .close-button').click(function(){\nlocalStorage.setItem('GDPR', 'off');\njQuery('.gdpr-row').hide();\n})\n});\n\n Home Resources Whitepapers Integrating SAP S/4HANA using API-led architectures Integrating SAP S/4HANA using API-led architectures A new approach to SAP integration\n\n .mktoForm .mktoButtonWrap.mktoInset .mktoButton {\ncolor:#000;\nbackground:#fff;\nborder:1px solid #aeb0b6;\npadding:0.4em 1em;\nfont-size:1em;\nbox-shadow: 1px 1px 6px 1px #ccc;\nbackground-color:#f5f5f5;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#dfdfdf));\nbackground-image: -webkit-linear-gradient(top, #f5f5f5, #dfdfdf);\nbackground-image: -moz-linear-gradient(top, #f5f5f5, #dfdfdf);\nbackground-image: linear-gradient(to bottom, #f5f5f5, #dfdfdf);\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:hover {\nborder:1px solid #999;\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:focus {\noutline:none;\nborder:1px solid #999;\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:active{\nbox-shadow:inset 1px 1px 6px 1px #ccc;\nbackground-color:#dfdfdf;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#dfdfdf), to(#f5f5f5));\nbackground-image: -webkit-linear-gradient(top, #dfdfdf, #f5f5f5);\nbackground-image: -moz-linear-gradient(top, #dfdfdf, #f5f5f5);\nbackground-image: linear-gradient(to bottom, #dfdfdf, #f5f5f5);\n}\n******I agree to MuleSoft's Privacy Policy.Download\nMktoForms2.loadForm(\"https://app-abd.marketo.com\", \"564-SZS-136\", 3149,function (form){\njQuery('.mktoForm').find('#preferencesPrivacyPolicyAgreement').closest('.field-whitepaper-marketo-script .mktoFormRow').attr('id','gdpr').insertBefore( \".field-whitepaper-marketo-script .mktoButtonRow\" );\njQuery('#Email').on(\"change\", function(){\n//get the values the user supplied\nvar vals = form.vals();\n//Email Validation Step\nvar url = \"https://kickbox.io/v2/verify?email=\" + encodeURIComponent(vals.Email) + \"&apikey=e32cc8e69f23761cf738bee119edb9f530c2c988b338319e9a2d761f95919c56\";\njQuery.getJSON(url + \"&callback=?\")\n.done(function(data) {\nconsole.log(\"result\", data.result);\nif(data.result == 'undeliverable'){\n//prevent form submission\nform.submittable(false);\n//Show error message, pointed at email element\nvar EmailElem = form.getFormElem().find(\"#Email\");\nform.showErrorMessage(\"Please enter a valid email address\", EmailElem);\n//change the class of the field\nEmailElem.removeClass(\"mktoValid\");\nEmailElem.addClass(\"mktoInvalid\");\nconsole.log(\"Email validated: Undeliverable\");\n}else{\nform.submittable(true);\n//change the class of the field back to OK\nEmailElem.removeClass(\"mktoInvalid\");\nEmailElem.addClass(\"mktoValid\");\nconsole.log(\"Email validated OK\");\n}\n})\n.fail(function() {\nform.submittable(true);\nconsole.log(\"Script failed, proceeding to allow submission\");\n})\n.always(function() {\n// Run regardless if the request was made successfully\nconsole.log(\"Email validation script complete\");\n});\n});\n});\nNumerous organizations rely on SAP platform solutions, many of which were implemented during the late 1990s and early 2000s. The SAP platform solutions that underpin these organizations were once fit for purpose, but by 2025 SAP will end mainstream maintenance on all instances of ERP installations. As a result, businesses will need to upgrade, integrate, and/or migrate their systems to SAP S/4HANA, or re-implement complex ERP installations. This will be challenging.Read this whitepaper, written in collaboration with Capgemini, to learn:How to prove the business value of a migration to SAP S/4HANA.Why an API-led architecture is the best approach for SAP S/4HANA integration with existing systems, providing agility and shielding an organization’s technology stack from future changes to other systems.The main principles of a Center for Enablement (C4E) and how it enables enterprises to implement software design with governance and high delivery speeds.All resources Webinars Whitepapers Reports eBooks Customers Infographics Articles Videos Related resources The value of APIs for business What is REST API design? API development best practices Recommended for you Connectivity benchmark report The application network How to design and manage APIs Watch now on demand Best practices for microservices API security best practices Anypoint Platform overviewSign up for our newsletter.mktoForm .mktoButtonWrap.mktoSimple .mktoButton {\ncolor:#fff;\nborder:1px solid #75ae4c;\npadding:0.4em 1em;\nfont-size:1em;\nbackground-color:#99c47c;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#99c47c), to(#75ae4c));\nbackground-image: -webkit-linear-gradient(top, #99c47c, #75ae4c);\nbackground-image: -moz-linear-gradient(top, #99c47c, #75ae4c);\nbackground-image: linear-gradient(to bottom, #99c47c, #75ae4c);\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:hover {\nborder:1px solid #447f19;\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:focus {\noutline:none;\nborder:1px solid #447f19;\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:active{\nbackground-color:#75ae4c;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#75ae4c), to(#99c47c));\nbackground-image: -webkit-linear-gradient(top, #75ae4c, #99c47c);\nbackground-image: -moz-linear-gradient(top, #75ae4c, #99c47c);\nbackground-image: linear-gradient(to bottom, #75ae4c, #99c47c);\n}\n*> Developers Blog Terms Privacy Contact 1-415-229-2009 MuleSoft provides a widely used integration platform for connecting SaaS and enterprise applications in the cloud and on-premises. Delivered as a unified integration experience, CloudHub™ and Mule ESB™ (enterprise service bus) are built on proven open source technology for fast and reliable on-premises and cloud integration without vendor lock-in. Our solutions also include Tcat, an Apache Tomcat server for enterprises. ©2018 MuleSoft, Inc. Deutsch 中文 English Deutsch 中文 English \nfunction advagg_mod_2(){advagg_mod_2.count=++advagg_mod_2.count||1;try{if(advagg_mod_2.count<=40){document.createElement(\"picture\");advagg_mod_2.count=100;}}\ncatch(e){if(advagg_mod_2.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_2,250);}}}\nfunction advagg_mod_2_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_2();}\nelse{window.setTimeout(advagg_mod_2_check,250);}}\nadvagg_mod_2_check();\nfunction advagg_mod_3(){advagg_mod_3.count=++advagg_mod_3.count||1;try{if(advagg_mod_3.count<=40){loadCSS(\"/sites/default/files/advagg_css/css__VOl1Z2OHGdVgQmdLG4usKNvWiTk9Kqhm-R9I3M9ZSu0__5eeQlTWhnPF-sMR3dDTfKCFYN0kq9CR4jBMkgnLweV8__sbpnCnd040-1fPYRgR7X3Ybixc6EwE9ukJiN9N7HF6Q.css\")\nadvagg_mod_3.count=100;}}\ncatch(e){if(advagg_mod_3.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_3,250);}}}\nfunction advagg_mod_3_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_3();}\nelse{window.setTimeout(advagg_mod_3_check,250);}}\nadvagg_mod_3_check();\n\nfunction advagg_mod_4(){advagg_mod_4.count=++advagg_mod_4.count||1;try{if(advagg_mod_4.count<=40){loadCSS(\"/sites/default/files/advagg_css/css__bFx3vyqVZk1Zj-Dt0TK5hLRHGaFsUflrn_Fdd2TuMtU__vCiA5_lrnNpC4p-VBCxb7RhKX7bxxdHvAveashMQy3w__sbpnCnd040-1fPYRgR7X3Ybixc6EwE9ukJiN9N7HF6Q.css\")\nadvagg_mod_4.count=100;}}\ncatch(e){if(advagg_mod_4.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_4,250);}}}\nfunction advagg_mod_4_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_4();}\nelse{window.setTimeout(advagg_mod_4_check,250);}}\nadvagg_mod_4_check();\n\n\n\n\n(function(){AITag.activateCampaign(1611);})()\n button::-moz-focus-inner,\n input::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n function passRevealDataToGTM(a){var b=a.company,c=a.type;b&&(dataLayer.push({\"clearbit-company\":b}),dataLayer.push({\"clearbit-type\":c}),window.clearbitReveal=a)}ga(\"send\",\"event\",\"Clearbit\",\"Clearbit Enriched\",\"Clearbit Enriched\",{nonInteraction:!0});\n\nvar _eiq=_eiq||[],_engagio_settings={accountId:\"b012434c46df9e9e8b80e48d9cd99ee84f651d96\"};(function(){var a=document.createElement(\"script\");a.type=\"text/javascript\";a.async=!0;a.src=(\"https:\"==document.location.protocol?\"https://\":\"http://\")+\"web-analytics.engagio.com/js/ei.js\";var b=document.getElementsByTagName(\"script\")[0];b.parentNode.insertBefore(a,b)})();\n!function(b,e,f,g,a,c,d){b.fbq||(a=b.fbq=function(){a.callMethod?a.callMethod.apply(a,arguments):a.queue.push(arguments)},b._fbq||(b._fbq=a),a.push=a,a.loaded=!0,a.version=\"2.0\",a.queue=[],c=e.createElement(f),c.async=!0,c.src=g,d=e.getElementsByTagName(f)[0],d.parentNode.insertBefore(c,d))}(window,document,\"script\",\"//connect.facebook.net/en_US/fbevents.js\");fbq(\"init\",\"223798547972643\");fbq(\"track\",\"PageView\");\n\nwindow._tfa=window._tfa||[];_tfa.push({notify:\"mark\",type:\"Site_Retargeting\"});\n\n(function(b,d,e,c,a){b[c]=b[c]||function(){(b[c].queue=b[c].queue||[]).push(arguments)};b.__hly_widget_object={name:c};b[c].accountId=a;e+=\"?aid\\x3d\"+a;a=d.createElement(\"script\");a.type=\"text/javascript\";a.async=!0;a.src=e;d=d.getElementsByTagName(\"script\")[0];d.parentNode.insertBefore(a,d)})(window,document,\"https://app.hushly.com/runtime/widget.js\",\"hushly\",\"7179\");\nfunction processForm(a){a=document.querySelector(\".mktoForm #Email\").value;_tcaq.push([\"captureIdentity\",a,\"email\"])}var form=document.querySelector(\".mktoForm\");form.attachEvent?form.attachEvent(\"submit\",processForm):form.addEventListener(\"submit\",processForm);function callbackFunction(a){var b=a.results;a=a.results.isp;b&&!a&&dataLayer.push({\"rtp-results\":b})}rtp(\"get\",\"visitor\",callbackFunction);(function(a,e,f,g,b,c,d){a.GoogleAnalyticsObject=b;a[b]=a[b]||function(){(a[b].q=a[b].q||[]).push(arguments)};a[b].l=1*new Date;c=e.createElement(f);d=e.getElementsByTagName(f)[0];c.async=1;c.src=g;d.parentNode.insertBefore(c,d)})(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\");ga(\"create\",\"UA-605632-12\",{siteSpeedSampleRate:10});ga(\"send\",\"pageview\");\n \n \n\n \n\n .hly-overlay div.hly-view-text, .hly-overlay .hly-icon, .hly-overlay div.hly-view-text span {\n\tbackground: #78bc1f !important;\n\tbackground: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-toolbar .hly-tools ul li a,.hly-viewer .hly-toolbar .hly-tools ul li a:hover,.hly-viewer .hly-toolbar .hly-tools ul li a span,.hly-embed-wrap .hly-viewer .hly-title {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-btn {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tborder-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-embed-wrap .hly-recommendations,.hly-embed-wrap .hly-recommendations .hly-recommendation-list,.hly-mobile .hly-viewer .hly-recommendations,.hly-mobile .hly-recommendations .hly-recommendation-list {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-recommendations ul li.active,.hly-embed-wrap .hly-viewer .hly-recommendations ul li.active,.hly-mobile .hly-viewer .hly-recommendations ul li.active {\n\tborder-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-recommendations::-webkit-scrollbar-thumb,.hly-viewer div.hly-doc::-webkit-scrollbar-thumb,.hly-mobile .hly-viewer .hly-recommendations .hly-recommendation-list::-webkit-scrollbar-thumb {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer {\n\tbackground: #ffffff !important;\n\tbackground-color: #ffffff !important;\n}\n\nwindow.AcquiaLift={account_id:\"MULESOFT\",liftAssetsURL:\"https://lift3assets.lift.acquia.com/stable\",liftDecisionAPIURL:\"https://us-east-1-decisionapi.lift.acquia.com\",authEndpoint:\"https://us-east-1-oauth2.lift.acquia.com\",contentReplacementMode:\"trusted\",site_id:\"mulesoft.com-D8-Prod\",profile:{person_udf5:google_tag_manager[\"GTM-SP2R\"].macro(16),person_udf6:google_tag_manager[\"GTM-SP2R\"].macro(17),person_udf18:\"83168200000\"}};\n\n\n\ntwttr.conversion.trackPid(\"nue0l\",{tw_sale_amount:0,tw_order_quantity:0});\n\n\"\"\n\"\"\n\n","selector":".html"}]},"isBaselineVariation":false,"id":"5c04fc06c6b67cc011f42e3a"},{"organization":"5bc0d4fa834f08700786b368","name":"Limited Additional Resources","campaign":"5c04c225daed66b73c4c150e","status":"draft","isArchived":false,"slug":"limitedAdditionalResources","sourceId":"limitedAdditionalResources","createdAt":"2018-12-03T09:55:46.519Z","updatedAt":"2018-12-07T10:29:36.058Z","customCSS":".fe_Recommended .fe_images {\n background-image: url(https://www.mulesoft.com/sites/default/files/resource-icons-white-01.svg);\n}\n.fe_Recommended .fe_images {\n width: 60px;\n height: 60px;\n\tmargin: 0 auto;\n}\n\n.fe_Recommended .item_div {\n width: 15%;\n display: inline-table;\n text-align: center;\n}\n.fe_Recommended .first{\n background-position: -321px -259px;\n background-repeat: no-repeat;\n}\n\n.fe_Recommended .second {\n \n background-position: 214px 0;\n}\n\t\n.centered-row.custom-bg-row.all-resources-row .pane-title {\n\t display:none;\n}\t \n.fe_Recommended .item_div p{\n margin-top: 5px;\n padding: 0 35px;\n}\n@media only screen and (max-width: 1024px) {\n .fe_Recommended .item_div p{\n padding: 0 20px;\n}\n}","customJavascript":{"customJavascriptInstructions":[{"changes":[{"type":"jc","js":"(function() {\n \n var $ = window.jQuery;\n var FEHelper = {\n\n // waitfor jQuery\n doWhenJqueryLoaded: function(todoWhenLoaded) {\n var waitForjQuery = setInterval(\n function() {\n if (typeof window.jQuery != 'undefined') {\n clearInterval(waitForjQuery);\n todoWhenLoaded();\n }\n }, 50);\n setTimeout(function(){ clearInterval(waitForElement)}, 5000)\n },\n // waitfor jQuery\n doWhenElementLoaded: function(element, todoWhenLoaded) {\n var waitForElement = setInterval(\n function() {\n if ($(element).length > 0) {\n clearInterval(waitForElement);\n todoWhenLoaded();\n }\n }, 50);\n setTimeout(function(){ clearInterval(waitForElement)}, 5000)\n }\n };\n\n function init(){\n $('body').addClass('feProLPN');\n\t var Recommended =''+ \n\t'
'+ \n\t'

Recommended Additional Resources

'+ \n\t' '+ \n\t'
';\n\t\n\t$('.entity.entity-bean.bean-content').html(Recommended);\t \n\t\n }\n\n FEHelper.doWhenJqueryLoaded(function() {\n $ = window.jQuery;\n FEHelper.doWhenElementLoaded('.entity.entity-bean.bean-content', init);\n });\n\n})();","lastChanged":"\"2018-12-07T10:29:33.742Z\"","selector":".html"}],"originalHtml":"
\n\n\n
\n
Contact Free trial Login
+
+

We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used and to tailor advertising. You can read more and make your cookie choices here. By continuing to use this site you are giving us your consent to do this.

+
\n\n

Integrating SAP S/4HANA using API-led architectures

A new approach to SAP integration

\n\n
 
\n\n

Numerous organizations rely on SAP platform solutions, many of which were implemented during the late 1990s and early 2000s. The SAP platform solutions that underpin these organizations were once fit for purpose, but by 2025 SAP will end mainstream maintenance on all instances of ERP installations. As a result, businesses will need to upgrade, integrate, and/or migrate their systems to SAP S/4HANA, or re-implement complex ERP installations. This will be challenging.

Read this whitepaper, written in collaboration with Capgemini, to learn:

  • How to prove the business value of a migration to SAP S/4HANA.
  • Why an API-led architecture is the best approach for SAP S/4HANA integration with existing systems, providing agility and shielding an organization’s technology stack from future changes to other systems.
  • The main principles of a Center for Enablement (C4E) and how it enables enterprises to implement software design with governance and high delivery speeds.
\n\n\n\n\n\n
\n\n\n
\n\n\n\n\n\n\n\n\n\n\n\n
\n \n \n\n
\n\n
\n\n\n","originalText":"\n\n \n\n function AddOnloadEvent(f) {\n if (typeof window.onload != 'function') {\n window.onload = f;\n } else {\n var cache = window.onload;\n window.onload = function () {\n if (cache) {\n cache();\n }\n f();\n };\n }\n }\n function parseHttpHeaders(httpHeaders) {\n return httpHeaders.split(\"\\n\")\n .map(x=>x.split(/: */,2))\n .filter(x=>x[0])\n .reduce((ac, x)=>{ac[x[0]] = x[1];return ac;}, {});\n }\n AddOnloadEvent(function ipLocatorAsync() {\n var req = new XMLHttpRequest();\n req.open('GET', document.location, false);\n req.send(null);\n var headers = parseHttpHeaders(req.getAllResponseHeaders());\n\n if(!headers['X-CDN-country'] || headers['X-CDN-country'] != \"CN\"){\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\n j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\n '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\n })(window,document,'script','dataLayer','GTM-SP2R');\n }\n else {\n var _hmt = _hmt || [];\n (function()\n {\n var hm = document.createElement(\"script\"); hm.src = \"//hm.baidu.com/hm.js?4f26be7d4be5b600a261d2ed78da8d93\"; hm.async = true; var s = document.getElementsByTagName(\"script\")[0]; s.parentNode.insertBefore(hm, s);\n }\n )();\n }\n });\n\n\n ProductAnypoint Platform Platform overview Design Center Exchange Management Center Mule runtime engine SecurityComponents Analytics API designer API Manager Connectors Flow designer Monitoring Runtime Manager Studio FeaturedSee what's new in the Anypoint Platform 2018 October release Learn more SolutionsBy industry Financial services Government Healthcare Higher education Insurance Manufacturing Media RetailTelecommunicationsBy technology APIs B2B/EDI Data integration DevOps ESB IoT Microservices SOABy integration Microsoft Salesforce SAP ServiceNowBy initiative Business automation eCommerce Legacy system modernization Mobile Move to the cloud Omnichannel SaaS integrations Single view of customerSee all solutions WhitepaperHow to build a digital platform to lead in the API economy Download now ServicesOverview Support Consulting Training and certification Support login Training courseGet hands-ons experience using Anypoint Platform to build APIs and integrations Register today ResourcesCustomer stories Case studiesFeatured resources Webinars Videos Analyst reports eBooks Whitepapers Infographics Blog Articles See all resourcesProduct Documentation Tutorials Analyst reportSee why Gartner names MuleSoft a Magic Quadrant leader Download now CompanyAbout What we do Why MuleSoft Careers Leadership Events News Awards DevelopersGetting started Meetups Forums Ambassadors Jobs in the community PartnersFind a partner Partner program Become a partner Partner login Contact Free trial Login + + ProductAnypoint Platform Platform overview Design Center Exchange Management Center Mule runtime engine SecurityComponents Analytics API designer API Manager Connectors Flow designer Monitoring Runtime Manager Studio FeaturedSee what's new in the Anypoint Platform 2018 October release Learn more SolutionsBy industry Financial services Government Healthcare Higher education Insurance Manufacturing Media RetailTelecommunicationsBy technology APIs B2B/EDI Data integration DevOps ESB IoT Microservices SOABy integration Microsoft Salesforce SAP ServiceNowBy initiative Business automation eCommerce Legacy system modernization Mobile Move to the cloud Omnichannel SaaS integrations Single view of customerSee all solutions WhitepaperHow to build a digital platform to lead in the API economy Download now ServicesOverview Support Consulting Training and certification Support login Training courseGet hands-ons experience using Anypoint Platform to build APIs and integrations Register today ResourcesCustomer stories Case studiesFeatured resources Webinars Videos Analyst reports eBooks Whitepapers Infographics Blog Articles See all resourcesProduct Documentation Tutorials Analyst reportSee why Gartner names MuleSoft a Magic Quadrant leader Download now CompanyAbout What we do Why MuleSoft Careers Leadership Events News Awards DevelopersGetting started Meetups Forums Ambassadors Jobs in the community PartnersFind a partner Partner program Become a partner Partner login Contact Free trial Login ©2018 MuleSoft, Inc. We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used and to tailor advertising. You can read more and make your cookie choices here. By continuing to use this site you are giving us your consent to do this.+#block-block-11 {\nmargin-bottom: 0 !important;\n}\n.gdpr-row {\ndisplay: none;\nposition: fixed;\nbottom: 0;\nz-index: 100;\nwidth: 100%;\nmin-height: 90px;\npadding: 20px 80px;\nbackground: rgba(0,0,0,0.7);\n}\n.gdpr-row .copy-container {\nmax-width: 1160px;\nmargin: auto;\nposition: relative;\n}\n.gdpr-row .copy-container .close-button {\nposition: absolute;\ntop: 0;\nright: 80px;\ncolor: #fff;\nfont-size: 35px;\ncursor: pointer;\n-webkit-transform: rotate(45deg);\n-moz-transform: rotate(45deg);\n-ms-transform: rotate(45deg);\n-o-transform: rotate(45deg);\ntransform: rotate(45deg);\n}\n.gdpr-row .copy-container p {\ncolor: #FFF;\nwidth: 87%;\nmargin: 0;\nfont-size: 15px;\n}\n.gdpr-row .copy-container a {\ndisplay: inline-block;\n}.gdpr-row .copy-container a:hover {\ncolor: #fff;\n}@media screen and (max-width: 992px){\n.gdpr-row .copy-container .close-button {\ntop: 10px;\nright: 10px;\n}\n}\n@media screen and (max-width: 768px){\n.gdpr-row {\npadding: 20px;\n}\n.gdpr-row .copy-container {\npadding-top: 10px;\n}\n.gdpr-row .copy-container p {\nwidth: 95%;\n}\n.gdpr-row .copy-container .close-button {\ntop: -10px;\nright: -10px;\n}\n}\n\n\ndocument.addEventListener(\"DOMContentLoaded\", function(event) {\nvar gdprFlag = localStorage.getItem('GDPR');\nif(!gdprFlag)\njQuery('.gdpr-row').show();\njQuery('.gdpr-row .close-button').click(function(){\nlocalStorage.setItem('GDPR', 'off');\njQuery('.gdpr-row').hide();\n})\n});\n\n Home Resources Whitepapers Integrating SAP S/4HANA using API-led architectures Integrating SAP S/4HANA using API-led architectures A new approach to SAP integration\n\n .mktoForm .mktoButtonWrap.mktoInset .mktoButton {\ncolor:#000;\nbackground:#fff;\nborder:1px solid #aeb0b6;\npadding:0.4em 1em;\nfont-size:1em;\nbox-shadow: 1px 1px 6px 1px #ccc;\nbackground-color:#f5f5f5;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#dfdfdf));\nbackground-image: -webkit-linear-gradient(top, #f5f5f5, #dfdfdf);\nbackground-image: -moz-linear-gradient(top, #f5f5f5, #dfdfdf);\nbackground-image: linear-gradient(to bottom, #f5f5f5, #dfdfdf);\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:hover {\nborder:1px solid #999;\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:focus {\noutline:none;\nborder:1px solid #999;\n}\n.mktoForm .mktoButtonWrap.mktoInset .mktoButton:active{\nbox-shadow:inset 1px 1px 6px 1px #ccc;\nbackground-color:#dfdfdf;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#dfdfdf), to(#f5f5f5));\nbackground-image: -webkit-linear-gradient(top, #dfdfdf, #f5f5f5);\nbackground-image: -moz-linear-gradient(top, #dfdfdf, #f5f5f5);\nbackground-image: linear-gradient(to bottom, #dfdfdf, #f5f5f5);\n}\n******I agree to MuleSoft's Privacy Policy.Download\nMktoForms2.loadForm(\"https://app-abd.marketo.com\", \"564-SZS-136\", 3149,function (form){\njQuery('.mktoForm').find('#preferencesPrivacyPolicyAgreement').closest('.field-whitepaper-marketo-script .mktoFormRow').attr('id','gdpr').insertBefore( \".field-whitepaper-marketo-script .mktoButtonRow\" );\njQuery('#Email').on(\"change\", function(){\n//get the values the user supplied\nvar vals = form.vals();\n//Email Validation Step\nvar url = \"https://kickbox.io/v2/verify?email=\" + encodeURIComponent(vals.Email) + \"&apikey=e32cc8e69f23761cf738bee119edb9f530c2c988b338319e9a2d761f95919c56\";\njQuery.getJSON(url + \"&callback=?\")\n.done(function(data) {\nconsole.log(\"result\", data.result);\nif(data.result == 'undeliverable'){\n//prevent form submission\nform.submittable(false);\n//Show error message, pointed at email element\nvar EmailElem = form.getFormElem().find(\"#Email\");\nform.showErrorMessage(\"Please enter a valid email address\", EmailElem);\n//change the class of the field\nEmailElem.removeClass(\"mktoValid\");\nEmailElem.addClass(\"mktoInvalid\");\nconsole.log(\"Email validated: Undeliverable\");\n}else{\nform.submittable(true);\n//change the class of the field back to OK\nEmailElem.removeClass(\"mktoInvalid\");\nEmailElem.addClass(\"mktoValid\");\nconsole.log(\"Email validated OK\");\n}\n})\n.fail(function() {\nform.submittable(true);\nconsole.log(\"Script failed, proceeding to allow submission\");\n})\n.always(function() {\n// Run regardless if the request was made successfully\nconsole.log(\"Email validation script complete\");\n});\n});\n});\nNumerous organizations rely on SAP platform solutions, many of which were implemented during the late 1990s and early 2000s. The SAP platform solutions that underpin these organizations were once fit for purpose, but by 2025 SAP will end mainstream maintenance on all instances of ERP installations. As a result, businesses will need to upgrade, integrate, and/or migrate their systems to SAP S/4HANA, or re-implement complex ERP installations. This will be challenging.Read this whitepaper, written in collaboration with Capgemini, to learn:How to prove the business value of a migration to SAP S/4HANA.Why an API-led architecture is the best approach for SAP S/4HANA integration with existing systems, providing agility and shielding an organization’s technology stack from future changes to other systems.The main principles of a Center for Enablement (C4E) and how it enables enterprises to implement software design with governance and high delivery speeds.All resources Webinars Whitepapers Reports eBooks Customers Infographics Articles Videos Related resources The value of APIs for business What is REST API design? API development best practices Recommended for you Connectivity benchmark report The application network How to design and manage APIs Watch now on demand Best practices for microservices API security best practices Anypoint Platform overviewSign up for our newsletter.mktoForm .mktoButtonWrap.mktoSimple .mktoButton {\ncolor:#fff;\nborder:1px solid #75ae4c;\npadding:0.4em 1em;\nfont-size:1em;\nbackground-color:#99c47c;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#99c47c), to(#75ae4c));\nbackground-image: -webkit-linear-gradient(top, #99c47c, #75ae4c);\nbackground-image: -moz-linear-gradient(top, #99c47c, #75ae4c);\nbackground-image: linear-gradient(to bottom, #99c47c, #75ae4c);\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:hover {\nborder:1px solid #447f19;\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:focus {\noutline:none;\nborder:1px solid #447f19;\n}\n.mktoForm .mktoButtonWrap.mktoSimple .mktoButton:active{\nbackground-color:#75ae4c;\nbackground-image: -webkit-gradient(linear, left top, left bottom, from(#75ae4c), to(#99c47c));\nbackground-image: -webkit-linear-gradient(top, #75ae4c, #99c47c);\nbackground-image: -moz-linear-gradient(top, #75ae4c, #99c47c);\nbackground-image: linear-gradient(to bottom, #75ae4c, #99c47c);\n}\n*> Developers Blog Terms Privacy Contact 1-415-229-2009 MuleSoft provides a widely used integration platform for connecting SaaS and enterprise applications in the cloud and on-premises. Delivered as a unified integration experience, CloudHub™ and Mule ESB™ (enterprise service bus) are built on proven open source technology for fast and reliable on-premises and cloud integration without vendor lock-in. Our solutions also include Tcat, an Apache Tomcat server for enterprises. ©2018 MuleSoft, Inc. Deutsch 中文 English Deutsch 中文 English \nfunction advagg_mod_2(){advagg_mod_2.count=++advagg_mod_2.count||1;try{if(advagg_mod_2.count<=40){document.createElement(\"picture\");advagg_mod_2.count=100;}}\ncatch(e){if(advagg_mod_2.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_2,250);}}}\nfunction advagg_mod_2_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_2();}\nelse{window.setTimeout(advagg_mod_2_check,250);}}\nadvagg_mod_2_check();\nfunction advagg_mod_3(){advagg_mod_3.count=++advagg_mod_3.count||1;try{if(advagg_mod_3.count<=40){loadCSS(\"/sites/default/files/advagg_css/css__VOl1Z2OHGdVgQmdLG4usKNvWiTk9Kqhm-R9I3M9ZSu0__5eeQlTWhnPF-sMR3dDTfKCFYN0kq9CR4jBMkgnLweV8__sbpnCnd040-1fPYRgR7X3Ybixc6EwE9ukJiN9N7HF6Q.css\")\nadvagg_mod_3.count=100;}}\ncatch(e){if(advagg_mod_3.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_3,250);}}}\nfunction advagg_mod_3_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_3();}\nelse{window.setTimeout(advagg_mod_3_check,250);}}\nadvagg_mod_3_check();\n\nfunction advagg_mod_4(){advagg_mod_4.count=++advagg_mod_4.count||1;try{if(advagg_mod_4.count<=40){loadCSS(\"/sites/default/files/advagg_css/css__bFx3vyqVZk1Zj-Dt0TK5hLRHGaFsUflrn_Fdd2TuMtU__vCiA5_lrnNpC4p-VBCxb7RhKX7bxxdHvAveashMQy3w__sbpnCnd040-1fPYRgR7X3Ybixc6EwE9ukJiN9N7HF6Q.css\")\nadvagg_mod_4.count=100;}}\ncatch(e){if(advagg_mod_4.count>=40){throw e;}\nelse{window.setTimeout(advagg_mod_4,250);}}}\nfunction advagg_mod_4_check(){if(window.jQuery&&window.Drupal&&window.Drupal.settings){advagg_mod_4();}\nelse{window.setTimeout(advagg_mod_4_check,250);}}\nadvagg_mod_4_check();\n\n\n\n\n\n button::-moz-focus-inner,\n input::-moz-focus-inner {\n border: 0;\n padding: 0;\n }\n (function(){AITag.activateCampaign(1611);})()function passRevealDataToGTM(a){var b=a.company,c=a.type;b&&(dataLayer.push({\"clearbit-company\":b}),dataLayer.push({\"clearbit-type\":c}),window.clearbitReveal=a)}ga(\"send\",\"event\",\"Clearbit\",\"Clearbit Enriched\",\"Clearbit Enriched\",{nonInteraction:!0});\n\nvar _eiq=_eiq||[],_engagio_settings={accountId:\"b012434c46df9e9e8b80e48d9cd99ee84f651d96\"};(function(){var a=document.createElement(\"script\");a.type=\"text/javascript\";a.async=!0;a.src=(\"https:\"==document.location.protocol?\"https://\":\"http://\")+\"web-analytics.engagio.com/js/ei.js\";var b=document.getElementsByTagName(\"script\")[0];b.parentNode.insertBefore(a,b)})();\n!function(b,e,f,g,a,c,d){b.fbq||(a=b.fbq=function(){a.callMethod?a.callMethod.apply(a,arguments):a.queue.push(arguments)},b._fbq||(b._fbq=a),a.push=a,a.loaded=!0,a.version=\"2.0\",a.queue=[],c=e.createElement(f),c.async=!0,c.src=g,d=e.getElementsByTagName(f)[0],d.parentNode.insertBefore(c,d))}(window,document,\"script\",\"//connect.facebook.net/en_US/fbevents.js\");fbq(\"init\",\"223798547972643\");fbq(\"track\",\"PageView\");\n\nwindow._tfa=window._tfa||[];_tfa.push({notify:\"mark\",type:\"Site_Retargeting\"});\n\n(function(b,d,e,c,a){b[c]=b[c]||function(){(b[c].queue=b[c].queue||[]).push(arguments)};b.__hly_widget_object={name:c};b[c].accountId=a;e+=\"?aid\\x3d\"+a;a=d.createElement(\"script\");a.type=\"text/javascript\";a.async=!0;a.src=e;d=d.getElementsByTagName(\"script\")[0];d.parentNode.insertBefore(a,d)})(window,document,\"https://app.hushly.com/runtime/widget.js\",\"hushly\",\"7179\");\nfunction processForm(a){a=document.querySelector(\".mktoForm #Email\").value;_tcaq.push([\"captureIdentity\",a,\"email\"])}var form=document.querySelector(\".mktoForm\");form.attachEvent?form.attachEvent(\"submit\",processForm):form.addEventListener(\"submit\",processForm);function callbackFunction(a){var b=a.results;a=a.results.isp;b&&!a&&dataLayer.push({\"rtp-results\":b})}rtp(\"get\",\"visitor\",callbackFunction);(function(a,e,f,g,b,c,d){a.GoogleAnalyticsObject=b;a[b]=a[b]||function(){(a[b].q=a[b].q||[]).push(arguments)};a[b].l=1*new Date;c=e.createElement(f);d=e.getElementsByTagName(f)[0];c.async=1;c.src=g;d.parentNode.insertBefore(c,d)})(window,document,\"script\",\"//www.google-analytics.com/analytics.js\",\"ga\");ga(\"create\",\"UA-605632-12\",{siteSpeedSampleRate:10});ga(\"send\",\"pageview\");\nwindow.AcquiaLift={account_id:\"MULESOFT\",liftAssetsURL:\"https://lift3assets.lift.acquia.com/stable\",liftDecisionAPIURL:\"https://us-east-1-decisionapi.lift.acquia.com\",authEndpoint:\"https://us-east-1-oauth2.lift.acquia.com\",contentReplacementMode:\"trusted\",site_id:\"mulesoft.com-D8-Prod\",profile:{person_udf5:google_tag_manager[\"GTM-SP2R\"].macro(16),person_udf6:google_tag_manager[\"GTM-SP2R\"].macro(17),person_udf18:\"83168200000\"}};\n\n\n\n \n \n\n \n\n .hly-overlay div.hly-view-text, .hly-overlay .hly-icon, .hly-overlay div.hly-view-text span {\n\tbackground: #78bc1f !important;\n\tbackground: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-toolbar .hly-tools ul li a,.hly-viewer .hly-toolbar .hly-tools ul li a:hover,.hly-viewer .hly-toolbar .hly-tools ul li a span,.hly-embed-wrap .hly-viewer .hly-title {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-btn {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tborder-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-embed-wrap .hly-recommendations,.hly-embed-wrap .hly-recommendations .hly-recommendation-list,.hly-mobile .hly-viewer .hly-recommendations,.hly-mobile .hly-recommendations .hly-recommendation-list {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-recommendations ul li.active,.hly-embed-wrap .hly-viewer .hly-recommendations ul li.active,.hly-mobile .hly-viewer .hly-recommendations ul li.active {\n\tborder-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer .hly-recommendations::-webkit-scrollbar-thumb,.hly-viewer div.hly-doc::-webkit-scrollbar-thumb,.hly-mobile .hly-viewer .hly-recommendations .hly-recommendation-list::-webkit-scrollbar-thumb {\n\tbackground: #78bc1f !important;\n\tbackground-color: #78bc1f !important;\n\tcolor: #ffffff !important;\n}\n.hly-viewer {\n\tbackground: #ffffff !important;\n\tbackground-color: #ffffff !important;\n}\n\ntwttr.conversion.trackPid(\"nue0l\",{tw_sale_amount:0,tw_order_quantity:0});\n\n\"\"\n\"\"\n\n","selector":".html"}]},"isBaselineVariation":false,"id":"5c04fda2daed66b73c4da70d"}],"organization":"5bc0d4fa834f08700786b368","holdbackVariation":null,"audience":null,"holdback":50,"holdbackMode":"random","name":"Mulesoft PRO-3: Landing Page Layout Updates","description":"Utilizing PRO capabilities to serve the best experience to visitors.","source":"visual","slug":"mulesoftPro3ApiSapHanaLpLayout","sourceId":"mulesoftPro3ApiSapHanaLpLayout","status":"draft","createdAt":"2018-12-03T05:41:57.793Z","updatedAt":"2018-12-07T21:23:27.341Z","pageTargets":[{"url":"https://www.mulesoft.com/lp/whitepaper/api/api-led-integration-sap-hana","match":"simple"},{"url":"https://www.mulesoft.com/lp/reports/ipaas-solution-evaluation","match":"simple"},{"url":"https://www.mulesoft.com/lp/ebook/api/integration-quick-start-guide","match":"simple"},{"url":"https://www.mulesoft.com/lp/ebook/api/api-lifecycle-management","match":"simple"},{"url":"https://www.mulesoft.com/lp/whitepaper/saas/salesforce-integration-patterns","match":"simple"},{"url":"https://www.mulesoft.com/lp/ebook/api/first-break-it","match":"simple"}],"editorUrl":"https://www.mulesoft.com/lp/whitepaper/api/api-led-integration-sap-hana","id":"5c04c225daed66b73c4c150e"}],"browserInfoConditions":[{"name":"Desktop condition","conditionGroups":[{"conditionList":[{"comparisonAttr":"function_is_evaluated","modifier":"equals","condition":"function userAgentDetect () {\n // var deviceTypeVar;\n if (window.navigator.userAgent.match(/Mobile/i)\n || window.navigator.userAgent.match(/iPhone/i)\n || window.navigator.userAgent.match(/iPod/i)\n || window.navigator.userAgent.match(/IEMobile/i)\n || window.navigator.userAgent.match(/Windows Phone/i)\n || window.navigator.userAgent.match(/Android/i)\n || window.navigator.userAgent.match(/BlackBerry/i)\n || window.navigator.userAgent.match(/webOS/i)) {\n if (window.navigator.userAgent.match(/Tablet/i)\n || window.navigator.userAgent.match(/iPad/i)\n || window.navigator.userAgent.match(/Nexus 7/i)\n || window.navigator.userAgent.match(/Nexus 10/i)\n || window.navigator.userAgent.match(/KFAPWI/i)) {\n return 'tablet';\n } else {\n return 'smartphone';\n }\n } else if (window.navigator.userAgent.match(/Intel Mac/i)) {\n return 'desktop_or_laptop';\n } else if (window.navigator.userAgent.match(/Nexus 7/i)\n || window.navigator.userAgent.match(/Nexus 10/i)\n || window.navigator.userAgent.match(/KFAPWI/i)) {\n return 'tablet';\n } else {\n return 'desktop_or_laptop';\n }\n }\n\n if (userAgentDetect()=='desktop_or_laptop'){\n if(window.location.href.indexOf('fe-debug=true')!=-1){\n console.info('audience desktop_or_laptop'); \n }\n return true;\n }else{\nreturn false;\n}\n","dataType":"string"}]}],"experimental":{},"slug":"desktopCondition","id":"5bf52783f4c71ff133842127"},{"name":"Paid Traffic","conditionGroups":[{"conditionList":[{"comparisonAttr":"function_is_evaluated","modifier":"equals","condition":"var regexp = /(cpc|ppc|paidsearch|cpv|cpa|cpp|content-text|display|cpm|banner|gclid)/g;\n\n\t\nvar FeURL = window.location.href.toLocaleLowerCase();\n\nif(FeURL.match(regexp)!=null){\n\treturn true;\n}","dataType":"string"}]}],"experimental":{},"slug":"paidTraffic","id":"5c06eb1178e32ffa1b5912b2"}],"campaigns":[],"forms":[],"org_raw":{"name":"Mulesoft","consentRequired":false,"orgJs":" (function () {\n var feLocation = window.location.href;\n var FEHelper = {\n // wait for jquery\n doWhenJqueryLoaded: function (todoWhenLoaded) {\n var waitForjQuery = setInterval(\n function () {\n if (typeof window.$ != 'undefined') {\n clearInterval(waitForjQuery);\n todoWhenLoaded();\n }\n }, 50);\n setTimeout(function () {\n clearInterval(waitForjQuery);\n }, 8000);\n },\n // waitfor jQuery\n doWhenMktoForms2Loaded: function (todoWhenLoaded) {\n var waitForMktoForms2 = setInterval(\n function () {\n if (typeof window.MktoForms2 != 'undefined') {\n clearInterval(waitForMktoForms2);\n todoWhenLoaded();\n }\n }, 50);\n\n setTimeout(function () {\n clearInterval(waitForMktoForms2);\n }, 8000);\n },\n // waitfor element\n doWhenElementLoaded: function(element, todoWhenLoaded) {\n var waitForElement = setInterval(\n function() {\n if ($(element).length > 0) {\n clearInterval(waitForElement);\n todoWhenLoaded();\n }\n }, 50);\n setTimeout(function(){ clearInterval(waitForElement)}, 5000)\n }\n };\n\n\n /* contact form */\n if(window.location.pathname==\"/lp/contact\"){\n grabMarketoFom('fe_contact' , 50);\n}\n /*ask-an-expert */\n if(feLocation.indexOf('lp/contact/ask-an-expert') != -1){\n grabMarketoFom('fe_ask-an-expert' , 1);\n }\n /*Product Downloads */\n if(feLocation.indexOf('lp/dl/studio') != -1){\n grabMarketoFom('fe_studio' , 20);\n }\n /*webinars */\n if(feLocation.indexOf('webinars/api/') != -1){\n grabMarketoFom('fe_webinars' , 50);\n }\n\n /*Report Downloads */\n if(feLocation.indexOf('lp/reports/') != -1){\n grabMarketoFom('fe_connectivity-benchmark' , 30);\n }\n /*restbook */\n if(feLocation.indexOf('lp/ebook/api/') || feLocation.indexOf('lp/ebook/saas/') != -1){\n grabMarketoFom('fe_Ebook-Download' , 10);\n }\n\n /* White Papers Download */\n if(feLocation.indexOf('lp/whitepaper/api/') != -1){\n grabMarketoFom('fe_White-Papers-Download' , 35);\n }\n\n /* Customer Story Download */\n if(feLocation.indexOf('case-studies/api/') != -1){\n FEHelper.doWhenJqueryLoaded(function(){\n FEHelper.doWhenElementLoaded('body', function(){\n $('body').delegate('.field-name-field-customer-story-download', 'click', function(){\n console.log('goal value 25')\n window.funnelEnvy.push({\n event: \"fe_Case-Study\",\n attributes: {\n value: 25\n }\n });\n })\n });\n });\n }\n\n\n function grabMarketoFom(goalName, value) {\n\n FEHelper.doWhenMktoForms2Loaded(function () {\n MktoForms2.whenReady(function (form) {\n form.onSuccess(function (callback) {\n if (value) {\n console.info('Form successfully submited FE' + value);\n window.funnelEnvy.push({\n event: goalName,\n attributes: {\n value: value\n }\n });\n } else {\n window.funnelEnvy.push({\n event: goalName\n });\n }\n });\n });\n });\n }\n\n})();\n\n/*For Free Trial Cta click Goal*/\n(function () {\n (function () {\n var g = /\\[object (Boolean|Number|String|Function|Array|Date|RegExp)\\]/; function h(a) { return null == a ? String(a) : (a = g.exec(Object.prototype.toString.call(Object(a)))) ? a[1].toLowerCase() : \"object\" } function k(a, b) { return Object.prototype.hasOwnProperty.call(Object(a), b) } function m(a) { if (!a || \"object\" != h(a) || a.nodeType || a == a.window) return !1; try { if (a.constructor && !k(a, \"constructor\") && !k(a.constructor.prototype, \"isPrototypeOf\")) return !1 } catch (b) { return !1 } for (var c in a); return void 0 === c || k(a, c) };/*\n Copyright 2012 Google Inc. All rights reserved. */\n function n(a, b, c) {\n this.b = a; this.f = b || function () { }; this.d = !1; this.a = {}; this.c = []; this.e = p(this); r(this, a, !c);\n if (typeof a == \"undefined\") { return true; };\n var d = a.push, e = this; a.push = function () { var b = [].slice.call(arguments, 0), c = d.apply(a, b); r(e, b); return c }\n } window.DataLayerHelper = n; n.prototype.get = function (a) { var b = this.a; a = a.split(\".\"); for (var c = 0; c < a.length; c++) { if (void 0 === b[a[c]]) return; b = b[a[c]] } return b }; n.prototype.flatten = function () { this.b.splice(0, this.b.length); this.b[0] = {}; s(this.a, this.b[0]) };\n function r(a, b, c) { for (a.c.push.apply(a.c, b); !1 === a.d && 0 < a.c.length;) { b = a.c.shift(); if (\"array\" == h(b)) a: { var d = b, e = a.a; if (\"string\" == h(d[0])) { for (var f = d[0].split(\".\"), u = f.pop(), d = d.slice(1), l = 0; l < f.length; l++) { if (void 0 === e[f[l]]) break a; e = e[f[l]] } try { e[u].apply(e, d) } catch (v) { } } } else if (\"function\" == typeof b) try { b.call(a.e) } catch (w) { } else if (m(b)) for (var q in b) s(t(q, b[q]), a.a); else continue; c || (a.d = !0, a.f(a.a, b), a.d = !1) } }\n function p(a) { return { set: function (b, c) { s(t(b, c), a.a) }, get: function (b) { return a.get(b) } } } function t(a, b) { for (var c = {}, d = c, e = a.split(\".\"), f = 0; f < e.length - 1; f++)d = d[e[f]] = {}; d[e[e.length - 1]] = b; return c } function s(a, b) { for (var c in a) if (k(a, c)) { var d = a[c]; \"array\" == h(d) ? (\"array\" == h(b[c]) || (b[c] = []), s(d, b[c])) : m(d) ? (m(b[c]) || (b[c] = {}), s(d, b[c])) : b[c] = d } };\n })();\n var count = 0;\n function listener(model, message) {\n if(model.gtm && model.gtm.elementUrl && model.gtm.elementUrl.indexOf('https://anypoint.mulesoft.com/login/#/signup') != -1 && count == 0){\n window.funnelEnvy.push({\n event: \"Free Trial Signup\",\n attributes: {\n value: 29\n }\n });\n // console.info('fire goal');\n count++;\n };\n }\n\n // wait until datalayer found\n var waitForDataLayer = setInterval(function () {\n if (typeof window.dataLayer != \"undefined\") {\n clearInterval(waitForDataLayer);\n var helper = new DataLayerHelper(window.dataLayer, listener, true);\n }\n }, 10);\n\n // fallback for datalayer not found\n setTimeout(function () {\n clearInterval(waitForDataLayer);\n }, 5000);\n \n})();\n\n var reveal;\n var waitForClearBit = setInterval(function () {\n if (typeof window.clearbitReveal != \"undefined\") {\n reveal = window.clearbitReveal;\n console.log('reveal added');\n clearInterval(waitForClearBit);\n }\n }, 1);\n\n // fallback for clearbit not found\n setTimeout(function () {\n clearInterval(waitForClearBit);\n }, 5000);","hideContentUntilScriptsExecute":true,"id":"5bc0d4fa834f08700786b368"}};})()