{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///tracklib.poly.min.js","webpack:///webpack/bootstrap 0c278c39dc849d7f5783","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./src/utils.ts","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./src/tracklib.logger.ts","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./src/tracklib.data.ts","webpack:///./node_modules/is-plain-object/index.js","webpack:///./node_modules/is-extendable/index.js","webpack:///./node_modules/for-in/index.js","webpack:///./node_modules/kind-of/index.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./src/tracklib.ts","webpack:///./src/tracklib.options.ts","webpack:///./src/multilayer.ts","webpack:///./node_modules/clone-deep/index.js","webpack:///./node_modules/isobject/index.js","webpack:///./node_modules/shallow-clone/index.js","webpack:///./node_modules/mixin-object/index.js","webpack:///./node_modules/for-own/index.js","webpack:///./src/tracklib.systems.ts","webpack:///./src/tracklib.generator.ts","webpack:///./src/tracklib.tracker.ts","webpack:///./src/tracklib.buffer.ts","webpack:///./src/systems/lib.ts","webpack:///./src/systems/helper/lib.campaign.ts","webpack:///./src/systems/brain.ts","webpack:///./src/features.ts","webpack:///./src/systems/pakpie.ts","webpack:///./src/systems/tif.ts","webpack:///./src/generator/img.ts","webpack:///./src/generator/img_pakpie.ts","webpack:///./src/generator/obj.ts","webpack:///./src/polyfills.ts","webpack:///./node_modules/core-js/fn/object/assign.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/fn/object/keys.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/es6/promise.js","webpack:///./node_modules/core-js/modules/es6.object.to-string.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./src/index-umd.ts"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","i","l","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","store","uid","Symbol","USE_SYMBOL","mergeDeep","target","source","key","util","isObject","isFunction","isArray","semicolonRegExp","urlParser","url","whitelist","href","replace","a","document","createElement","result","protocol","host","pathname","hash","substr","search","parameters","length","params_1","split","forEach","keyVal","_a","value","push","join","isString","isNumber","isBoolean","isScalar","Array","toString","isUndefined","ensureArray","subject","delimiter","prefixObject","baseObject","prefix","prefixed","createUrl","parts","temp","baseUrl","query","encodeURIComponent","sanitizeUrl","global","window","Math","self","Function","__g","core","version","__e","TrackingLogger","observers","registerObserver","observer","removeObserver","splice","indexOf","notifyObservers","arg","index","update","log","component","action","data","logger","it","TypeError","dP","createDesc","f","hide","has","SRC","$toString","TPL","inspectSource","O","val","safe","String","redefine","ctx","$export","type","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","expProto","undefined","U","W","R","anObject","IE8_DOM_DEFINE","toPrimitive","Attributes","e","exec","aFunction","fn","that","b","apply","arguments","$keys","enumBugKeys","keys","slice","is","id","px","random","concat","IObject","defined","ceil","floor","isNaN","shared","cof","TAG","ARG","tryGet","T","callee","def","tag","stat","multilayer_1","utils_1","TrackingData","trackData","MultiLayer","proptertiesCache","filter","getData","addFilter","filterFunction","runFilter","system","trackParameter","callData","preset","options","hasLayer","unifyParameter","setLayer","getPresetKey","getProperties","systemKey","merge","lib","setCache","parameterKey","layer","findLayer","setValue","getAllParameter","parameter","set","PRESET_AFFIX","isObjectObject","ctor","prot","constructor","isPlainObject","obj","thisArg","ctorName","isError","Error","message","stackTraceLimit","isDate","Date","toDateString","getDate","setDate","isRegexp","RegExp","flags","ignoreCase","multiline","isGeneratorFn","isGeneratorObj","next","isArguments","err","isBuffer","toLowerCase","bitmap","writable","propertyIsEnumerable","toInteger","min","LIBRARY","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","returnThis","Base","NAME","Constructor","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","documentElement","defer","channel","port","invoke","html","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","args","nextTick","now","port2","port1","onmessage","postMessage","addEventListener","importScripts","appendChild","removeChild","setTimeout","clear","PromiseCapability","C","resolve","reject","promise","$$resolve","$$reject","tracklib_options_1","tracklib_data_1","tracklib_systems_1","tracklib_generator_1","tracklib_tracker_1","tracklib_logger_1","lib_1","brain_1","pakpie_1","tif_1","img_1","img_pakpie_1","obj_1","TrackLib","trackOptions","TrackOptions","trackSystems","TrackingSystems","trackGenerator","TrackingGenerator","addTrackingSystem","libSystem","brainTrackingSystem","pakpieTrackingSystem","tifTrackingSystem","addTrackingGenerator","imageGenerator","imagePakpieGenerator","objectGenerator","tracker","Tracker","add","getTrackingSystem","getTrackingData","getTrackParameter","generator","track","callParameter","callProperties","getLogger","defaultOptions","buffer","read","write","retry","container","cloneDeep","tree","layerName","addLayer","assign","createLayer","walkTree","path","copyTree","shift","getLayer","searchLayer","_i","searchLayer_1","getLayerValue","getValue","defaultValue","setLayerValue","systemIndex","merged","getChildren","children","linkLayer","father","son","success","parents","instanceClone","typeOf","cloneObjectDeep","cloneArrayDeep","clone","res","forOwn","arr","mixin","array","date","map","Map","regexp","re","Set","copy","forIn","objects","len","idx","hasOwn","useKey","getGeneratorKey","generatorKey","GENERATOR_AFFIX","tracklib_buffer_1","_this","trackBuffer","TrackBuffer","addListener","evt","payload","bufferListener","setCallData","section","BufferEvents","ready","writeFromBuffer","toTrack","then","complete","error","activeSystems","properties","getActiveTrackingSystems","generatorAdapter","bufferValue","orgCallData","useParameter","field","resolveParameter","fieldkey","param","fields","neededValues","alias","resolveNeededValues","needed","allProperties","runtime","resolved","runtimeHelper","isActive","isAllowedForProtocol","allSystems","location","configuredProtocols","storageAvailable","storage","x","setItem","removeItem","active","localStorage","ensureBuffer","checkReady","item","created","getTime","meta","tries","saveBuffer","remove","getIndex","emit","foundIndex","loadBuffer","tmp","JSON","stringify","getItem","parse","lib_campaign_1","urlWhitelist","mc","ac","domainName","isCH","is1Reg","isInapp","q","cd","ved","sectionsWithHidWhitelist","timestamp","calc","resolutionw","cache","screen","width","resolutionh","height","ppi","detect","matchMedia","match","matches","low","high","rLow","rHigh","diff","check","steps","software","softwareversion","softwarevariant","iid","brand","registrationcountry","hid","product","viewportw","innerWidth","viewporth","innerHeight","trackingtype","eventposition","contentposition","contentid","destination","pageurl","need","provided","referrer","campaign","getLibCampaign","count","size","time","profileblocked","environment","libname","fixed","libversion","useparameter","systemParameter","addparameter","track_url","stage","base_url","getBrainUrl","protocols","getQueryParameter","paramKey","params","fields_1","extract","docCookies","sKey","decodeURIComponent","cookie","kid","features_1","mapping","cl","ev","tif","touch","features","touchevents","label","label_prefix","section_prefix","bool","DocumentTouch","attributeset","convertSectionToPageIdentifier","mobileOs","userLevel","userLevelMapping","sections","pageIdentifier","hasViewSection","pop","getPageIdentifierFromUrl","mobile_os","leadingSlashExp","htmlExtensionExp","trailingSlashExp","pageidentifier","mappingType","brain_tif_mapping","ul","product_for_userlevel","region","crx","methodName","tif_container","createValue","urlParts","doTracking","myUrl","img","Image","Promise","src","sum","charCodeAt","response","callObj","valueOf","getKeys","gOPS","pIE","toObject","$assign","A","K","k","aLen","getSymbols","isEnum","j","toIObject","arrayIndexOf","IE_PROTO","names","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","max","getOwnPropertySymbols","fails","KEY","classof","test","$at","iterated","_t","point","done","TO_STRING","pos","charAt","create","descriptor","dPs","Empty","createDict","iframeDocument","iframe","style","display","contentWindow","open","lt","close","Properties","defineProperties","ObjectProto","$iterators","wks","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","addToUnscopables","step","_k","Arguments","UNSCOPABLES","ArrayProto","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","speciesConstructor","task","microtask","newPromiseCapabilityModule","perform","promiseResolve","$Promise","isNode","empty","newPromiseCapability","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","_n","chain","_c","_v","ok","_s","reaction","handler","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","console","unhandled","isUnhandled","onunhandledrejection","reason","v","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","executor","onFulfilled","onRejected","catch","r","capability","iter","all","iterable","remaining","$index","alreadyCalled","race","forbiddenField","isArrayIter","getIterFn","BREAK","RETURN","iterator","iterFn","ret","getIteratorMethod","SPECIES","D","un","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","last","flush","parent","navigator","standalone","toggle","node","createTextNode","observe","characterData","promiseCapability","DESCRIPTORS","SAFE_CLOSING","riter","from","skipClosing","tracklib_1"],"mappings":"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","file":"tracklib.poly.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TrackLib\"] = factory();\n\telse\n\t\troot[\"TrackLib\"] = factory();\n})(this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"TrackLib\"] = factory();\n\telse\n\t\troot[\"TrackLib\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 108);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(36)('wks');\nvar uid = __webpack_require__(20);\nvar Symbol = __webpack_require__(2).Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\n/**\n * @private\n */\nvar mergeDeep = function (target, source) {\n var key;\n if (util.isObject(target) && util.isObject(source)) {\n for (key in source) {\n if (util.isObject(source[key]) && !util.isFunction(source[key]) && !util.isArray(source[key])) {\n if (!target.hasOwnProperty(key)) {\n target[key] = {};\n }\n mergeDeep(target[key], source[key]);\n }\n else {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n/**\n * matches any sequence starting with ';' and ending before '?', '#' or end of line\n * @private\n */\nvar semicolonRegExp = /(;.*?)(?=#|\\?|$)/gm;\n/**\n * Parse a URL, stripping any search parameters that aren't whitelisted\n * @private\n */\nvar urlParser = function (url, whitelist) {\n var href = url.replace(semicolonRegExp, '');\n var a = document.createElement('a');\n a.href = href;\n var result = {\n protocol: a.protocol,\n host: a.host,\n pathname: a.pathname === '/' ? '' : a.pathname,\n hash: a.hash ? a.hash.substr(1) : '',\n search: '',\n parameters: {}\n };\n if (a.search.length) {\n var params_1 = [];\n a.search.substr(1).split('&').forEach(function (keyVal) {\n var _a = keyVal.split('='), key = _a[0], value = _a[1];\n if (whitelist[key] && value !== 'undefined') {\n result.parameters[key] = value;\n params_1.push(keyVal);\n }\n });\n result.search = params_1.join('&');\n }\n return result;\n};\n/**\n * @private\n */\nvar util = {\n isString: function (value) { return typeof (value) === 'string'; },\n isNumber: function (value) { return typeof (value) === 'number'; },\n isBoolean: function (value) { return typeof (value) === 'boolean'; },\n isScalar: function (value) { return util.isString(value) || util.isNumber(value) || util.isBoolean(value); },\n isObject: function (value) { return Object(value) === value; },\n isFunction: function (value) { return typeof (value) === 'function'; },\n isArray: Array.isArray || function (a) { return Object.prototype.toString.call(a) === '[object Array]'; },\n isUndefined: function (value) { return value === void 0; },\n ensureArray: function (subject, delimiter) {\n if (delimiter === void 0) { delimiter = ','; }\n if (typeof subject === 'string') {\n subject = subject.split(delimiter);\n }\n return subject;\n // return this.isString(subject) ? : subject;\n },\n prefixObject: function (baseObject, prefix) {\n var prefixed = {};\n var key;\n for (key in baseObject) {\n prefixed[prefix + key] = baseObject[key];\n }\n return prefixed;\n },\n createUrl: function (parts) {\n var url, temp = [];\n url = parts.baseUrl;\n if (parts.query) {\n for (var key in parts.query) {\n temp.push(key + '=' + encodeURIComponent(parts.query[key]));\n }\n url += '?' + temp.join('&');\n }\n return url;\n },\n sanitizeUrl: function (url, whitelist) {\n var result;\n var parts = urlParser(url, whitelist);\n result = parts.protocol + \"//\" + parts.host + parts.pathname;\n if (parts.search) {\n result += '?' + parts.search;\n }\n if (parts.hash && parts.hash[0] === '.') {\n result += '#' + parts.hash;\n }\n return result;\n },\n /**\n * Deep merging of two objects\n */\n mergeDeep: mergeDeep,\n urlParser: urlParser\n};\nexports.util = util;\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.5.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\n// TODO: interface declaration\nvar TrackingLogger = /** @class */ (function () {\n function TrackingLogger() {\n this.observers = [];\n }\n TrackingLogger.prototype.registerObserver = function (observer) {\n this.observers.push(observer);\n };\n TrackingLogger.prototype.removeObserver = function (observer) {\n this.observers.splice(this.observers.indexOf(observer), 1);\n };\n TrackingLogger.prototype.notifyObservers = function (arg) {\n var index;\n for (index = 0; index < this.observers.length; index++) {\n this.observers[index].update(arg);\n }\n };\n TrackingLogger.prototype.log = function (component, action, data) {\n this.notifyObservers({\n component: component,\n action: action,\n data: data\n });\n };\n return TrackingLogger;\n}());\nexports.TrackingLogger = TrackingLogger;\nvar logger = new TrackingLogger();\nexports.logger = logger;\nlogger.registerObserver({\n update: function (arg) {\n }\n});\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(13);\nvar createDesc = __webpack_require__(33);\nmodule.exports = __webpack_require__(8) ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(14)(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(2);\nvar hide = __webpack_require__(6);\nvar has = __webpack_require__(10);\nvar SRC = __webpack_require__(20)('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(3).inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(2);\nvar core = __webpack_require__(3);\nvar hide = __webpack_require__(6);\nvar redefine = __webpack_require__(9);\nvar ctx = __webpack_require__(15);\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(5);\nvar IE8_DOM_DEFINE = __webpack_require__(67);\nvar toPrimitive = __webpack_require__(68);\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(8) ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(16);\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(70);\nvar enumBugKeys = __webpack_require__(37);\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\nvar document = __webpack_require__(2).document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(34);\nvar defined = __webpack_require__(22);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(36)('keys');\nvar uid = __webpack_require__(20);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(22);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(18);\nvar TAG = __webpack_require__(0)('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(13).f;\nvar has = __webpack_require__(10);\nvar TAG = __webpack_require__(0)('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar multilayer_1 = __webpack_require__(45);\nvar utils_1 = __webpack_require__(1);\n/**\n * Provides access to the tracking system/generator configurations stored in MultiLayer, adding a property value cache.\n *\n * @private\n */\nvar TrackingData = /** @class */ (function () {\n function TrackingData() {\n this.trackData = new multilayer_1.MultiLayer();\n this.proptertiesCache = {};\n this.filter = {};\n }\n TrackingData.prototype.getData = function () {\n return this.trackData;\n };\n /**\n * Add a filter for tracking parameters. The filter function is applied to the parameters map calculated for each\n * tracking call. Filters can modify this object.\n * TODO: Filters should return a new parameters map to prevent unwanted side effects\n *\n * @param {string} key\n * @param {FilterFunction} filterFunction\n */\n TrackingData.prototype.addFilter = function (key, filterFunction) {\n this.filter[key] = filterFunction;\n };\n TrackingData.prototype.runFilter = function (system, trackParameter, callData) {\n var key;\n for (key in this.filter) {\n this.filter[key](system, trackParameter, callData);\n }\n };\n TrackingData.prototype.preset = function (options) {\n var key;\n for (key in options) {\n if (this.trackData.hasLayer(key)) {\n TrackingData.unifyParameter(options[key]);\n this.trackData.setLayer(TrackingData.getPresetKey(key), options[key]);\n }\n }\n };\n /**\n * Calculate and cache the properties for a given system. callData values override system preset values which\n * override the common 'lib' values.\n * @param systemKey\n * @returns {{}}\n */\n TrackingData.prototype.getProperties = function (systemKey) {\n if (!this.proptertiesCache[systemKey]) {\n this.proptertiesCache[systemKey] = {\n system: this.trackData.merge([systemKey, TrackingData.getPresetKey(systemKey)], ['properties', 'system']),\n lib: this.trackData.merge(['lib', systemKey, TrackingData.getPresetKey('lib'), TrackingData.getPresetKey(systemKey)], ['properties', 'lib'])\n };\n }\n return this.proptertiesCache[systemKey];\n };\n TrackingData.prototype.setCache = function (systemKey, parameterKey, value) {\n var layer;\n var search = ['lib', systemKey, TrackingData.getPresetKey('lib'), TrackingData.getPresetKey(systemKey)];\n layer = this.trackData.findLayer(search, ['parameter', parameterKey, 'cache'], true);\n if (layer) {\n this.trackData.setValue(layer, ['parameter', parameterKey], 'cache_value', value);\n }\n };\n /**\n * Calculate the tracking parameters for the given system. callData values override system preset values which\n * override the common 'lib' values.\n *\n * @param {TrackingSystemInterface} system\n * @param {{}} callData\n * @returns {{}}\n */\n TrackingData.prototype.getAllParameter = function (system, callData) {\n if (callData === void 0) { callData = {}; }\n var merge;\n merge = [\n 'lib',\n system.key,\n TrackingData.getPresetKey('lib'),\n TrackingData.getPresetKey(system.key),\n callData\n ];\n return this.trackData.merge(merge, 'parameter');\n };\n TrackingData.unifyParameter = function (data) {\n var key;\n var parameter;\n parameter = data.hasOwnProperty('parameter') ? data['parameter'] : data;\n for (key in parameter) {\n if (!utils_1.util.isObject(parameter[key])) {\n parameter[key] = { set: parameter[key] };\n }\n }\n };\n TrackingData.getPresetKey = function (key) {\n return key + TrackingData.PRESET_AFFIX;\n };\n TrackingData.PRESET_AFFIX = '_preset';\n return TrackingData;\n}());\nexports.TrackingData = TrackingData;\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isObject = __webpack_require__(47);\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*!\n * is-extendable \n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isPlainObject = __webpack_require__(29);\n\nmodule.exports = function isExtendable(val) {\n return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*!\n * for-in \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nmodule.exports = function forIn(obj, fn, thisArg) {\n for (var key in obj) {\n if (fn.call(thisArg, obj[key], key, obj) === false) {\n break;\n }\n }\n};\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nvar toString = Object.prototype.toString;\n\nmodule.exports = function kindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n\n var type = typeof val;\n if (type === 'boolean') return 'boolean';\n if (type === 'string') return 'string';\n if (type === 'number') return 'number';\n if (type === 'symbol') return 'symbol';\n if (type === 'function') {\n return isGeneratorFn(val) ? 'generatorfunction' : 'function';\n }\n\n if (isArray(val)) return 'array';\n if (isBuffer(val)) return 'buffer';\n if (isArguments(val)) return 'arguments';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n if (isRegexp(val)) return 'regexp';\n\n switch (ctorName(val)) {\n case 'Symbol': return 'symbol';\n case 'Promise': return 'promise';\n\n // Set, Map, WeakSet, WeakMap\n case 'WeakMap': return 'weakmap';\n case 'WeakSet': return 'weakset';\n case 'Map': return 'map';\n case 'Set': return 'set';\n\n // 8-bit typed arrays\n case 'Int8Array': return 'int8array';\n case 'Uint8Array': return 'uint8array';\n case 'Uint8ClampedArray': return 'uint8clampedarray';\n\n // 16-bit typed arrays\n case 'Int16Array': return 'int16array';\n case 'Uint16Array': return 'uint16array';\n\n // 32-bit typed arrays\n case 'Int32Array': return 'int32array';\n case 'Uint32Array': return 'uint32array';\n case 'Float32Array': return 'float32array';\n case 'Float64Array': return 'float64array';\n }\n\n if (isGeneratorObj(val)) {\n return 'generator';\n }\n\n // Non-plain objects\n type = toString.call(val);\n switch (type) {\n case '[object Object]': return 'object';\n // iterators\n case '[object Map Iterator]': return 'mapiterator';\n case '[object Set Iterator]': return 'setiterator';\n case '[object String Iterator]': return 'stringiterator';\n case '[object Array Iterator]': return 'arrayiterator';\n }\n\n // other\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n};\n\nfunction ctorName(val) {\n return val.constructor ? val.constructor.name : null;\n}\n\nfunction isArray(val) {\n if (Array.isArray) return Array.isArray(val);\n return val instanceof Array;\n}\n\nfunction isError(val) {\n return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function'\n && typeof val.getDate === 'function'\n && typeof val.setDate === 'function';\n}\n\nfunction isRegexp(val) {\n if (val instanceof RegExp) return true;\n return typeof val.flags === 'string'\n && typeof val.ignoreCase === 'boolean'\n && typeof val.multiline === 'boolean'\n && typeof val.global === 'boolean';\n}\n\nfunction isGeneratorFn(name, val) {\n return ctorName(name) === 'GeneratorFunction';\n}\n\nfunction isGeneratorObj(val) {\n return typeof val.throw === 'function'\n && typeof val.return === 'function'\n && typeof val.next === 'function';\n}\n\nfunction isArguments(val) {\n try {\n if (typeof val.length === 'number' && typeof val.callee === 'function') {\n return true;\n }\n } catch (err) {\n if (err.message.indexOf('callee') !== -1) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n if (val.constructor && typeof val.constructor.isBuffer === 'function') {\n return val.constructor.isBuffer(val);\n }\n return false;\n}\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(18);\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(23);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(2);\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(39);\nvar $export = __webpack_require__(12);\nvar redefine = __webpack_require__(9);\nvar hide = __webpack_require__(6);\nvar has = __webpack_require__(10);\nvar Iterators = __webpack_require__(11);\nvar $iterCreate = __webpack_require__(82);\nvar setToStringTag = __webpack_require__(27);\nvar getPrototypeOf = __webpack_require__(85);\nvar ITERATOR = __webpack_require__(0)('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = (!BUGGY && $native) || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(2).document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ctx = __webpack_require__(15);\nvar invoke = __webpack_require__(97);\nvar html = __webpack_require__(40);\nvar cel = __webpack_require__(19);\nvar global = __webpack_require__(2);\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (__webpack_require__(18)(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = __webpack_require__(16);\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar tracklib_options_1 = __webpack_require__(44);\nvar tracklib_data_1 = __webpack_require__(28);\nvar tracklib_systems_1 = __webpack_require__(51);\nvar tracklib_generator_1 = __webpack_require__(52);\nvar tracklib_tracker_1 = __webpack_require__(53);\nvar tracklib_logger_1 = __webpack_require__(4);\n// default tracking systems\nvar lib_1 = __webpack_require__(55);\nvar brain_1 = __webpack_require__(57);\nvar pakpie_1 = __webpack_require__(59);\nvar tif_1 = __webpack_require__(60);\n// default tracking generator\nvar img_1 = __webpack_require__(61);\nvar img_pakpie_1 = __webpack_require__(62);\nvar obj_1 = __webpack_require__(63);\n/**\n * This class exposes the Tracklib's public API.\n */\nvar TrackLib = /** @class */ (function () {\n /**\n * Creates a new TrackLib instance. Adds the BRAIN, TIF and PAKPIE tracking systems.\n *\n * @param {PresetGroupInterface} preset Tracking data preset(s) for one or more tracking system(s). Overrides the\n * default values.\n * @param {TrackOptionsInterface} options General tracking options\n */\n function TrackLib(preset, options) {\n if (options === void 0) { options = {}; }\n this.trackOptions = new tracklib_options_1.TrackOptions(options);\n this.trackData = new tracklib_data_1.TrackingData();\n this.trackSystems = new tracklib_systems_1.TrackingSystems(this.trackData);\n this.trackGenerator = new tracklib_generator_1.TrackingGenerator(this.trackData);\n this.addTrackingSystem(lib_1.libSystem);\n this.addTrackingSystem(brain_1.brainTrackingSystem);\n this.addTrackingSystem(pakpie_1.pakpieTrackingSystem);\n this.addTrackingSystem(tif_1.tifTrackingSystem);\n this.addTrackingGenerator(img_1.imageGenerator);\n this.addTrackingGenerator(img_pakpie_1.imagePakpieGenerator);\n this.addTrackingGenerator(obj_1.objectGenerator);\n this.preset(preset);\n this.tracker = new tracklib_tracker_1.Tracker(this.trackData, this.trackSystems, this.trackGenerator, this.trackOptions);\n }\n /**\n * Add pre-configured data for a specific tracking system. Returns the TrackLib instance for method chaining.\n *\n * @param {PresetGroupInterface} preset Tracking data preset(s) for one or more tracking system(s)\n * @returns {TrackLib}\n */\n TrackLib.prototype.preset = function (preset) {\n this.trackData.preset(preset);\n return this;\n };\n /**\n * Add a filter function. It will be called with the full set of resolved parameters for each tracking call which\n * it can modify.\n *\n * @param {string} key\n * @param {FilterFunction} filterFunction\n */\n TrackLib.prototype.addFilter = function (key, filterFunction) {\n this.trackData.addFilter(key, filterFunction);\n };\n /**\n * Add a tracking system configuration. Returns the TrackLib instance for method chaining.\n *\n * @param {TrackingSystemInterface} system Tracking system configuration\n * @returns {TrackLib}\n */\n TrackLib.prototype.addTrackingSystem = function (system) {\n this.trackSystems.add(system);\n return this;\n };\n /**\n * Returns the configuration of a specific tracking system.\n *\n * @param {string} key tracking system name\n * @returns {TrackingSystemInterface} Tracking system configuration\n */\n TrackLib.prototype.getTrackingSystem = function (key) {\n return this.trackSystems.get(key);\n };\n /**\n * Returns the full set of calculated tracking parameters for a specific tracking system.\n *\n * @param {string} systemKey the name of a configured tracking system\n * @returns {{}} map of tracking parameters\n */\n TrackLib.prototype.getTrackingData = function (systemKey) {\n var result = {};\n var system = this.getTrackingSystem(systemKey);\n if (system) {\n result = this.tracker.getTrackParameter(system);\n }\n return result;\n };\n /**\n * Add a new tracking generator. Returns the TrackLib instance for method chaining.\n *\n * @param {TrackingGeneratorInterface} generator\n * @returns {TrackLib}\n */\n TrackLib.prototype.addTrackingGenerator = function (generator) {\n this.trackGenerator.add(generator);\n return this;\n };\n /**\n * Make a tracking call. Returns the TrackLib instance for method chaining.\n *\n * @param {{}} callParameter Call-specific tracking parameters, e.g. 'section', 'trackingtype', 'destination'\n * @param {{}} callProperties Call-specific tracking properties. Can be used to activate a tracking system only for\n * individual tracking calls, e.g. { tif : { active : true } }\n * @returns {TrackLib}\n */\n TrackLib.prototype.track = function (callParameter, callProperties) {\n if (callProperties === void 0) { callProperties = {}; }\n this.tracker.run(callParameter, callProperties);\n return this;\n };\n /**\n * Returns a TrackingLogger instance (used for debugging).\n *\n * @returns {TrackingLogger}\n */\n TrackLib.prototype.getLogger = function () {\n return tracklib_logger_1.logger;\n };\n return TrackLib;\n}());\nexports.TrackLib = TrackLib;\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar utils_1 = __webpack_require__(1);\nvar tracklib_logger_1 = __webpack_require__(4);\nvar defaultOptions = {\n buffer: {\n read: false,\n write: false,\n retry: 3,\n key: 'trlbuf',\n container: 'html5'\n }\n};\n/**\n * This class holds general TrackLib configuration that is not specific to any tracking system.\n *\n * @private\n */\nvar TrackOptions = /** @class */ (function () {\n function TrackOptions(options) {\n this.options = utils_1.util.mergeDeep(defaultOptions, options);\n if (options.observer && utils_1.util.isObject(options.observer) && utils_1.util.isFunction(options.observer.update)) {\n tracklib_logger_1.logger.registerObserver(options.observer);\n }\n }\n TrackOptions.prototype.get = function () {\n return this.options;\n };\n return TrackOptions;\n}());\nexports.TrackOptions = TrackOptions;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar cloneDeep = __webpack_require__(46);\nvar utils_1 = __webpack_require__(1);\n/**\n * Stores the data layers (tracking system presets and generator definitions). Each system preset extends the 'lib'\n * preset. Each generator extends the '_generator' layer.\n *\n * @private\n */\nvar MultiLayer = /** @class */ (function () {\n function MultiLayer() {\n // Stores the different data-layer\n this.layer = {};\n // Stores relations between layer\n this.tree = {};\n this.setLayer = function (layerName, data) {\n if (this.addLayer(layerName)) {\n this.layer[layerName] = Object.assign(this.layer[layerName], cloneDeep(data));\n return true;\n }\n else {\n return false;\n }\n };\n this.createLayer = function () {\n return {};\n };\n }\n MultiLayer.prototype.walkTree = function (obj, path) {\n return path.length && !utils_1.util.isUndefined(obj) ? this.walkTree(obj[path[0]], path.slice(1)) : obj;\n };\n /**\n * Copy a path'd value to another object\n * @param target\n * @param source\n * @param path\n * @returns {boolean}\n */\n MultiLayer.prototype.copyTree = function (target, source, path) {\n var key = path.shift();\n if (path.length) {\n if (source.hasOwnProperty(key)) {\n if (!target.hasOwnProperty(key)) {\n target[key] = {};\n }\n return this.copyTree(target[key], source[key], path);\n }\n else {\n return false;\n }\n }\n else {\n target[key] = source[key];\n return true;\n }\n };\n /**\n * Create a new data layer\n * @param layerName\n * @returns {boolean}\n */\n MultiLayer.prototype.addLayer = function (layerName) {\n if (!this.layer.hasOwnProperty(layerName)) {\n this.layer[layerName] = this.createLayer();\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * Test if a given layername exists as layer\n * @param layerName\n * @returns {boolean}\n */\n MultiLayer.prototype.hasLayer = function (layerName) {\n return this.layer.hasOwnProperty(layerName);\n };\n /**\n * Returns a given layer\n * @param layerName\n * @returns {*}\n */\n MultiLayer.prototype.getLayer = function (layerName) {\n if (this.layer.hasOwnProperty(layerName)) {\n return this.layer[layerName];\n }\n else {\n return null;\n }\n };\n MultiLayer.prototype.findLayer = function (searchLayer, path, value) {\n var layerName;\n var result;\n for (var _i = 0, searchLayer_1 = searchLayer; _i < searchLayer_1.length; _i++) {\n layerName = searchLayer_1[_i];\n if (this.getLayerValue(layerName, path) === value) {\n result = this.layer[layerName];\n break;\n }\n }\n return result;\n };\n MultiLayer.prototype.getValue = function (obj, path, defaultValue) {\n var value;\n path = utils_1.util.ensureArray(path, '.');\n value = this.walkTree(obj, path);\n if (utils_1.util.isUndefined(value)) {\n value = defaultValue;\n }\n return value;\n };\n MultiLayer.prototype.setValue = function (obj, path, key, value) {\n var temp;\n path = utils_1.util.ensureArray(path, '.');\n temp = this.walkTree(obj, path);\n temp[key] = value;\n };\n /**\n * Returns a path'd value inside a layer\n * @param layerName\n * @param path\n * @param defaultValue\n * @returns {*}\n */\n MultiLayer.prototype.getLayerValue = function (layerName, path, defaultValue) {\n var value = defaultValue;\n if (this.layer.hasOwnProperty(layerName)) {\n value = this.getValue(this.layer[layerName], path, defaultValue);\n }\n return value;\n };\n /**\n * Returns a path'd value inside a layer\n * @param layerName\n * @param path\n * @param key\n * @param value\n * @returns {*}\n */\n MultiLayer.prototype.setLayerValue = function (layerName, path, key, value) {\n if (this.layer.hasOwnProperty(layerName)) {\n this.setValue(this.layer[layerName], path, key, value);\n }\n };\n /**\n *\n * @param layer\n * @param path\n * @returns {{}}\n */\n MultiLayer.prototype.merge = function (layer, path) {\n var merged = {};\n var systemIndex;\n layer = utils_1.util.ensureArray(layer);\n for (systemIndex = 0; systemIndex < layer.length; systemIndex++) {\n if (utils_1.util.isObject(layer[systemIndex])) {\n merged = utils_1.util.mergeDeep(merged, layer[systemIndex][path]);\n }\n else if (this.layer.hasOwnProperty(layer[systemIndex])) {\n merged = utils_1.util.mergeDeep(merged, this.getLayerValue(layer[systemIndex], path));\n }\n }\n return merged;\n };\n MultiLayer.prototype.getChildren = function (layerName) {\n return this.tree.hasOwnProperty(layerName) ? this.tree[layerName].children : {};\n };\n MultiLayer.prototype.linkLayer = function (father, son) {\n var success = false;\n if (this.layer.hasOwnProperty(father) && this.layer.hasOwnProperty(son)) {\n if (!this.tree.hasOwnProperty(father)) {\n this.tree[father] = { parents: {}, children: {} };\n }\n if (!this.tree.hasOwnProperty(son)) {\n this.tree[son] = { parents: {}, children: {} };\n }\n this.tree[father]['children'][son] = this.layer[son];\n this.tree[son]['parents'][father] = this.layer[father];\n success = true;\n }\n return success;\n };\n return MultiLayer;\n}());\nexports.MultiLayer = MultiLayer;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Module dependenices\n */\n\nvar isObject = __webpack_require__(29);\nvar clone = __webpack_require__(48);\nvar typeOf = __webpack_require__(32);\nvar forOwn = __webpack_require__(50);\n\n/**\n * Recursively clone native types.\n */\n\nfunction cloneDeep(val, instanceClone) {\n switch (typeOf(val)) {\n case 'object':\n return cloneObjectDeep(val, instanceClone);\n case 'array':\n return cloneArrayDeep(val, instanceClone);\n default: {\n return clone(val);\n }\n }\n}\n\nfunction cloneObjectDeep(obj, instanceClone) {\n if (isObject(obj) || (instanceClone === true && typeOf(obj) === 'object')) {\n var res = {};\n forOwn(obj, function(val, key) {\n this[key] = cloneDeep(val, instanceClone);\n }, res);\n return res;\n }\n if (typeof instanceClone === 'function') {\n return instanceClone(obj);\n }\n return obj;\n}\n\nfunction cloneArrayDeep(arr, instanceClone) {\n var res = [];\n for (var i = 0; i < arr.length; i++) {\n res[i] = cloneDeep(arr[i], instanceClone);\n }\n return res;\n}\n\n/**\n * Expose `cloneDeep`\n */\n\nmodule.exports = cloneDeep;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*!\n * isobject \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*!\n * shallow-clone \n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar isObject = __webpack_require__(30);\nvar mixin = __webpack_require__(49);\nvar typeOf = __webpack_require__(32);\n\n/**\n * Shallow copy an object, array or primitive.\n *\n * @param {any} `val`\n * @return {any}\n */\n\nfunction clone(val) {\n var type = typeOf(val);\n if (clone.hasOwnProperty(type)) {\n return clone[type](val);\n }\n return val;\n}\n\nclone.array = function cloneArray(arr) {\n return arr.slice();\n};\n\nclone.date = function cloneDate(date) {\n return new Date(+date);\n};\n\nclone.object = function cloneObject(obj) {\n if (isObject(obj)) {\n return mixin({}, obj);\n } else {\n return obj;\n }\n};\n\nclone.map = function cloneMap(val) {\n return new Map(val);\n};\n\nclone.regexp = function cloneRegExp(re) {\n var flags = '';\n flags += re.multiline ? 'm' : '';\n flags += re.global ? 'g' : '';\n flags += re.ignoreCase ? 'i' : '';\n return new RegExp(re.source, flags);\n};\n\nclone.set = function cloneSet(val) {\n return new Set(val);\n};\n\n/**\n * Expose `clone`\n */\n\nmodule.exports = clone;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar isObject = __webpack_require__(30);\nvar forIn = __webpack_require__(31);\n\nmodule.exports = function mixin(target, objects) {\n if (!isObject(target)) {\n throw new TypeError('expected the first argument to be an object');\n }\n\n var len = arguments.length;\n var idx = 0;\n\n while (++idx < len) {\n copy(target, arguments[idx]);\n }\n return target;\n};\n\n/**\n * copy properties from the source object to the\n * target object. We don't use `Object.keys` here, since\n * \"mixin\" also adds non-enumerable keys.\n *\n * @param {*} `value`\n * @param {String} `key`\n */\n\nfunction copy(target, obj) {\n if (isObject(obj)) {\n forIn(obj, function(value, key) {\n target[key] = value;\n });\n }\n}\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*!\n * for-own \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n\n\nvar forIn = __webpack_require__(31);\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nmodule.exports = function forOwn(obj, fn, thisArg) {\n forIn(obj, function(val, key) {\n if (hasOwn.call(obj, key)) {\n return fn.call(thisArg, obj[key], key, obj);\n }\n });\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\n/**\n * @private\n */\nvar TrackingSystems = /** @class */ (function () {\n function TrackingSystems(trackData) {\n this.trackData = trackData;\n }\n TrackingSystems.prototype.add = function (system) {\n if (this.trackData.getData().setLayer(system['key'], system)) {\n if ('lib' !== system['key']) {\n this.trackData.getData().linkLayer('lib', system['key']);\n }\n }\n };\n TrackingSystems.prototype.get = function (key) {\n var system;\n system = this.trackData.getData().getLayer(key);\n return system;\n };\n return TrackingSystems;\n}());\nexports.TrackingSystems = TrackingSystems;\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\n/**\n * Generators are responsible for making the actual tracking calls, e.g. by creating tracking pixels or sending HTTP\n * requests. Each tracking system can define its own TrackingGenerator implementation.\n *\n * @private\n */\nvar TrackingGenerator = /** @class */ (function () {\n function TrackingGenerator(trackData) {\n this.trackData = trackData;\n this.trackData.getData().addLayer('_generator');\n }\n TrackingGenerator.prototype.add = function (generator) {\n var useKey = TrackingGenerator.getGeneratorKey(generator['key']);\n if (this.trackData.getData().setLayer(useKey, generator)) {\n this.trackData.getData().linkLayer('_generator', useKey);\n }\n };\n TrackingGenerator.prototype.get = function (generatorKey) {\n var useKey = TrackingGenerator.getGeneratorKey(generatorKey);\n return this.trackData.getData().getLayer(useKey);\n };\n TrackingGenerator.getGeneratorKey = function (key) {\n return key + TrackingGenerator.GENERATOR_AFFIX;\n };\n TrackingGenerator.GENERATOR_AFFIX = '_generator';\n return TrackingGenerator;\n}());\nexports.TrackingGenerator = TrackingGenerator;\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar tracklib_data_1 = __webpack_require__(28);\nvar utils_1 = __webpack_require__(1);\nvar tracklib_buffer_1 = __webpack_require__(54);\n/**\n * @private\n */\nvar Tracker = /** @class */ (function () {\n function Tracker(trackData, trackSystems, trackGenerator, trackOptions) {\n var _this = this;\n this.trackData = trackData;\n this.trackSystems = trackSystems;\n this.trackGenerator = trackGenerator;\n this.trackOptions = trackOptions;\n this.trackBuffer = new tracklib_buffer_1.TrackBuffer(this.trackOptions.get().buffer);\n if (this.trackOptions.get().buffer.read) {\n this.trackBuffer.addListener(function (evt, payload) { return _this.bufferListener(evt, payload); });\n }\n }\n /**\n * Analyze and unify the call parameters and properties\n *\n * @param callParameter\n * @param callProperties\n */\n Tracker.prototype.setCallData = function (callParameter, callProperties) {\n this.callData = {};\n if (typeof callParameter === 'string') {\n callParameter = { section: callParameter };\n }\n this.callData['parameter'] = callParameter;\n this.callData['properties'] = callProperties;\n tracklib_data_1.TrackingData.unifyParameter(this.callData);\n };\n Tracker.prototype.bufferListener = function (evt, payload) {\n switch (evt) {\n case tracklib_buffer_1.BufferEvents.ready:\n this.writeFromBuffer();\n break;\n }\n };\n Tracker.prototype.writeFromBuffer = function () {\n var _this = this;\n var toTrack;\n var generator;\n toTrack = this.trackBuffer.get();\n if (toTrack) {\n generator = this.trackGenerator.get(toTrack.generator);\n if (generator) {\n generator.track(toTrack.value)\n .then(function () {\n _this.trackBuffer.complete(toTrack);\n })[\"catch\"](function () {\n _this.trackBuffer.error(toTrack);\n });\n }\n }\n };\n /**\n * Resolves tracking parameters and properties and runs the tracking generators for each active system.\n *\n * @param {{} | string} callParameter\n * @param {{}} callProperties\n */\n Tracker.prototype.run = function (callParameter, callProperties) {\n var activeSystems;\n var systemKey;\n var system;\n var trackParameter;\n var properties;\n var generator;\n this.setCallData(callParameter, callProperties);\n activeSystems = this.getActiveTrackingSystems();\n for (systemKey in activeSystems) {\n system = activeSystems[systemKey];\n trackParameter = this.getTrackParameter(system);\n properties = this.trackData.getProperties(system.key);\n generator = this.trackGenerator.get(properties.lib.generator);\n if (properties.lib.generatorAdapter && utils_1.util.isFunction(properties.lib.generatorAdapter)) {\n trackParameter = properties.lib.generatorAdapter(properties, trackParameter);\n }\n if (this.trackOptions.get().buffer.write && generator.getValue) {\n var bufferValue = generator.getValue(trackParameter);\n this.trackBuffer.add(bufferValue, generator.key);\n }\n else {\n generator.run(trackParameter);\n }\n }\n };\n /**\n * Get all parameter for a tracking-call\n * @param system\n * @returns {Array}\n */\n Tracker.prototype.getTrackParameter = function (system) {\n var properties;\n var callData, orgCallData;\n var useParameter;\n var index;\n var field;\n var trackParameter = {};\n properties = this.trackData.getProperties(system.key);\n callData = this.callData;\n orgCallData = utils_1.util.mergeDeep({}, this.callData);\n // calc parameter for this call\n callData['systemParameter'] = this.trackData.getData().merge(['lib', system.key], 'parameter');\n callData['allParameter'] = this.trackData.getAllParameter(system, callData);\n callData['properties'] = this.trackData.getProperties(system.key);\n useParameter = this.trackData.getData().getValue(properties, ['lib', 'useparameter'], []);\n if (utils_1.util.isFunction(useParameter)) {\n useParameter = useParameter(system, callData);\n }\n for (index = 0; index < useParameter.length; index++) {\n field = this.resolveParameter(system, useParameter[index], callData);\n if (utils_1.util.isObject(field)) {\n trackParameter = Object.assign(trackParameter, field);\n }\n }\n this.trackData.runFilter(system, trackParameter, orgCallData);\n return trackParameter;\n };\n /**\n * Resolve a specific parameter for a given system\n * @param system\n * @param key\n * @param callData\n * @param options\n * @returns {{}}\n */\n Tracker.prototype.resolveParameter = function (system, key, callData, options) {\n if (options === void 0) { options = {}; }\n var fields = {};\n var fieldkey;\n var neededValues = {};\n var param;\n var result;\n options = Object.assign({ alias: true }, options);\n param = callData['allParameter'][key];\n // return cached value if availiable\n if (param['cache'] && param.hasOwnProperty('cache_value')) {\n result = param['cache_value'];\n }\n else {\n // resolve needed values\n if (param['need'] && utils_1.util.isObject(param['need'])) {\n neededValues = this.resolveNeededValues(system, param['need'], callData);\n }\n switch (true) {\n case param.hasOwnProperty('fixed'):\n result = param['fixed'];\n break;\n case param.hasOwnProperty('calc') && utils_1.util.isFunction(param['calc']):\n result = param['calc'](neededValues, param, system);\n break;\n case param.hasOwnProperty('set'):\n result = param['set'];\n break;\n }\n }\n if (utils_1.util.isObject(result)) {\n fields = result;\n }\n else {\n fieldkey = options['alias'] && param['alias'] ? param['alias'] : key;\n if (utils_1.util.isScalar(result)) {\n fields[fieldkey] = result;\n }\n else if (param.hasOwnProperty('defaultValue') && utils_1.util.isScalar(param['defaultValue'])) {\n fields[fieldkey] = param['defaultValue'];\n }\n }\n // Set cache\n if (param['cache'] && !param.hasOwnProperty('cache_value') && !utils_1.util.isUndefined(result)) {\n this.trackData.setCache(system.key, key, result);\n }\n return fields;\n };\n /**\n * Resolve all system-specific parameter that a specific parameter needs\n * @param system\n * @param needed\n * @param callData\n * @returns {{}}\n */\n Tracker.prototype.resolveNeededValues = function (system, needed, callData) {\n // Resolve parameter\n var allProperties;\n var resolved = {};\n var field;\n var index;\n var runtime;\n var success = true;\n if (needed['properties'] && utils_1.util.isArray(needed['properties'])) {\n allProperties = this.trackData.getProperties(system.key);\n resolved['properties'] = {};\n for (index = 0; index < needed['properties'].length; index++) {\n success = success && this.trackData.getData().copyTree(resolved['properties'], allProperties, utils_1.util.ensureArray(needed['properties'][index], '.'));\n }\n }\n if (needed['parameter'] && utils_1.util.isArray(needed['parameter'])) {\n resolved['parameter'] = {};\n for (index = 0; index < needed['parameter'].length; index++) {\n field = this.resolveParameter(system, needed['parameter'][index], callData, { alias: false });\n resolved['parameter'] = Object.assign(resolved['parameter'], field);\n }\n }\n if (needed['runtime'] && utils_1.util.isArray(needed['runtime'])) {\n resolved['runtime'] = {};\n for (index = 0; index < needed['runtime'].length; index++) {\n runtime = needed['runtime'][index];\n resolved['runtime'][runtime] = this.runtimeHelper(runtime, callData);\n }\n }\n if (!success) {\n resolved = null;\n }\n return resolved;\n };\n /**\n * Returns a list of active tracking-systems\n * @returns {{}}\n */\n Tracker.prototype.getActiveTrackingSystems = function () {\n var system;\n var isActive;\n var isAllowedForProtocol;\n var activeSystems = {};\n var allSystems = this.trackData.getData().getChildren('lib');\n for (system in allSystems) {\n isActive = false;\n isAllowedForProtocol = false;\n // Is system activated via track-call\n if (this.callData['properties'][system] && utils_1.util.isBoolean(this.callData['properties'][system]['active'])) {\n isActive = this.callData['properties'][system]['active'];\n }\n else {\n var properties = this.trackData.getProperties(system);\n if (this.trackData.getData().getValue(properties, ['lib', 'active']) === true) {\n isActive = true;\n }\n }\n if (this.callData['properties'][system] && utils_1.util.isArray(this.callData['properties'][system]['protocols'])) {\n isAllowedForProtocol = this.callData['properties'][system]['protocols']\n .indexOf(location.protocol) !== -1;\n }\n else {\n var properties = this.trackData.getProperties(system);\n var configuredProtocols = this.trackData.getData().getValue(properties, ['lib', 'protocols']);\n if (utils_1.util.isArray(configuredProtocols)) {\n isAllowedForProtocol = configuredProtocols.indexOf(location.protocol) !== -1;\n }\n }\n if (isActive && isAllowedForProtocol) {\n activeSystems[system] = allSystems[system];\n }\n }\n return activeSystems;\n };\n Tracker.prototype.runtimeHelper = function (key, callData) {\n if (callData === void 0) { callData = {}; }\n var result;\n switch (key) {\n case 'activeSystems':\n result = this.getActiveTrackingSystems();\n break;\n }\n return result;\n };\n return Tracker;\n}());\nexports.Tracker = Tracker;\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar utils_1 = __webpack_require__(1);\nvar tracklib_logger_1 = __webpack_require__(4);\n/**\n * @private\n */\nfunction storageAvailable(type) {\n try {\n var storage = window[type], x = '__storage_test__';\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n }\n catch (e) {\n return false;\n }\n}\nvar BufferEvents = {\n ready: 'ready'\n};\nexports.BufferEvents = BufferEvents;\n/**\n * @private\n */\nvar TrackBuffer = /** @class */ (function () {\n /**\n * Creates a new TrackBuffer\n * @param options\n */\n function TrackBuffer(options) {\n this.options = options;\n this.storage = null;\n this.buffer = null;\n this.listener = [];\n this.active = storageAvailable('localStorage');\n if (this.active) {\n this.storage = localStorage;\n }\n this.ensureBuffer();\n }\n TrackBuffer.prototype.addListener = function (listener) {\n this.listener.push(listener);\n this.checkReady();\n };\n /**\n * Add a new TrackValue to the buffer and saves it\n * @param value\n * @param generatorKey\n * @returns {boolean}\n */\n TrackBuffer.prototype.add = function (value, generatorKey) {\n var item;\n item = {\n created: new Date().getTime(),\n value: value,\n generator: generatorKey,\n meta: {\n tries: 1\n }\n };\n this.buffer.push(item);\n this.saveBuffer();\n };\n TrackBuffer.prototype.retry = function (item) {\n item.meta.tries++;\n this.buffer.push(item);\n };\n /**\n * Remove an item from the buffer\n * @param item\n * @returns {boolean}\n */\n TrackBuffer.prototype.remove = function (item) {\n var index = this.getIndex(item);\n if (utils_1.util.isNumber(index)) {\n this.buffer.splice(index, 1);\n }\n };\n /**\n * Is called when a item is obsolete\n * @param item\n */\n TrackBuffer.prototype.complete = function (item) {\n this.remove(item);\n this.saveBuffer();\n };\n /**\n * Is called when a item can be handled\n * @param item\n */\n TrackBuffer.prototype.error = function (item) {\n this.remove(item);\n if ((item.meta.tries) < this.options.retry) {\n this.retry(item);\n }\n this.saveBuffer();\n };\n TrackBuffer.prototype.get = function (index) {\n if (index === void 0) { index = 0; }\n this.ensureBuffer();\n if (index < this.buffer.length) {\n return this.buffer[index];\n }\n else {\n return null;\n }\n };\n TrackBuffer.prototype.isActive = function () {\n return this.active;\n };\n TrackBuffer.prototype.emit = function (evt, payload) {\n if (payload === void 0) { payload = {}; }\n var index;\n for (index = 0; index < this.listener.length; index++) {\n this.listener[index](evt, payload);\n }\n };\n TrackBuffer.prototype.checkReady = function () {\n if (this.buffer.length > 0) {\n this.emit(BufferEvents.ready);\n }\n };\n TrackBuffer.prototype.getIndex = function (item) {\n var foundIndex = null;\n var index;\n this.ensureBuffer();\n for (index = 0; index < this.buffer.length; index++) {\n if (this.buffer[index].value === item.value) {\n foundIndex = index;\n break;\n }\n }\n return foundIndex;\n };\n /**\n * Ensures an internal buffer available, try to load one from storage if active\n */\n TrackBuffer.prototype.ensureBuffer = function () {\n if (this.buffer === null) {\n this.buffer = this.loadBuffer();\n if (this.buffer === null) {\n this.buffer = [];\n }\n }\n };\n TrackBuffer.prototype.saveBuffer = function () {\n var tmp;\n if (this.active) {\n this.ensureBuffer();\n tmp = JSON.stringify(this.buffer);\n this.storage.setItem(this.options.key, tmp);\n this.checkReady();\n tracklib_logger_1.logger.log('storage', 'write', this.buffer);\n return true;\n }\n return false;\n };\n TrackBuffer.prototype.loadBuffer = function () {\n var buffer = null;\n var tmp;\n if (this.storage) {\n tmp = this.storage.getItem(this.options.key);\n if (tmp) {\n try {\n tmp = JSON.parse(tmp);\n }\n catch (e) {\n }\n }\n if (utils_1.util.isArray(tmp)) {\n buffer = tmp;\n }\n else {\n buffer = [];\n }\n }\n return buffer;\n };\n return TrackBuffer;\n}());\nexports.TrackBuffer = TrackBuffer;\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar lib_campaign_1 = __webpack_require__(56);\nvar utils_1 = __webpack_require__(1);\n/**\n * @private\n */\nvar urlWhitelist = {\n 'mc': true,\n 'ac': true,\n 'domainName': true,\n 'isCH': true,\n 'is1Reg': true,\n 'isInapp': true,\n 'q': true,\n 'cd': true,\n 'ved': true\n};\n/**\n * @private\n */\nvar sectionsWithHidWhitelist = ['browserswitch.decision.end', 'general.start'];\n/**\n * @private\n */\nvar libSystem = {\n key: 'lib',\n parameter: {\n timestamp: {\n calc: function () {\n return new Date().getTime();\n }\n },\n resolutionw: {\n cache: true,\n calc: function () {\n return window.screen.width;\n }\n },\n resolutionh: {\n cache: true,\n calc: function () {\n return window.screen.height;\n }\n },\n ppi: {\n cache: true,\n calc: function () {\n var detect = 0;\n if (window.matchMedia) {\n var match = function (ppi) { return matchMedia('(max-resolution: ' + ppi + 'dpi)').matches === true; };\n var low = 0, high = 96;\n var rLow = match(low), rHigh = match(high);\n var diff = high - low;\n var check = void 0;\n var steps = 0;\n if ((rLow !== rHigh)) {\n while (diff > 1) {\n check = low + Math.floor(diff / 2);\n if (rLow !== match(check)) {\n high = check;\n }\n else {\n low = check;\n }\n diff = high - low;\n steps++;\n if (steps > 12) {\n detect = -1;\n break;\n }\n detect = high;\n }\n }\n }\n return detect;\n }\n },\n software: {},\n softwareversion: {},\n softwarevariant: {},\n iid: {},\n brand: {\n defaultValue: 'unknown'\n },\n registrationcountry: {},\n /**\n * Hashed user account ID\n */\n hid: {},\n product: {},\n viewportw: {\n cache: false,\n calc: function () {\n return window.innerWidth;\n }\n },\n viewporth: {\n cache: false,\n calc: function () {\n return window.innerHeight;\n }\n },\n section: {},\n trackingtype: {},\n eventposition: {},\n contentposition: {},\n contentid: {},\n source: {},\n destination: {},\n /**\n * URL of the current page. Some variable parts are removed to avoid tracking the same resource with different\n * URLs:\n * - character sequences neginning with a semicolon, e.g. ';jsessionid=...'\n * - any search query parameters that aren't whitelisted (see urlWhitelist)\n * - any URL hash values that do not begin with a period character\n *\n * If a value is provided for the hid parameter, pageurl will only be added to the tracking data if the value\n * for section is whitelisted (see sectionsWithHidWhitelist)\n */\n pageurl: {\n // this value can't be cached since it depends on 'section' which changes with each tracking call\n cache: false,\n need: {\n parameter: ['hid', 'section']\n },\n calc: function (provided) {\n var hid = provided && provided['parameter'] && provided['parameter'].hid ?\n provided['parameter'].hid : null;\n var section = provided && provided['parameter'] && provided['parameter'].section ?\n provided['parameter'].section : null;\n if (hid && sectionsWithHidWhitelist.indexOf(section) === -1) {\n return null;\n }\n var url = utils_1.util.sanitizeUrl(document.location.href, urlWhitelist);\n url = url.length ? url : null;\n return url;\n }\n },\n referrer: {\n cache: true,\n calc: function () {\n var url = utils_1.util.sanitizeUrl(document.referrer, urlWhitelist);\n url = url.length ? url : null;\n return url;\n }\n },\n campaign: {\n calc: function () {\n return lib_campaign_1.getLibCampaign();\n }\n },\n result: {},\n count: {},\n size: {},\n time: {},\n data: {},\n profileblocked: {},\n environment: {},\n libname: {\n fixed: '@poseidon/tracklib' || 'unknown'\n },\n libversion: {\n fixed: '1.2.1' || 'unknown'\n }\n },\n properties: {\n lib: {\n // Default useparameter-function returns all keys\n useparameter: function (system, callData) {\n var keys = Object.keys(callData.systemParameter);\n if (callData.properties.lib.hasOwnProperty('addparameter')) {\n keys = keys.concat(callData.properties.lib.addparameter);\n }\n return keys;\n },\n addparameter: [],\n // Brain Default Adapter\n generatorAdapter: function (properties, trackParameter) {\n var track_url;\n var brand = trackParameter['brand'];\n var stage;\n stage = properties['lib'].hasOwnProperty('stage') ? properties['lib']['stage'] : 'live';\n if (properties.system.base_url) {\n track_url = properties.system.base_url;\n }\n else {\n track_url = properties['lib']['getBrainUrl'](brand, stage);\n }\n return {\n baseUrl: track_url,\n query: trackParameter\n };\n },\n getBrainUrl: function (brand, stage) {\n var url;\n switch (stage) {\n case 'qa':\n url = 'https://wa-qa.ui-portal.de/t.gif';\n break;\n case 'prelive':\n url = 'https://wa-pre.ui-portal.de/t.gif';\n break;\n default:\n switch (brand) {\n case 'mailcom':\n case 'gmxcom':\n url = 'https://us.wa.ui-portal.com/t.gif';\n break;\n default:\n url = 'https://wa.ui-portal.de/t.gif';\n }\n }\n // preprocess brand if needed\n return url;\n },\n // tracking calls will only be made if the document is loaded using one of these protocols\n protocols: ['http:', 'https:']\n }\n }\n};\nexports.libSystem = libSystem;\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\n/**\n * @private\n */\nvar params = null;\n/**\n * @private\n */\nvar docCookies = {\n getItem: function (sKey) {\n if (!sKey) {\n return null;\n }\n return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\\\s*' + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'), '$1')) || null;\n }\n};\n/**\n * @private\n */\nvar extract = {\n 'hash': function () {\n if (document.location.hash) {\n var hash = document.location.hash.slice(1);\n if (hash[0] === '.') {\n return hash;\n }\n }\n return null;\n },\n 'mc': function () {\n return getQueryParameter('mc');\n },\n 'kid': function () {\n var result = getQueryParameter('kid');\n if (!result) {\n result = docCookies.getItem('cookieKID');\n }\n result = result ? result.replace(/@/g, '_') : null;\n return result;\n }\n};\n/**\n * @private\n */\nfunction getQueryParameter(paramKey) {\n var query = document.location.search.slice(1);\n var parts, tmp;\n var key, value;\n if (params === null) {\n params = {};\n if (query) {\n query = query.split('#')[0];\n parts = query.split('&');\n for (var i = 0; i < parts.length; i++) {\n tmp = parts[i].split('=');\n key = tmp[0].toLowerCase();\n value = tmp[1] ? tmp[1] : null;\n if (key && value) {\n params[key] = value;\n }\n }\n }\n }\n return params[paramKey] ? params[paramKey] : null;\n}\n/**\n * @private\n */\nfunction getLibCampaign() {\n var fields = ['hash', 'mc', 'kid'];\n var values = [];\n var key, value;\n for (var _i = 0, fields_1 = fields; _i < fields_1.length; _i++) {\n key = fields_1[_i];\n value = extract[key] ? extract[key]() : null;\n if (value) {\n values.push(value);\n }\n }\n switch (values.length) {\n case 0:\n value = null;\n break;\n case 1:\n value = '#' + values[0];\n break;\n default:\n value = '#' + values.join('#');\n }\n return value;\n}\nexports.getLibCampaign = getLibCampaign;\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar utils_1 = __webpack_require__(1);\nvar features_1 = __webpack_require__(58);\n/**\n * @private\n */\nvar brainTrackingSystem = {\n key: 'brain',\n mapping: {\n trackingtype: {\n 'cl': 'click',\n 'ev': 'event'\n }\n },\n parameter: {\n name: {\n need: {\n properties: ['system.section_prefix'],\n parameter: ['trackingtype', 'section']\n },\n calc: function (provided) {\n return [\n provided['properties']['system']['section_prefix'],\n provided['parameter']['trackingtype'],\n provided['parameter']['section']\n ].join('.');\n }\n },\n brand: {},\n timestamp: {\n alias: 'mts'\n },\n registrationcountry: {\n alias: 'country'\n },\n trackingtype: {\n alias: 'type',\n calc: function (provided, param, system) {\n var value;\n if (param['set']) {\n value = system['mapping']['trackingtype'].hasOwnProperty(param['set']) ? system['mapping']['trackingtype'][param['set']] : param['set'];\n }\n return value;\n }\n },\n tif: {\n need: {\n runtime: ['activeSystems']\n },\n calc: function (provided) {\n return provided['runtime']['activeSystems'].hasOwnProperty('tif') ? 1 : 0;\n }\n },\n resolutionw: {\n alias: 'rsw'\n },\n resolutionh: {\n alias: 'rsh'\n },\n viewportw: {\n alias: 'vpw'\n },\n viewporth: {\n alias: 'vph'\n },\n ppi: {},\n touch: {\n cache: true,\n calc: function () {\n return features_1.features.touchevents();\n }\n },\n label: {\n need: {\n properties: ['system.label_prefix']\n },\n calc: function (provided, param) {\n var label = {};\n if (param['set'] && utils_1.util.isObject(param['set'])) {\n label = utils_1.util.prefixObject(param['set'], provided['properties']['system']['label_prefix']);\n }\n return label;\n }\n }\n },\n properties: {\n lib: {\n active: false,\n generator: 'img',\n useparameter: function (system) {\n return Object.keys(system.parameter);\n }\n },\n system: {\n label_prefix: 'n_',\n section_prefix: 'brain'\n }\n }\n};\nexports.brainTrackingSystem = brainTrackingSystem;\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\n/**\n * @private\n */\nvar features = {\n // from modernizr\n touchevents: function () {\n var bool = false;\n if (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\n bool = true;\n }\n return bool;\n }\n};\nexports.features = features;\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\n/**\n * @private\n */\nvar pakpieTrackingSystem = {\n key: 'pakpie',\n parameter: {\n attributeset: {\n fixed: 1\n }\n },\n properties: {\n lib: {\n active: true,\n generator: 'img_pakpie'\n },\n system: {}\n }\n};\nexports.pakpieTrackingSystem = pakpieTrackingSystem;\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\n/**\n * @private\n */\nvar tifTrackingSystem = {\n key: 'tif',\n parameter: {\n // TIF page identifiers are mapped from BRAIN tracking sections by default.\n // See the TIF tracking sample page for an example.\n pageidentifier: {\n need: {\n parameter: ['section', 'ul', 'pageurl'],\n properties: [\n 'system.brain_tif_mapping',\n 'system.prefix',\n 'system.mobile_os',\n 'system.product_for_userlevel'\n ]\n },\n calc: function (provided) {\n var section = provided['parameter'].section;\n var mappingType = provided['properties'].system.brain_tif_mapping;\n if (mappingType === 'section') {\n var userLevel = provided['parameter'].ul;\n var mobileOs = provided['properties'].system.mobile_os;\n var prefix = provided['properties'].system.prefix;\n var userLevelMapping = provided['properties'].system.product_for_userlevel;\n return convertSectionToPageIdentifier(section, mobileOs, prefix, userLevel, userLevelMapping);\n }\n if (mappingType === 'url') {\n var mobileOs = provided['properties'].system.mobile_os;\n var prefix = provided['properties'].system.prefix;\n return getPageIdentifierFromUrl(window.location.pathname, mobileOs, prefix);\n }\n return section.split('.').join('/');\n }\n },\n brand: {},\n region: {\n need: {\n parameter: ['brand']\n },\n calc: function (provided) {\n var value;\n switch (provided['parameter']['brand']) {\n case 'gmxch':\n value = 'ch';\n break;\n case 'gmxat':\n value = 'at';\n break;\n default:\n value = 'de';\n }\n return value;\n }\n },\n // hashed UAS account ID\n hid: {},\n // user level, e.g. 0 for freemail, 2 for promail\n ul: {},\n // sociodemographic data\n crx: {}\n },\n properties: {\n lib: {\n active: false,\n generator: 'obj',\n generatorAdapter: function (properties, trackParameter) {\n var callObj;\n callObj = {\n obj: properties['system']['tif_container'],\n methodName: 'track',\n data: trackParameter\n };\n return callObj;\n },\n useparameter: function (system) {\n return Object.keys(system.parameter);\n }\n },\n system: {\n tif_container: {},\n // how to determine TIF page identifiers:\n // 'section': use the BRAIN sections with added optional mobile_os, prefix and product name\n // 'url: URL path with added optional mobile_os and prefix (for e.g. product or help pages)\n // any other value: BRAIN section with dots replaced by slashes\n brain_tif_mapping: 'section',\n // prefix for TIF page identifiers, e.g. 'mail', 'hilfe', 'mail_application.3cclient', ...\n // not used if brain_tif_mapping is set to false\n prefix: null,\n // OS name for in-app use: 'android', 'ios' or 'winphone'\n // not used if brain_tif_mapping is set to false\n mobile_os: null,\n // function that is called with the user level and should return the product name\n // not used if brain_tif_mapping is set to false\n product_for_userlevel: null\n }\n }\n};\nexports.tifTrackingSystem = tifTrackingSystem;\n/**\n *\n * @private\n */\nfunction convertSectionToPageIdentifier(section, mobileOs, prefix, userLevel, userLevelMapping) {\n var sections = section.split('.');\n var pageIdentifier = [];\n var hasViewSection = false;\n if (mobileOs) {\n pageIdentifier.push(mobileOs);\n }\n if (prefix) {\n pageIdentifier.push(prefix);\n }\n // discard first section part\n sections.shift();\n // add selected product\n if (userLevel && userLevelMapping) {\n pageIdentifier.push(userLevelMapping(userLevel));\n }\n // remove 'view' section\n if (sections[sections.length - 1] === 'view') {\n sections.pop();\n hasViewSection = true;\n }\n // add remaining sections\n pageIdentifier = pageIdentifier.concat(sections);\n // append 'index' if there are no additional section parts (initial page view)\n if (sections.length === 0 && hasViewSection) {\n pageIdentifier.push('index');\n }\n return pageIdentifier.join('/');\n}\n/**\n * @private\n */\nvar leadingSlashExp = /^\\//;\n/**\n * @private\n */\nvar trailingSlashExp = /\\/$/;\n/**\n * @private\n */\nvar htmlExtensionExp = /\\.htm(l)?$/;\n/**\n * @private\n */\nfunction getPageIdentifierFromUrl(pathname, mobile_os, prefix) {\n var sections = [];\n if (mobile_os) {\n sections.push(mobile_os);\n }\n if (prefix) {\n sections.push(prefix);\n }\n sections.push(pathname.replace(leadingSlashExp, '')\n .replace(htmlExtensionExp, '')\n .replace(trailingSlashExp, ''));\n return sections.join('/');\n}\nexports.getPageIdentifierFromUrl = getPageIdentifierFromUrl;\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar utils_1 = __webpack_require__(1);\nvar tracklib_logger_1 = __webpack_require__(4);\n/**\n * @private\n */\nvar createValue = function (urlParts) {\n return utils_1.util.createUrl(urlParts);\n};\n/**\n * @private\n */\nvar doTracking = function (myUrl) {\n var response;\n var img = new Image(1, 1);\n response = new Promise(function (resolve, reject) {\n img.addEventListener('load', function () {\n resolve('load');\n });\n img.addEventListener('error', function () {\n reject('error');\n });\n img.addEventListener('abort', function () {\n reject('abort');\n });\n img.src = myUrl;\n tracklib_logger_1.logger.log('img', 'request', myUrl);\n });\n return response;\n};\n/**\n * @private\n */\nvar imageGenerator = {\n key: 'img',\n run: function (urlParts) {\n var url = createValue(urlParts);\n return doTracking(url);\n },\n getValue: function (urlParts) {\n return createValue(urlParts);\n },\n track: function (value) {\n return doTracking(value);\n }\n};\nexports.imageGenerator = imageGenerator;\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar utils_1 = __webpack_require__(1);\nvar tracklib_logger_1 = __webpack_require__(4);\n/**\n * @private\n */\nvar createValue = function (urlParts) {\n var myUrl;\n var index, parts;\n var sum = 0;\n myUrl = utils_1.util.createUrl(urlParts);\n parts = myUrl.split('?');\n parts[1] += '&signature=';\n for (index = 0; index < parts[1].length; index++) {\n sum += parts[1].charCodeAt(index);\n }\n sum = (sum % 5843) + 9127;\n parts[1] += sum;\n myUrl = parts.join('?');\n return myUrl;\n};\n/**\n * @private\n */\nvar doTracking = function (myUrl) {\n var response;\n var img = new Image(1, 1);\n response = new Promise(function (resolve, reject) {\n if (img.addEventListener) {\n img.addEventListener('load', function () {\n tracklib_logger_1.logger.log('img_pakpie', 'loaded', myUrl);\n resolve('load');\n });\n img.addEventListener('error', function () {\n tracklib_logger_1.logger.log('img_pakpie', 'error', myUrl);\n reject('error');\n });\n img.addEventListener('abort', function () {\n tracklib_logger_1.logger.log('img_pakpie', 'abort', myUrl);\n reject('abort');\n });\n img.src = myUrl;\n tracklib_logger_1.logger.log('img_pakpie', 'request', myUrl);\n }\n else {\n img.src = myUrl;\n tracklib_logger_1.logger.log('img_pakpie', 'request', myUrl);\n resolve('unknown');\n }\n });\n response[\"catch\"](function () {\n });\n return response;\n};\n/**\n * @private\n */\nvar imagePakpieGenerator = {\n key: 'img_pakpie',\n getValue: function (urlParts) {\n return createValue(urlParts);\n },\n track: function (value) {\n return doTracking(value);\n },\n run: function (urlParts) {\n var url = createValue(urlParts);\n return doTracking(url);\n }\n};\nexports.imagePakpieGenerator = imagePakpieGenerator;\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar utils_1 = __webpack_require__(1);\nvar tracklib_logger_1 = __webpack_require__(4);\n/**\n * @private\n */\nvar objectGenerator = {\n key: 'obj',\n run: function (callObj) {\n var response;\n response = new Promise(function (resolve) {\n if (utils_1.util.isObject(callObj) && utils_1.util.isObject(callObj.obj) && callObj.methodName &&\n callObj.obj.hasOwnProperty(callObj.methodName) && utils_1.util.isFunction(callObj.obj[callObj.methodName])) {\n callObj.obj[callObj.methodName](callObj.data);\n tracklib_logger_1.logger.log('obj', 'request', callObj);\n }\n resolve(true);\n });\n return response;\n }\n};\nexports.objectGenerator = objectGenerator;\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\n__webpack_require__(65);\n__webpack_require__(75);\n__webpack_require__(78);\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(66);\nmodule.exports = __webpack_require__(3).Object.assign;\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(12);\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(69) });\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(8) && !__webpack_require__(14)(function () {\n return Object.defineProperty(__webpack_require__(19)('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(7);\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(17);\nvar gOPS = __webpack_require__(73);\nvar pIE = __webpack_require__(74);\nvar toObject = __webpack_require__(25);\nvar IObject = __webpack_require__(34);\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(14)(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(10);\nvar toIObject = __webpack_require__(21);\nvar arrayIndexOf = __webpack_require__(71)(false);\nvar IE_PROTO = __webpack_require__(24)('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(21);\nvar toLength = __webpack_require__(35);\nvar toAbsoluteIndex = __webpack_require__(72);\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(23);\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(76);\nmodule.exports = __webpack_require__(3).Object.keys;\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(25);\nvar $keys = __webpack_require__(17);\n\n__webpack_require__(77)('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(12);\nvar core = __webpack_require__(3);\nvar fails = __webpack_require__(14);\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(79);\n__webpack_require__(80);\n__webpack_require__(86);\n__webpack_require__(90);\nmodule.exports = __webpack_require__(3).Promise;\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.3.6 Object.prototype.toString()\nvar classof = __webpack_require__(26);\nvar test = {};\ntest[__webpack_require__(0)('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n __webpack_require__(9)(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $at = __webpack_require__(81)(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\n__webpack_require__(38)(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(23);\nvar defined = __webpack_require__(22);\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(83);\nvar descriptor = __webpack_require__(33);\nvar setToStringTag = __webpack_require__(27);\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(6)(IteratorPrototype, __webpack_require__(0)('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(5);\nvar dPs = __webpack_require__(84);\nvar enumBugKeys = __webpack_require__(37);\nvar IE_PROTO = __webpack_require__(24)('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(19)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(40).appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(13);\nvar anObject = __webpack_require__(5);\nvar getKeys = __webpack_require__(17);\n\nmodule.exports = __webpack_require__(8) ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(10);\nvar toObject = __webpack_require__(25);\nvar IE_PROTO = __webpack_require__(24)('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(87);\nvar getKeys = __webpack_require__(17);\nvar redefine = __webpack_require__(9);\nvar global = __webpack_require__(2);\nvar hide = __webpack_require__(6);\nvar Iterators = __webpack_require__(11);\nvar wks = __webpack_require__(0);\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(88);\nvar step = __webpack_require__(89);\nvar Iterators = __webpack_require__(11);\nvar toIObject = __webpack_require__(21);\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(38)(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(0)('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(6)(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(39);\nvar global = __webpack_require__(2);\nvar ctx = __webpack_require__(15);\nvar classof = __webpack_require__(26);\nvar $export = __webpack_require__(12);\nvar isObject = __webpack_require__(7);\nvar aFunction = __webpack_require__(16);\nvar anInstance = __webpack_require__(91);\nvar forOf = __webpack_require__(92);\nvar speciesConstructor = __webpack_require__(96);\nvar task = __webpack_require__(41).set;\nvar microtask = __webpack_require__(98)();\nvar newPromiseCapabilityModule = __webpack_require__(42);\nvar perform = __webpack_require__(99);\nvar promiseResolve = __webpack_require__(100);\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[__webpack_require__(0)('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value);\n if (domain) domain.exit();\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = __webpack_require__(101)($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\n__webpack_require__(27)($Promise, PROMISE);\n__webpack_require__(102)(PROMISE);\nWrapper = __webpack_require__(3)[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(103)(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ctx = __webpack_require__(15);\nvar call = __webpack_require__(93);\nvar isArrayIter = __webpack_require__(94);\nvar anObject = __webpack_require__(5);\nvar toLength = __webpack_require__(35);\nvar getIterFn = __webpack_require__(95);\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// call something on iterator step with safe closing on error\nvar anObject = __webpack_require__(5);\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// check on default Array iterator\nvar Iterators = __webpack_require__(11);\nvar ITERATOR = __webpack_require__(0)('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(26);\nvar ITERATOR = __webpack_require__(0)('iterator');\nvar Iterators = __webpack_require__(11);\nmodule.exports = __webpack_require__(3).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = __webpack_require__(5);\nvar aFunction = __webpack_require__(16);\nvar SPECIES = __webpack_require__(0)('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports) {\n\n// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(2);\nvar macrotask = __webpack_require__(41).set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = __webpack_require__(18)(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n var promise = Promise.resolve();\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(5);\nvar isObject = __webpack_require__(7);\nvar newPromiseCapability = __webpack_require__(42);\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(9);\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar global = __webpack_require__(2);\nvar dP = __webpack_require__(13);\nvar DESCRIPTORS = __webpack_require__(8);\nvar SPECIES = __webpack_require__(0)('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar ITERATOR = __webpack_require__(0)('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nexports.__esModule = true;\nvar tracklib_1 = __webpack_require__(43);\n// Webpack doesn't export es6 default modules as UMD module.\n// Thats why the TrackLib is exported as commonjs module\nmodule.exports = tracklib_1.TrackLib;\n\n\n/***/ }),\n/* 105 */,\n/* 106 */,\n/* 107 */,\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(64);\nmodule.exports = __webpack_require__(104);\n\n\n/***/ })\n/******/ ]);\n});\n\n\n// WEBPACK FOOTER //\n// tracklib.poly.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 108);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 0c278c39dc849d7f5783","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_wks.js\n// module id = 0\n// module chunks = 0 1 2 3","/**\n * @private\n */\nlet mergeDeep = (target: {}, source: {}): {} => {\n let key: string;\n\n if (util.isObject(target) && util.isObject(source)) {\n for (key in source) {\n if (util.isObject(source[key]) && !util.isFunction(source[key]) && !util.isArray(source[key]) ) {\n if (!target.hasOwnProperty(key)) {\n target[key] = {};\n }\n mergeDeep(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\n\n/**\n * @private\n */\nexport interface ParsedUrl {\n protocol: string;\n host: string;\n pathname: string;\n hash: string;\n search: string;\n parameters: {\n [key: string]: string;\n };\n}\n\n/**\n * matches any sequence starting with ';' and ending before '?', '#' or end of line\n * @private\n */\nconst semicolonRegExp = /(;.*?)(?=#|\\?|$)/gm;\n\n/**\n * Parse a URL, stripping any search parameters that aren't whitelisted\n * @private\n */\nlet urlParser = function(url: string, whitelist: {}): ParsedUrl {\n const href = url.replace(semicolonRegExp, '');\n const a = document.createElement('a');\n a.href = href;\n\n const result: ParsedUrl = {\n protocol: a.protocol,\n host: a.host,\n pathname: a.pathname === '/' ? '' : a.pathname,\n hash: a.hash ? a.hash.substr(1) : '',\n search: '',\n parameters: {}\n };\n\n if (a.search.length) {\n const params = [];\n\n a.search.substr(1).split('&').forEach((keyVal) => {\n const [key, value] = keyVal.split('=');\n if (whitelist[key] && value !== 'undefined') {\n result.parameters[key] = value;\n params.push(keyVal);\n }\n });\n\n result.search = params.join('&');\n }\n\n return result;\n};\n\n/**\n * @private\n */\nlet util = {\n isString : function(value) { return typeof(value) === 'string'; },\n isNumber : function(value) { return typeof(value) === 'number'; },\n isBoolean : function(value) { return typeof(value) === 'boolean'; },\n isScalar : function(value) { return util.isString(value) || util.isNumber(value) || util.isBoolean(value); },\n isObject : function(value) { return Object(value) === value; },\n isFunction : function(value) { return typeof(value) === 'function'; },\n isArray : Array.isArray || function(a) { return Object.prototype.toString.call(a) === '[object Array]'; },\n isUndefined : function (value ) { return value === void 0; },\n\n\n ensureArray : function(subject: string | string[], delimiter = ','): string[] {\n\n if (typeof subject === 'string') {\n subject = subject.split(delimiter);\n }\n\n return subject;\n // return this.isString(subject) ? : subject;\n },\n\n prefixObject : (baseObject: {}, prefix: string ): {} => {\n let prefixed = {};\n let key;\n for (key in baseObject) {\n prefixed[prefix + key] = baseObject[key];\n }\n return prefixed;\n },\n\n\n createUrl : function(parts: any) {\n let url, temp = [];\n\n url = parts.baseUrl;\n\n if (parts.query) {\n for (let key in parts.query) {\n temp.push(key + '=' + encodeURIComponent(parts.query[key]));\n }\n url += '?' + temp.join('&');\n }\n\n return url;\n },\n\n sanitizeUrl : function(url: string, whitelist: {}): string {\n\n let result: string;\n let parts: ParsedUrl = urlParser(url, whitelist);\n result = `${parts.protocol}//${parts.host}${parts.pathname}`;\n\n if (parts.search) {\n result += '?' + parts.search;\n }\n\n if (parts.hash && parts.hash[0] === '.') {\n result += '#' + parts.hash;\n }\n\n return result;\n },\n\n\n\n /**\n * Deep merging of two objects\n */\n mergeDeep,\n\n urlParser,\n};\n\nexport { util };\n\n\n\n// WEBPACK FOOTER //\n// ./src/utils.ts","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_global.js\n// module id = 2\n// module chunks = 0 1 2 3","var core = module.exports = { version: '2.5.3' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_core.js\n// module id = 3\n// module chunks = 0 1 2 3","interface LogItem {\n component: string;\n action: string;\n data: any;\n}\n\ninterface Observer {\n update(arg: LogItem );\n}\n\n// TODO: interface declaration\nclass TrackingLogger {\n private observers: Observer [];\n\n constructor() {\n this.observers = [];\n }\n\n registerObserver(observer: Observer): void {\n this.observers.push(observer);\n }\n\n removeObserver(observer: Observer): void {\n this.observers.splice(this.observers.indexOf(observer), 1);\n }\n\n notifyObservers(arg: LogItem): void {\n let index;\n\n for (index = 0; index < this.observers.length; index++) {\n this.observers[index].update(arg);\n }\n }\n\n log(component, action, data): void {\n this.notifyObservers({\n component: component,\n action: action,\n data : data\n });\n }\n}\n\n\nlet logger = new TrackingLogger();\n\n\nlogger.registerObserver({\n update: (arg: LogItem) => {\n }\n});\n\n\nexport { LogItem, Observer, TrackingLogger, logger };\n\n\n\n// WEBPACK FOOTER //\n// ./src/tracklib.logger.ts","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_an-object.js\n// module id = 5\n// module chunks = 0 1 2 3","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_hide.js\n// module id = 6\n// module chunks = 0 1 2 3","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_is-object.js\n// module id = 7\n// module chunks = 0 1 2 3","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_descriptors.js\n// module id = 8\n// module chunks = 0 1 2 3","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_redefine.js\n// module id = 9\n// module chunks = 0 1 2 3","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_has.js\n// module id = 10\n// module chunks = 0 1 2 3","module.exports = {};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iterators.js\n// module id = 11\n// module chunks = 0 1 2 3","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_export.js\n// module id = 12\n// module chunks = 0 1 2 3","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-dp.js\n// module id = 13\n// module chunks = 0 1 2 3","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_fails.js\n// module id = 14\n// module chunks = 0 1 2 3","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_ctx.js\n// module id = 15\n// module chunks = 0 1 2 3","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_a-function.js\n// module id = 16\n// module chunks = 0 1 2 3","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-keys.js\n// module id = 17\n// module chunks = 0 1 2 3","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_cof.js\n// module id = 18\n// module chunks = 0 1 2 3","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_dom-create.js\n// module id = 19\n// module chunks = 0 1 2 3","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_uid.js\n// module id = 20\n// module chunks = 0 1 2 3","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-iobject.js\n// module id = 21\n// module chunks = 0 1 2 3","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_defined.js\n// module id = 22\n// module chunks = 0 1 2 3","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-integer.js\n// module id = 23\n// module chunks = 0 1 2 3","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_shared-key.js\n// module id = 24\n// module chunks = 0 1 2 3","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-object.js\n// module id = 25\n// module chunks = 0 1 2 3","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_classof.js\n// module id = 26\n// module chunks = 0 1 2 3","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_set-to-string-tag.js\n// module id = 27\n// module chunks = 0 1 2 3","import { MultiLayer } from './multilayer';\nimport { TrackingSystemInterface } from './tracklib.systems';\nimport { util } from './utils';\n\ninterface SystemPresetInterface {\n parameter: {};\n properties: {};\n}\n\ninterface PresetGroupInterface {\n [key: string]: SystemPresetInterface;\n}\n\ninterface FilterFunction {\n (\n system: TrackingSystemInterface,\n trackParameter: {},\n callData: {}\n ): {};\n}\n\n/**\n * Provides access to the tracking system/generator configurations stored in MultiLayer, adding a property value cache.\n *\n * @private\n */\nclass TrackingData {\n\n private static PRESET_AFFIX = '_preset';\n\n private trackData: MultiLayer = new MultiLayer();\n\n private proptertiesCache = {};\n\n private filter: { [key: string]: FilterFunction} = {};\n\n public getData(): MultiLayer {\n return this.trackData;\n }\n\n /**\n * Add a filter for tracking parameters. The filter function is applied to the parameters map calculated for each\n * tracking call. Filters can modify this object.\n * TODO: Filters should return a new parameters map to prevent unwanted side effects\n *\n * @param {string} key\n * @param {FilterFunction} filterFunction\n */\n public addFilter(key: string, filterFunction: FilterFunction ) {\n this.filter[key] = filterFunction;\n }\n\n public runFilter(system, trackParameter, callData) {\n let key: string;\n for (key in this.filter) {\n this.filter[key](system, trackParameter, callData);\n }\n }\n\n public preset(options: PresetGroupInterface): void {\n let key;\n for (key in options) {\n if (this.trackData.hasLayer(key)) {\n TrackingData.unifyParameter(options[key]);\n this.trackData.setLayer(TrackingData.getPresetKey(key), options[key]);\n }\n }\n }\n\n\n /**\n * Calculate and cache the properties for a given system. callData values override system preset values which\n * override the common 'lib' values.\n * @param systemKey\n * @returns {{}}\n */\n\n public getProperties(systemKey: string): {} {\n\n if (!this.proptertiesCache[systemKey]) {\n\n this.proptertiesCache[systemKey] = {\n system: this.trackData.merge(\n [systemKey, TrackingData.getPresetKey(systemKey)],\n ['properties', 'system']\n ),\n lib: this.trackData.merge(\n ['lib', systemKey, TrackingData.getPresetKey('lib'), TrackingData.getPresetKey(systemKey)],\n ['properties', 'lib']\n )\n };\n }\n return this.proptertiesCache[systemKey];\n }\n\n public setCache(systemKey: string, parameterKey: string, value: any) {\n\n let layer;\n let search = ['lib', systemKey, TrackingData.getPresetKey('lib'), TrackingData.getPresetKey(systemKey)];\n\n layer = this.trackData.findLayer(search, ['parameter', parameterKey, 'cache'], true);\n\n if (layer) {\n this.trackData.setValue(layer, ['parameter', parameterKey] , 'cache_value', value);\n }\n }\n\n\n /**\n * Calculate the tracking parameters for the given system. callData values override system preset values which\n * override the common 'lib' values.\n *\n * @param {TrackingSystemInterface} system\n * @param {{}} callData\n * @returns {{}}\n */\n public getAllParameter(system: TrackingSystemInterface, callData: {} = {}) {\n\n let merge: (string | {})[];\n\n merge = [\n 'lib',\n system.key,\n TrackingData.getPresetKey('lib'),\n TrackingData.getPresetKey(system.key),\n callData\n ];\n\n return this.trackData.merge(merge, 'parameter');\n }\n\n\n public static unifyParameter(data: {}): void {\n let key: string;\n let parameter: {};\n\n parameter = data.hasOwnProperty('parameter') ? data['parameter'] : data;\n\n for (key in parameter) {\n if (!util.isObject(parameter[key])) {\n parameter[key] = {set: parameter[key]};\n }\n }\n }\n\n\n public static getPresetKey(key: string): string {\n return key + TrackingData.PRESET_AFFIX;\n }\n\n}\n\nexport { FilterFunction, SystemPresetInterface, PresetGroupInterface, TrackingData };\n\n\n\n// WEBPACK FOOTER //\n// ./src/tracklib.data.ts","/*!\n * is-plain-object \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('isobject');\n\nfunction isObjectObject(o) {\n return isObject(o) === true\n && Object.prototype.toString.call(o) === '[object Object]';\n}\n\nmodule.exports = function isPlainObject(o) {\n var ctor,prot;\n\n if (isObjectObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (typeof ctor !== 'function') return false;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObjectObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/is-plain-object/index.js\n// module id = 29\n// module chunks = 0 1 2 4 5","/*!\n * is-extendable \n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isPlainObject = require('is-plain-object');\n\nmodule.exports = function isExtendable(val) {\n return isPlainObject(val) || typeof val === 'function' || Array.isArray(val);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/is-extendable/index.js\n// module id = 30\n// module chunks = 0 1 2 4 5","/*!\n * for-in \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function forIn(obj, fn, thisArg) {\n for (var key in obj) {\n if (fn.call(thisArg, obj[key], key, obj) === false) {\n break;\n }\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/for-in/index.js\n// module id = 31\n// module chunks = 0 1 2 4 5","var toString = Object.prototype.toString;\n\nmodule.exports = function kindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n\n var type = typeof val;\n if (type === 'boolean') return 'boolean';\n if (type === 'string') return 'string';\n if (type === 'number') return 'number';\n if (type === 'symbol') return 'symbol';\n if (type === 'function') {\n return isGeneratorFn(val) ? 'generatorfunction' : 'function';\n }\n\n if (isArray(val)) return 'array';\n if (isBuffer(val)) return 'buffer';\n if (isArguments(val)) return 'arguments';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n if (isRegexp(val)) return 'regexp';\n\n switch (ctorName(val)) {\n case 'Symbol': return 'symbol';\n case 'Promise': return 'promise';\n\n // Set, Map, WeakSet, WeakMap\n case 'WeakMap': return 'weakmap';\n case 'WeakSet': return 'weakset';\n case 'Map': return 'map';\n case 'Set': return 'set';\n\n // 8-bit typed arrays\n case 'Int8Array': return 'int8array';\n case 'Uint8Array': return 'uint8array';\n case 'Uint8ClampedArray': return 'uint8clampedarray';\n\n // 16-bit typed arrays\n case 'Int16Array': return 'int16array';\n case 'Uint16Array': return 'uint16array';\n\n // 32-bit typed arrays\n case 'Int32Array': return 'int32array';\n case 'Uint32Array': return 'uint32array';\n case 'Float32Array': return 'float32array';\n case 'Float64Array': return 'float64array';\n }\n\n if (isGeneratorObj(val)) {\n return 'generator';\n }\n\n // Non-plain objects\n type = toString.call(val);\n switch (type) {\n case '[object Object]': return 'object';\n // iterators\n case '[object Map Iterator]': return 'mapiterator';\n case '[object Set Iterator]': return 'setiterator';\n case '[object String Iterator]': return 'stringiterator';\n case '[object Array Iterator]': return 'arrayiterator';\n }\n\n // other\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n};\n\nfunction ctorName(val) {\n return val.constructor ? val.constructor.name : null;\n}\n\nfunction isArray(val) {\n if (Array.isArray) return Array.isArray(val);\n return val instanceof Array;\n}\n\nfunction isError(val) {\n return val instanceof Error || (typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number');\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function'\n && typeof val.getDate === 'function'\n && typeof val.setDate === 'function';\n}\n\nfunction isRegexp(val) {\n if (val instanceof RegExp) return true;\n return typeof val.flags === 'string'\n && typeof val.ignoreCase === 'boolean'\n && typeof val.multiline === 'boolean'\n && typeof val.global === 'boolean';\n}\n\nfunction isGeneratorFn(name, val) {\n return ctorName(name) === 'GeneratorFunction';\n}\n\nfunction isGeneratorObj(val) {\n return typeof val.throw === 'function'\n && typeof val.return === 'function'\n && typeof val.next === 'function';\n}\n\nfunction isArguments(val) {\n try {\n if (typeof val.length === 'number' && typeof val.callee === 'function') {\n return true;\n }\n } catch (err) {\n if (err.message.indexOf('callee') !== -1) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n if (val.constructor && typeof val.constructor.isBuffer === 'function') {\n return val.constructor.isBuffer(val);\n }\n return false;\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/kind-of/index.js\n// module id = 32\n// module chunks = 0 1 2 4 5","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_property-desc.js\n// module id = 33\n// module chunks = 0 1 2 3","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iobject.js\n// module id = 34\n// module chunks = 0 1 2 3","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-length.js\n// module id = 35\n// module chunks = 0 1 2 3","var global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function (key) {\n return store[key] || (store[key] = {});\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_shared.js\n// module id = 36\n// module chunks = 0 1 2 3","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_enum-bug-keys.js\n// module id = 37\n// module chunks = 0 1 2 3","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = (!BUGGY && $native) || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-define.js\n// module id = 38\n// module chunks = 0 1 2 3","module.exports = false;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_library.js\n// module id = 39\n// module chunks = 0 1 2 3","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_html.js\n// module id = 40\n// module chunks = 0 1 2 3","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_task.js\n// module id = 41\n// module chunks = 0 1 2 3","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_new-promise-capability.js\n// module id = 42\n// module chunks = 0 1 2 3","import { TrackOptions, TrackOptionsInterface} from './tracklib.options';\nimport { FilterFunction, TrackingData, PresetGroupInterface } from './tracklib.data';\nimport { TrackingSystemInterface, TrackingSystems } from './tracklib.systems';\nimport { TrackingGeneratorInterface, TrackingGenerator } from './tracklib.generator';\nimport { Tracker } from './tracklib.tracker';\nimport {logger, TrackingLogger} from './tracklib.logger';\n\n\n// default tracking systems\nimport { libSystem } from './systems/lib';\nimport { brainTrackingSystem } from './systems/brain';\nimport { pakpieTrackingSystem } from './systems/pakpie';\nimport { tifTrackingSystem } from './systems/tif';\n\n// default tracking generator\nimport { imageGenerator } from './generator/img';\nimport { imagePakpieGenerator } from './generator/img_pakpie';\nimport { objectGenerator } from './generator/obj';\n\n/**\n * This class exposes the Tracklib's public API.\n */\nclass TrackLib {\n\n private trackOptions: TrackOptions;\n private trackData: TrackingData;\n private trackSystems: TrackingSystems;\n private trackGenerator: TrackingGenerator;\n private tracker: Tracker;\n\n /**\n * Creates a new TrackLib instance. Adds the BRAIN, TIF and PAKPIE tracking systems.\n *\n * @param {PresetGroupInterface} preset Tracking data preset(s) for one or more tracking system(s). Overrides the\n * default values.\n * @param {TrackOptionsInterface} options General tracking options\n */\n constructor(preset: PresetGroupInterface, options: TrackOptionsInterface = {}) {\n this.trackOptions = new TrackOptions(options);\n this.trackData = new TrackingData();\n this.trackSystems = new TrackingSystems(this.trackData);\n this.trackGenerator = new TrackingGenerator(this.trackData);\n\n this.addTrackingSystem(libSystem);\n\n this.addTrackingSystem(brainTrackingSystem);\n this.addTrackingSystem(pakpieTrackingSystem);\n this.addTrackingSystem(tifTrackingSystem);\n\n this.addTrackingGenerator(imageGenerator);\n this.addTrackingGenerator(imagePakpieGenerator);\n this.addTrackingGenerator(objectGenerator);\n\n this.preset(preset);\n\n this.tracker = new Tracker(this.trackData, this.trackSystems, this.trackGenerator, this.trackOptions);\n }\n\n /**\n * Add pre-configured data for a specific tracking system. Returns the TrackLib instance for method chaining.\n *\n * @param {PresetGroupInterface} preset Tracking data preset(s) for one or more tracking system(s)\n * @returns {TrackLib}\n */\n public preset(preset: PresetGroupInterface): TrackLib {\n this.trackData.preset(preset);\n return this;\n }\n\n /**\n * Add a filter function. It will be called with the full set of resolved parameters for each tracking call which\n * it can modify.\n *\n * @param {string} key\n * @param {FilterFunction} filterFunction\n */\n public addFilter(key: string, filterFunction: FilterFunction ) {\n this.trackData.addFilter(key, filterFunction);\n }\n\n /**\n * Add a tracking system configuration. Returns the TrackLib instance for method chaining.\n *\n * @param {TrackingSystemInterface} system Tracking system configuration\n * @returns {TrackLib}\n */\n public addTrackingSystem(system: TrackingSystemInterface): TrackLib {\n this.trackSystems.add(system);\n return this;\n }\n\n /**\n * Returns the configuration of a specific tracking system.\n *\n * @param {string} key tracking system name\n * @returns {TrackingSystemInterface} Tracking system configuration\n */\n public getTrackingSystem(key: string): TrackingSystemInterface {\n return this.trackSystems.get(key);\n }\n\n /**\n * Returns the full set of calculated tracking parameters for a specific tracking system.\n *\n * @param {string} systemKey the name of a configured tracking system\n * @returns {{}} map of tracking parameters\n */\n public getTrackingData(systemKey: string): {} {\n let result: {} = {};\n let system: TrackingSystemInterface = this.getTrackingSystem(systemKey);\n if (system) {\n result = this.tracker.getTrackParameter(system);\n }\n return result;\n }\n\n /**\n * Add a new tracking generator. Returns the TrackLib instance for method chaining.\n *\n * @param {TrackingGeneratorInterface} generator\n * @returns {TrackLib}\n */\n public addTrackingGenerator(generator: TrackingGeneratorInterface): TrackLib {\n this.trackGenerator.add(generator);\n return this;\n }\n\n /**\n * Make a tracking call. Returns the TrackLib instance for method chaining.\n *\n * @param {{}} callParameter Call-specific tracking parameters, e.g. 'section', 'trackingtype', 'destination'\n * @param {{}} callProperties Call-specific tracking properties. Can be used to activate a tracking system only for\n * individual tracking calls, e.g. { tif : { active : true } }\n * @returns {TrackLib}\n */\n public track(callParameter: {}, callProperties: {} = {}): TrackLib {\n this.tracker.run(callParameter, callProperties);\n return this;\n }\n\n /**\n * Returns a TrackingLogger instance (used for debugging).\n *\n * @returns {TrackingLogger}\n */\n public getLogger(): TrackingLogger {\n return logger;\n }\n}\n\nexport { TrackLib };\n\n\n\n// WEBPACK FOOTER //\n// ./src/tracklib.ts","import {util} from './utils';\nimport {logger, Observer} from './tracklib.logger';\n\ninterface BufferOptions {\n read?: boolean;\n write?: boolean;\n retry: number;\n key?: string;\n container?: string;\n}\n\ninterface TrackOptionsInterface {\n buffer?: BufferOptions;\n observer?: Observer;\n}\n\nconst defaultOptions: TrackOptionsInterface = {\n buffer : {\n read: false,\n write: false,\n retry: 3,\n key: 'trlbuf',\n container: 'html5'\n }\n};\n\n/**\n * This class holds general TrackLib configuration that is not specific to any tracking system.\n *\n * @private\n */\nclass TrackOptions {\n options: TrackOptionsInterface;\n\n constructor(options: TrackOptionsInterface) {\n this.options = util.mergeDeep(defaultOptions, options);\n\n if (options.observer && util.isObject(options.observer) && util.isFunction(options.observer.update)) {\n logger.registerObserver(options.observer);\n }\n }\n\n get(): TrackOptionsInterface {\n return this.options;\n }\n\n\n}\n\n\n\nexport { BufferOptions, TrackOptionsInterface, TrackOptions };\n\n\n\n// WEBPACK FOOTER //\n// ./src/tracklib.options.ts","import * as cloneDeep from 'clone-deep';\nimport { util } from './utils';\n\n/**\n * @private\n */\ninterface LayerInterface {}\n\n/**\n * Stores the data layers (tracking system presets and generator definitions). Each system preset extends the 'lib'\n * preset. Each generator extends the '_generator' layer.\n *\n * @private\n */\nclass MultiLayer {\n\n // Stores the different data-layer\n private layer: Object = {};\n\n // Stores relations between layer\n private tree: Object = {};\n\n private walkTree (obj: Object, path: string[]) {\n return path.length && !util.isUndefined(obj) ? this.walkTree(obj[path[0]], path.slice(1)) : obj;\n }\n\n /**\n * Copy a path'd value to another object\n * @param target\n * @param source\n * @param path\n * @returns {boolean}\n */\n public copyTree (target: {}, source: {}, path: string[]): boolean {\n\n let key: string = path.shift();\n\n if (path.length) {\n if (source.hasOwnProperty(key)) {\n if (!target.hasOwnProperty(key)) {\n target[key] = {};\n }\n return this.copyTree(target[key], source[key], path);\n } else {\n return false;\n }\n } else {\n target[key] = source[key];\n return true;\n }\n }\n\n /**\n * Create a new data layer\n * @param layerName\n * @returns {boolean}\n */\n public addLayer (layerName: string): boolean {\n\n if (!this.layer.hasOwnProperty(layerName)) {\n this.layer[layerName] = this.createLayer();\n return true;\n } else {\n return false;\n }\n }\n\n\n /**\n * Test if a given layername exists as layer\n * @param layerName\n * @returns {boolean}\n */\n public hasLayer (layerName: string): boolean {\n return this.layer.hasOwnProperty(layerName);\n }\n\n /**\n * Returns a given layer\n * @param layerName\n * @returns {*}\n */\n public getLayer (layerName: string): {} {\n\n if (this.layer.hasOwnProperty(layerName)) {\n return this.layer[layerName];\n } else {\n return null;\n }\n }\n\n public findLayer(searchLayer: string[], path: string[], value: any ): LayerInterface {\n\n let layerName;\n let result;\n\n for (layerName of searchLayer) {\n if (this.getLayerValue(layerName, path) === value) {\n result = this.layer[layerName];\n break;\n }\n }\n return result;\n }\n\n\n public getValue ( obj: {}, path: any, defaultValue?: any): any {\n\n let value: any;\n\n path = util.ensureArray(path, '.');\n\n value = this.walkTree(obj, path);\n\n if (util.isUndefined(value)) {\n value = defaultValue;\n }\n\n return value;\n\n }\n\n\n public setValue ( obj: {}, path: any, key: string, value: any): void {\n\n let temp;\n\n path = util.ensureArray(path, '.');\n\n temp = this.walkTree(obj, path);\n temp[key] = value;\n\n }\n\n\n\n\n /**\n * Returns a path'd value inside a layer\n * @param layerName\n * @param path\n * @param defaultValue\n * @returns {*}\n */\n public getLayerValue (layerName: string, path: any, defaultValue?: any): any {\n\n let value: any = defaultValue;\n\n if (this.layer.hasOwnProperty(layerName)) {\n value = this.getValue(this.layer[layerName], path, defaultValue);\n }\n\n return value;\n }\n\n /**\n * Returns a path'd value inside a layer\n * @param layerName\n * @param path\n * @param key\n * @param value\n * @returns {*}\n */\n public setLayerValue (layerName: string, path: any, key: string, value: any): void {\n\n if (this.layer.hasOwnProperty(layerName)) {\n this.setValue(this.layer[layerName], path, key, value);\n }\n }\n\n\n /**\n *\n * @param layer\n * @param path\n * @returns {{}}\n */\n public merge (layer: any, path: any): {} {\n\n let merged = {};\n let systemIndex;\n\n layer = util.ensureArray(layer);\n\n for (systemIndex = 0; systemIndex < layer.length; systemIndex++ ) {\n if (util.isObject(layer[systemIndex])) {\n merged = util.mergeDeep(merged, layer[systemIndex][path]);\n } else if (this.layer.hasOwnProperty(layer[systemIndex])) {\n merged = util.mergeDeep(merged, this.getLayerValue(layer[systemIndex], path));\n }\n }\n return merged;\n }\n\n\n public getChildren (layerName: string): {} {\n return this.tree.hasOwnProperty(layerName) ? this.tree[layerName].children : {};\n }\n\n public linkLayer (father: string, son: string): boolean {\n let success = false;\n\n if (this.layer.hasOwnProperty(father) && this.layer.hasOwnProperty(son)) {\n if (!this.tree.hasOwnProperty(father)) {\n this.tree[father] = { parents: {}, children : {}};\n }\n\n if (!this.tree.hasOwnProperty(son)) {\n this.tree[son] = { parents: {}, children : {}};\n }\n\n this.tree[father]['children'][son] = this.layer[son];\n this.tree[son]['parents'][father] = this.layer[father];\n\n success = true;\n\n }\n\n return success;\n }\n\n public setLayer = function(layerName: string, data: {}): boolean {\n\n if (this.addLayer(layerName)) {\n this.layer[layerName] = Object.assign(this.layer[layerName], cloneDeep(data));\n return true;\n } else {\n return false;\n }\n };\n\n private createLayer = function(): {} {\n return {};\n };\n\n\n}\n\nexport { LayerInterface, MultiLayer };\n\n\n\n// WEBPACK FOOTER //\n// ./src/multilayer.ts","'use strict';\n\n/**\n * Module dependenices\n */\n\nvar isObject = require('is-plain-object');\nvar clone = require('shallow-clone');\nvar typeOf = require('kind-of');\nvar forOwn = require('for-own');\n\n/**\n * Recursively clone native types.\n */\n\nfunction cloneDeep(val, instanceClone) {\n switch (typeOf(val)) {\n case 'object':\n return cloneObjectDeep(val, instanceClone);\n case 'array':\n return cloneArrayDeep(val, instanceClone);\n default: {\n return clone(val);\n }\n }\n}\n\nfunction cloneObjectDeep(obj, instanceClone) {\n if (isObject(obj) || (instanceClone === true && typeOf(obj) === 'object')) {\n var res = {};\n forOwn(obj, function(val, key) {\n this[key] = cloneDeep(val, instanceClone);\n }, res);\n return res;\n }\n if (typeof instanceClone === 'function') {\n return instanceClone(obj);\n }\n return obj;\n}\n\nfunction cloneArrayDeep(arr, instanceClone) {\n var res = [];\n for (var i = 0; i < arr.length; i++) {\n res[i] = cloneDeep(arr[i], instanceClone);\n }\n return res;\n}\n\n/**\n * Expose `cloneDeep`\n */\n\nmodule.exports = cloneDeep;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/clone-deep/index.js\n// module id = 46\n// module chunks = 0 1 2 4 5","/*!\n * isobject \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nmodule.exports = function isObject(val) {\n return val != null && typeof val === 'object' && Array.isArray(val) === false;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/isobject/index.js\n// module id = 47\n// module chunks = 0 1 2 4 5","/*!\n * shallow-clone \n *\n * Copyright (c) 2015-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar isObject = require('is-extendable');\nvar mixin = require('mixin-object');\nvar typeOf = require('kind-of');\n\n/**\n * Shallow copy an object, array or primitive.\n *\n * @param {any} `val`\n * @return {any}\n */\n\nfunction clone(val) {\n var type = typeOf(val);\n if (clone.hasOwnProperty(type)) {\n return clone[type](val);\n }\n return val;\n}\n\nclone.array = function cloneArray(arr) {\n return arr.slice();\n};\n\nclone.date = function cloneDate(date) {\n return new Date(+date);\n};\n\nclone.object = function cloneObject(obj) {\n if (isObject(obj)) {\n return mixin({}, obj);\n } else {\n return obj;\n }\n};\n\nclone.map = function cloneMap(val) {\n return new Map(val);\n};\n\nclone.regexp = function cloneRegExp(re) {\n var flags = '';\n flags += re.multiline ? 'm' : '';\n flags += re.global ? 'g' : '';\n flags += re.ignoreCase ? 'i' : '';\n return new RegExp(re.source, flags);\n};\n\nclone.set = function cloneSet(val) {\n return new Set(val);\n};\n\n/**\n * Expose `clone`\n */\n\nmodule.exports = clone;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/shallow-clone/index.js\n// module id = 48\n// module chunks = 0 1 2 4 5","'use strict';\n\nvar isObject = require('is-extendable');\nvar forIn = require('for-in');\n\nmodule.exports = function mixin(target, objects) {\n if (!isObject(target)) {\n throw new TypeError('expected the first argument to be an object');\n }\n\n var len = arguments.length;\n var idx = 0;\n\n while (++idx < len) {\n copy(target, arguments[idx]);\n }\n return target;\n};\n\n/**\n * copy properties from the source object to the\n * target object. We don't use `Object.keys` here, since\n * \"mixin\" also adds non-enumerable keys.\n *\n * @param {*} `value`\n * @param {String} `key`\n */\n\nfunction copy(target, obj) {\n if (isObject(obj)) {\n forIn(obj, function(value, key) {\n target[key] = value;\n });\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/mixin-object/index.js\n// module id = 49\n// module chunks = 0 1 2 4 5","/*!\n * for-own \n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\n'use strict';\n\nvar forIn = require('for-in');\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nmodule.exports = function forOwn(obj, fn, thisArg) {\n forIn(obj, function(val, key) {\n if (hasOwn.call(obj, key)) {\n return fn.call(thisArg, obj[key], key, obj);\n }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/for-own/index.js\n// module id = 50\n// module chunks = 0 1 2 4 5","import {TrackingData} from './tracklib.data';\n\n/**\n * Defines a tracking system's parameters and properties.\n */\ninterface TrackingSystemInterface {\n key: string;\n parameter?: TrackingSystemParameterCollectionInterface;\n properties?: TrackingSystemPropertyInterface;\n [propName: string]: any;\n}\n\ntype TrackingSystemParameterValue = string | number | boolean | {};\n\n/**\n * A collection of parameters defined for a tracking system. Parameters contain the actual data sent with tracking\n * calls.\n */\ninterface TrackingSystemParameterCollectionInterface {\n [key: string]: TrackingSystemParameterInterface;\n}\n\n/**\n * A tracking system parameter definition\n */\ninterface TrackingSystemParameterInterface {\n /**\n * should the parameter value be cached after it has first been calculated?\n */\n cache?: boolean;\n /**\n * cached parameter value\n * @internal\n */\n cache_value?: TrackingSystemParameterValue;\n /**\n * defines the properties and/or parameters required by the calc function, e.g.:\n * ```\n * need: {\n * parameter: ['pageurl'],\n * properties: ['system.label_prefix']\n * }\n * ```\n */\n need?: any;\n /**\n * Function used to calculate a parameter's value.\n *\n * @param {{}} provided map containing the properties/parameters listed in 'need'\n * @param {{}} parameter Parameter definition\n * @param {TrackingSystemInterface} system Tracking system definition\n * @returns {TrackingSystemParameterValue}\n */\n calc?: (provided?: {}, parameter?: {}, system?: TrackingSystemInterface) => TrackingSystemParameterValue;\n /**\n * If defined, the given value will always be used for this parameter. It can not be overridden.\n */\n fixed?: TrackingSystemParameterValue;\n /**\n * Use a different name to track this parameter value.\n */\n alias?: string;\n /**\n * Stores the value defined in a system preset or in a tracking call.\n */\n set?: TrackingSystemParameterValue;\n /**\n * Used if no value is defined by a preset or tracking call.\n */\n defaultValue?: TrackingSystemParameterValue;\n}\n\n/**\n * A collection of properties defined for a tracking system. Properties control how a tracking system works.\n */\ninterface TrackingSystemPropertyInterface {\n lib?: {\n active?: boolean;\n generator?: string;\n // TODO: Tracker.getTrackParameter allows Array values for useparameter. Should this be supported?\n useparameter?: (system: TrackingSystemInterface , callData?: any) => string[];\n generatorAdapter?: (properties, trackParameter) => {};\n [propName: string]: any;\n };\n system?: {\n [propName: string]: any;\n };\n}\n\n\n/**\n * @private\n */\nclass TrackingSystems {\n\n private trackData: TrackingData;\n\n constructor(trackData: TrackingData) {\n this.trackData = trackData;\n }\n\n\n public add (system: TrackingSystemInterface): void {\n\n if (this.trackData.getData().setLayer(system['key'], system)) {\n\n if ('lib' !== system['key']) {\n this.trackData.getData().linkLayer('lib', system['key']);\n }\n }\n }\n\n public get (key: string): TrackingSystemInterface | null {\n let system: TrackingSystemInterface;\n system = this.trackData.getData().getLayer(key);\n return system;\n }\n\n\n}\n\nexport {\n TrackingSystems,\n TrackingSystemPropertyInterface,\n TrackingSystemParameterInterface,\n TrackingSystemParameterCollectionInterface,\n TrackingSystemParameterValue,\n TrackingSystemInterface,\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/tracklib.systems.ts","import {TrackingData} from './tracklib.data';\n\ntype TrackData = any;\ntype TrackValue = any;\ntype TrackSendPromise = any;\n\ninterface TrackingGeneratorInterface {\n key: string;\n getValue?( data: TrackData ): TrackValue;\n track?( data: TrackValue ): Promise;\n run ( data: TrackData ): Promise;\n}\n\n/**\n * Generators are responsible for making the actual tracking calls, e.g. by creating tracking pixels or sending HTTP\n * requests. Each tracking system can define its own TrackingGenerator implementation.\n *\n * @private\n */\nclass TrackingGenerator {\n\n private static GENERATOR_AFFIX = '_generator';\n\n private trackData: TrackingData;\n\n constructor(trackData: TrackingData) {\n this.trackData = trackData;\n this.trackData.getData().addLayer('_generator');\n }\n\n public add (generator: TrackingGeneratorInterface): void {\n let useKey: string = TrackingGenerator.getGeneratorKey(generator['key']);\n if (this.trackData.getData().setLayer(useKey, generator)) {\n this.trackData.getData().linkLayer('_generator', useKey);\n }\n }\n\n public get(generatorKey: string): TrackingGeneratorInterface {\n let useKey: string = TrackingGenerator.getGeneratorKey(generatorKey);\n return this.trackData.getData().getLayer(useKey) as TrackingGeneratorInterface;\n }\n\n public static getGeneratorKey(key: string): string {\n return key + TrackingGenerator.GENERATOR_AFFIX;\n }\n\n}\n\nexport { TrackData, TrackValue, TrackSendPromise, TrackingGeneratorInterface, TrackingGenerator};\n\n\n\n// WEBPACK FOOTER //\n// ./src/tracklib.generator.ts","import { TrackingData } from './tracklib.data';\nimport {TrackingSystemInterface, TrackingSystems} from './tracklib.systems';\nimport { TrackingGenerator, TrackingGeneratorInterface} from './tracklib.generator';\nimport { util} from './utils';\nimport { TrackOptions } from './tracklib.options';\nimport { BufferItem, TrackBuffer, BufferEvents } from './tracklib.buffer';\n\n/**\n * @private\n */\nclass Tracker {\n\n private trackData: TrackingData;\n private trackSystems: TrackingSystems;\n private trackGenerator: TrackingGenerator;\n private trackOptions: TrackOptions;\n private trackBuffer: TrackBuffer;\n private callData: {};\n\n constructor(trackData: TrackingData, trackSystems: TrackingSystems, trackGenerator: TrackingGenerator, trackOptions: TrackOptions) {\n this.trackData = trackData;\n this.trackSystems = trackSystems;\n this.trackGenerator = trackGenerator;\n this.trackOptions = trackOptions;\n this.trackBuffer = new TrackBuffer(this.trackOptions.get().buffer);\n\n if (this.trackOptions.get().buffer.read) {\n this.trackBuffer.addListener((evt, payload) => this.bufferListener(evt, payload));\n }\n }\n\n\n /**\n * Analyze and unify the call parameters and properties\n *\n * @param callParameter\n * @param callProperties\n */\n private setCallData(callParameter: {} | string, callProperties: {}): void {\n\n this.callData = {};\n\n if (typeof callParameter === 'string') {\n callParameter = {section: callParameter};\n }\n\n this.callData['parameter'] = callParameter;\n this.callData['properties'] = callProperties;\n\n TrackingData.unifyParameter(this.callData);\n }\n\n private bufferListener(evt: string, payload: any) {\n switch (evt) {\n case BufferEvents.ready:\n this.writeFromBuffer();\n break;\n }\n }\n\n private writeFromBuffer() {\n let toTrack: BufferItem;\n let generator: TrackingGeneratorInterface;\n\n toTrack = this.trackBuffer.get();\n\n if (toTrack) {\n generator = this.trackGenerator.get(toTrack.generator);\n if (generator) {\n generator.track(toTrack.value)\n .then( () => {\n this.trackBuffer.complete(toTrack);\n })\n .catch( () => {\n this.trackBuffer.error(toTrack);\n });\n }\n }\n }\n\n /**\n * Resolves tracking parameters and properties and runs the tracking generators for each active system.\n *\n * @param {{} | string} callParameter\n * @param {{}} callProperties\n */\n public run(callParameter: {} | string, callProperties: {}) {\n\n let activeSystems;\n let systemKey;\n let system;\n let trackParameter;\n let properties;\n let generator: TrackingGeneratorInterface;\n\n this.setCallData(callParameter, callProperties);\n\n activeSystems = this.getActiveTrackingSystems();\n\n for (systemKey in activeSystems) {\n system = activeSystems[systemKey];\n trackParameter = this.getTrackParameter(system);\n properties = this.trackData.getProperties(system.key);\n\n generator = this.trackGenerator.get(properties.lib.generator);\n if (properties.lib.generatorAdapter && util.isFunction(properties.lib.generatorAdapter)) {\n\n trackParameter = properties.lib.generatorAdapter(properties, trackParameter);\n }\n\n if (this.trackOptions.get().buffer.write && generator.getValue) {\n let bufferValue = generator.getValue(trackParameter);\n this.trackBuffer.add(bufferValue, generator.key);\n } else {\n generator.run(trackParameter);\n }\n\n\n }\n }\n\n /**\n * Get all parameter for a tracking-call\n * @param system\n * @returns {Array}\n */\n public getTrackParameter(system: TrackingSystemInterface): {} {\n\n let properties;\n let callData, orgCallData;\n let useParameter;\n let index;\n let field;\n let trackParameter = {};\n\n properties = this.trackData.getProperties(system.key);\n callData = this.callData;\n orgCallData = util.mergeDeep({}, this.callData);\n\n // calc parameter for this call\n callData['systemParameter'] = this.trackData.getData().merge(['lib', system.key], 'parameter');\n callData['allParameter'] = this.trackData.getAllParameter(system, callData);\n callData['properties'] = this.trackData.getProperties(system.key);\n\n useParameter = this.trackData.getData().getValue(properties, ['lib', 'useparameter'], []);\n if (util.isFunction(useParameter)) {\n useParameter = useParameter(system, callData);\n }\n\n for (index = 0; index < useParameter.length; index++) {\n field = this.resolveParameter(system, useParameter[index], callData);\n if (util.isObject(field)) {\n trackParameter = Object.assign(trackParameter, field);\n }\n }\n\n this.trackData.runFilter(system, trackParameter, orgCallData);\n\n return trackParameter;\n }\n\n\n /**\n * Resolve a specific parameter for a given system\n * @param system\n * @param key\n * @param callData\n * @param options\n * @returns {{}}\n */\n public resolveParameter(system: TrackingSystemInterface, key, callData, options: {} = {}) {\n\n let fields = {};\n let fieldkey;\n let neededValues = {};\n let param;\n let result;\n\n options = Object.assign({ alias : true}, options);\n\n param = callData['allParameter'][key];\n\n // return cached value if availiable\n if (param['cache'] && param.hasOwnProperty('cache_value')) {\n result = param['cache_value'];\n } else {\n\n // resolve needed values\n if (param['need'] && util.isObject(param['need'])) {\n neededValues = this.resolveNeededValues(system, param['need'], callData);\n }\n\n switch (true) {\n case param.hasOwnProperty('fixed'):\n result = param['fixed'];\n break;\n\n case param.hasOwnProperty('calc') && util.isFunction(param['calc']):\n result = param['calc'](neededValues, param, system);\n break;\n\n case param.hasOwnProperty('set'):\n result = param['set'];\n break;\n }\n }\n\n if (util.isObject(result)) {\n fields = result;\n } else {\n fieldkey = options['alias'] && param['alias'] ? param['alias'] : key;\n\n if (util.isScalar(result)) {\n fields[fieldkey] = result;\n } else if (param.hasOwnProperty('defaultValue') && util.isScalar(param['defaultValue'])) {\n fields[fieldkey] = param['defaultValue'];\n }\n }\n\n // Set cache\n if (param['cache'] && !param.hasOwnProperty('cache_value') && !util.isUndefined(result)) {\n this.trackData.setCache(system.key, key, result);\n }\n\n return fields;\n }\n\n\n /**\n * Resolve all system-specific parameter that a specific parameter needs\n * @param system\n * @param needed\n * @param callData\n * @returns {{}}\n */\n private resolveNeededValues(system, needed, callData) {\n\n // Resolve parameter\n let allProperties;\n let resolved = {};\n let field;\n let index;\n let runtime;\n let success = true;\n\n if (needed['properties'] && util.isArray(needed['properties'])) {\n allProperties = this.trackData.getProperties(system.key);\n resolved['properties'] = {};\n for (index = 0; index < needed['properties'].length; index++) {\n success = success && this.trackData.getData().copyTree(resolved['properties'], allProperties, util.ensureArray(needed['properties'][index], '.'));\n }\n }\n\n if (needed['parameter'] && util.isArray(needed['parameter'])) {\n resolved['parameter'] = {};\n for (index = 0; index < needed['parameter'].length; index++) {\n field = this.resolveParameter(system, needed['parameter'][index], callData, { alias : false });\n resolved['parameter'] = Object.assign(resolved['parameter'], field);\n }\n }\n\n if (needed['runtime'] && util.isArray(needed['runtime'])) {\n resolved['runtime'] = {};\n for (index = 0; index < needed['runtime'].length; index++) {\n runtime = needed['runtime'][index];\n resolved['runtime'][runtime] = this.runtimeHelper(runtime, callData);\n }\n }\n\n if (!success) {\n resolved = null;\n }\n\n return resolved;\n }\n\n\n /**\n * Returns a list of active tracking-systems\n * @returns {{}}\n */\n public getActiveTrackingSystems(): any {\n\n let system;\n let isActive;\n let isAllowedForProtocol;\n let activeSystems = {};\n let allSystems = this.trackData.getData().getChildren('lib');\n\n for (system in allSystems) {\n\n isActive = false;\n isAllowedForProtocol = false;\n\n // Is system activated via track-call\n if (this.callData['properties'][system] && util.isBoolean(this.callData['properties'][system]['active'])) {\n isActive = this.callData['properties'][system]['active'];\n } else {\n\n let properties = this.trackData.getProperties(system);\n if (this.trackData.getData().getValue(properties, ['lib', 'active']) === true) {\n isActive = true;\n }\n }\n\n if (this.callData['properties'][system] && util.isArray(this.callData['properties'][system]['protocols'])) {\n isAllowedForProtocol = this.callData['properties'][system]['protocols']\n .indexOf(location.protocol) !== -1;\n } else {\n const properties = this.trackData.getProperties(system);\n const configuredProtocols = this.trackData.getData().getValue(properties, ['lib', 'protocols']);\n if (util.isArray(configuredProtocols)) {\n isAllowedForProtocol = configuredProtocols.indexOf(location.protocol) !== -1;\n }\n }\n\n if (isActive && isAllowedForProtocol) {\n activeSystems[system] = allSystems[system];\n }\n }\n\n return activeSystems;\n\n }\n\n\n private runtimeHelper(key: string, callData: {} = {}) {\n\n let result;\n switch (key) {\n case 'activeSystems':\n result = this.getActiveTrackingSystems();\n break;\n }\n return result;\n }\n\n}\n\nexport { Tracker };\n\n\n\n// WEBPACK FOOTER //\n// ./src/tracklib.tracker.ts","import {util} from './utils';\nimport {TrackValue} from './tracklib.generator';\nimport {BufferOptions} from './tracklib.options';\nimport {logger} from './tracklib.logger';\n\n/**\n * @private\n */\nfunction storageAvailable(type) {\n try {\n let storage = window[type],\n x = '__storage_test__';\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n }\n catch (e) {\n return false;\n }\n}\n\n/**\n * @private\n */\ninterface BufferMeta {\n tries: number;\n}\n\n/**\n * @private\n */\ninterface BufferItem {\n created: number;\n value: TrackValue;\n generator: string;\n meta: BufferMeta;\n}\n\n/**\n * @private\n */\ntype Buffer = BufferItem[];\n\n/**\n * @private\n */\ntype Listener = (event: string, payload: any) => void;\n\nlet BufferEvents = {\n ready: 'ready'\n};\n\n/**\n * @private\n */\nclass TrackBuffer {\n\n /**\n * Is the local storage availabe\n */\n private active: boolean;\n\n private options: BufferOptions;\n private storage: Storage;\n private buffer: Buffer;\n\n private listener: Listener[];\n\n /**\n * Creates a new TrackBuffer\n * @param options\n */\n constructor(options: BufferOptions) {\n\n this.options = options;\n this.storage = null;\n this.buffer = null;\n this.listener = [];\n\n this.active = storageAvailable('localStorage');\n if (this.active) {\n this.storage = localStorage;\n }\n this.ensureBuffer();\n }\n\n public addListener(listener: Listener) {\n this.listener.push(listener);\n this.checkReady();\n }\n\n /**\n * Add a new TrackValue to the buffer and saves it\n * @param value\n * @param generatorKey\n * @returns {boolean}\n */\n public add(value: TrackValue, generatorKey: string) {\n let item: BufferItem;\n item = {\n created: new Date().getTime(),\n value: value,\n generator: generatorKey,\n meta: {\n tries: 1\n }\n };\n this.buffer.push(item);\n this.saveBuffer();\n }\n\n private retry(item: BufferItem) {\n item.meta.tries++;\n this.buffer.push(item);\n }\n\n /**\n * Remove an item from the buffer\n * @param item\n * @returns {boolean}\n */\n private remove(item: BufferItem) {\n let index = this.getIndex(item);\n\n if (util.isNumber(index)) {\n this.buffer.splice(index, 1);\n }\n }\n\n /**\n * Is called when a item is obsolete\n * @param item\n */\n public complete(item: BufferItem) {\n this.remove(item);\n this.saveBuffer();\n }\n\n /**\n * Is called when a item can be handled\n * @param item\n */\n public error(item: BufferItem) {\n this.remove(item);\n if ((item.meta.tries) < this.options.retry ) {\n this.retry(item);\n }\n this.saveBuffer();\n }\n\n\n public get(index: number = 0): BufferItem {\n this.ensureBuffer();\n if (index < this.buffer.length) {\n return this.buffer[index];\n } else {\n return null;\n }\n }\n\n public isActive(): boolean {\n return this.active;\n }\n\n\n private emit(evt: string, payload: any = {}) {\n let index;\n\n for (index = 0; index < this.listener.length; index++) {\n this.listener[index](evt, payload);\n }\n }\n\n private checkReady() {\n if (this.buffer.length > 0) {\n this.emit(BufferEvents.ready);\n }\n }\n\n\n private getIndex(item: BufferItem): number {\n let foundIndex: number = null;\n let index;\n\n this.ensureBuffer();\n\n for (index = 0; index < this.buffer.length; index++) {\n if (this.buffer[index].value === item.value) {\n foundIndex = index;\n break;\n }\n }\n return foundIndex;\n }\n\n /**\n * Ensures an internal buffer available, try to load one from storage if active\n */\n private ensureBuffer() {\n if (this.buffer === null) {\n this.buffer = this.loadBuffer();\n if (this.buffer === null) {\n this.buffer = [];\n }\n }\n }\n\n private saveBuffer(): boolean {\n let tmp: string;\n\n if (this.active) {\n this.ensureBuffer();\n tmp = JSON.stringify(this.buffer);\n this.storage.setItem(this.options.key, tmp);\n this.checkReady();\n logger.log('storage', 'write', this.buffer);\n return true;\n }\n return false;\n }\n\n\n private loadBuffer(): Buffer {\n let buffer: Buffer = null;\n let tmp: any;\n\n if (this.storage) {\n tmp = this.storage.getItem(this.options.key);\n if (tmp) {\n try {\n tmp = JSON.parse(tmp);\n } catch (e) {\n }\n }\n\n if (util.isArray(tmp)) {\n buffer = tmp;\n } else {\n buffer = [];\n }\n }\n return buffer;\n }\n}\n\nexport { BufferMeta, BufferItem, Listener, BufferEvents, TrackBuffer };\n\n\n\n// WEBPACK FOOTER //\n// ./src/tracklib.buffer.ts","import { TrackingSystemInterface } from '../tracklib.systems';\nimport { getLibCampaign } from './helper/lib.campaign';\nimport {util} from '../utils';\n\n/**\n * @private\n */\nconst urlWhitelist = {\n 'mc' : true,\n 'ac': true,\n 'domainName': true,\n 'isCH' : true,\n 'is1Reg': true,\n 'isInapp': true,\n 'q' : true,\n 'cd': true,\n 'ved': true\n};\n\n/**\n * @private\n */\nconst sectionsWithHidWhitelist = ['browserswitch.decision.end', 'general.start'];\n\n/**\n * @private\n */\nlet libSystem: TrackingSystemInterface = {\n\n key: 'lib',\n\n parameter: {\n\n timestamp: {\n calc: (): number => {\n return new Date().getTime();\n }\n },\n\n resolutionw: {\n cache: true,\n calc: (): number => {\n return window.screen.width;\n }\n },\n\n resolutionh: {\n cache: true,\n calc: (): number => {\n return window.screen.height;\n }\n },\n\n ppi: {\n cache: true,\n calc: (): number => {\n\n let detect: number = 0;\n\n if (window.matchMedia) {\n\n let match = (ppi) => matchMedia('(max-resolution: ' + ppi + 'dpi)').matches === true;\n let low = 0, high = 96;\n let rLow = match(low), rHigh = match(high);\n let diff = high - low;\n let check;\n let steps = 0;\n\n if ((rLow !== rHigh)) {\n while (diff > 1) {\n\n check = low + Math.floor(diff / 2);\n if (rLow !== match(check)) {\n high = check;\n } else {\n low = check;\n }\n diff = high - low;\n\n steps++;\n if (steps > 12) {\n detect = -1;\n break;\n }\n detect = high;\n }\n }\n }\n return detect;\n }\n\n },\n\n software: {},\n\n softwareversion: {},\n\n softwarevariant : {},\n\n iid: {},\n\n brand: {\n defaultValue: 'unknown'\n },\n\n registrationcountry: {},\n\n /**\n * Hashed user account ID\n */\n hid: {},\n\n product: {},\n\n viewportw: {\n cache: false,\n calc: (): number => {\n return window.innerWidth;\n }\n },\n\n viewporth: {\n cache: false,\n calc: (): number => {\n return window.innerHeight;\n }\n },\n\n section: {},\n\n trackingtype: {},\n\n eventposition: {},\n\n contentposition: {},\n\n contentid: {},\n\n source: {},\n\n destination: {},\n\n /**\n * URL of the current page. Some variable parts are removed to avoid tracking the same resource with different\n * URLs:\n * - character sequences neginning with a semicolon, e.g. ';jsessionid=...'\n * - any search query parameters that aren't whitelisted (see urlWhitelist)\n * - any URL hash values that do not begin with a period character\n *\n * If a value is provided for the hid parameter, pageurl will only be added to the tracking data if the value\n * for section is whitelisted (see sectionsWithHidWhitelist)\n */\n pageurl : {\n // this value can't be cached since it depends on 'section' which changes with each tracking call\n cache: false,\n need: {\n parameter: ['hid', 'section']\n },\n calc: (provided): string => {\n const hid = provided && provided['parameter'] && provided['parameter'].hid ?\n provided['parameter'].hid : null;\n const section = provided && provided['parameter'] && provided['parameter'].section ?\n provided['parameter'].section : null;\n\n if (hid && sectionsWithHidWhitelist.indexOf(section) === -1) {\n return null;\n }\n\n let url = util.sanitizeUrl(document.location.href, urlWhitelist);\n url = url.length ? url : null;\n return url;\n }\n },\n\n referrer: {\n cache: true,\n calc: (): string => {\n let url = util.sanitizeUrl(document.referrer, urlWhitelist);\n url = url.length ? url : null;\n return url;\n }\n },\n\n campaign: {\n calc: (): string => {\n return getLibCampaign();\n }\n },\n\n result: {},\n\n count: {},\n\n size: {},\n\n time: {},\n\n data: {},\n\n profileblocked: {},\n\n environment: {},\n\n libname: {\n fixed: process.env.LIBNAME || 'unknown'\n },\n\n libversion: {\n fixed: process.env.LIBVERSION || 'unknown'\n }\n\n },\n\n properties: {\n\n lib: {\n\n // Default useparameter-function returns all keys\n useparameter: function (system: TrackingSystemInterface , callData) {\n let keys = Object.keys(callData.systemParameter);\n\n if (callData.properties.lib.hasOwnProperty('addparameter')) {\n keys = keys.concat(callData.properties.lib.addparameter);\n }\n\n return keys;\n },\n\n addparameter : [],\n\n // Brain Default Adapter\n generatorAdapter: function(properties, trackParameter) {\n let track_url: string;\n let brand: string = trackParameter['brand'];\n let stage: string;\n\n stage = properties['lib'].hasOwnProperty('stage') ? properties['lib']['stage'] : 'live';\n\n if (properties.system.base_url) {\n track_url = properties.system.base_url;\n } else {\n track_url = properties['lib']['getBrainUrl'](brand, stage);\n }\n\n return {\n baseUrl: track_url,\n query: trackParameter\n };\n },\n\n getBrainUrl: (brand: string, stage: string): string => {\n\n let url: string;\n\n switch (stage) {\n case 'qa':\n url = 'https://wa-qa.ui-portal.de/t.gif';\n break;\n case 'prelive':\n url = 'https://wa-pre.ui-portal.de/t.gif';\n break;\n default:\n switch (brand) {\n case 'mailcom':\n case 'gmxcom':\n url = 'https://us.wa.ui-portal.com/t.gif';\n break;\n default:\n url = 'https://wa.ui-portal.de/t.gif';\n }\n }\n\n\n // preprocess brand if needed\n return url;\n\n },\n\n // tracking calls will only be made if the document is loaded using one of these protocols\n protocols: ['http:', 'https:']\n\n }\n }\n};\n\n\nexport { libSystem };\n\n\n\n// WEBPACK FOOTER //\n// ./src/systems/lib.ts","/**\n * @private\n */\nlet params: {} = null;\n\n/**\n * @private\n */\nlet docCookies = {\n getItem: function (sKey) {\n if (!sKey) {\n return null;\n }\n return decodeURIComponent(document.cookie.replace(new RegExp('(?:(?:^|.*;)\\\\s*' + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') + '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'), '$1')) || null;\n }\n};\n\n/**\n * @private\n */\nlet extract = {\n 'hash' : () => {\n if (document.location.hash) {\n const hash = document.location.hash.slice(1);\n if (hash[0] === '.') {\n return hash;\n }\n }\n return null;\n },\n\n 'mc' : () => {\n return getQueryParameter('mc');\n },\n\n 'kid' : () => {\n let result = getQueryParameter('kid');\n\n if (!result) {\n result = docCookies.getItem('cookieKID');\n }\n\n result = result ? result.replace(/@/g, '_') : null;\n return result;\n }\n\n};\n\n/**\n * @private\n */\nfunction getQueryParameter(paramKey: string) {\n let query: string = document.location.search.slice(1);\n let parts, tmp: string[];\n let key, value: string;\n\n\n if (params === null) {\n params = {};\n if (query) {\n query = query.split('#')[0];\n parts = query.split('&');\n for (let i = 0; i < parts.length; i++) {\n tmp = parts[i].split('=');\n key = tmp[0].toLowerCase();\n value = tmp[1] ? tmp[1] : null;\n\n if (key && value) {\n params[key] = value;\n }\n }\n }\n }\n\n return params[paramKey] ? params[paramKey] : null;\n\n}\n\n/**\n * @private\n */\nfunction getLibCampaign() {\n\n let fields = ['hash', 'mc', 'kid'];\n let values = [];\n let key, value: string;\n\n for (key of fields) {\n\n value = extract[key] ? extract[key]() : null;\n if (value) {\n values.push(value);\n }\n }\n\n switch (values.length) {\n case 0:\n value = null;\n break;\n case 1:\n value = '#' + values[0];\n break;\n default:\n value = '#' + values.join('#');\n }\n\n return value;\n\n}\n\n\nexport { getLibCampaign };\n\n\n\n// WEBPACK FOOTER //\n// ./src/systems/helper/lib.campaign.ts","import { TrackingSystemInterface } from '../tracklib.systems';\nimport { util } from '../utils';\nimport { features } from '../features';\n\n/**\n * @private\n */\nconst brainTrackingSystem: TrackingSystemInterface = {\n\n key: 'brain',\n\n mapping: {\n trackingtype : {\n 'cl' : 'click',\n 'ev' : 'event'\n }\n },\n\n parameter: {\n\n name: {\n\n need: {\n properties: ['system.section_prefix'],\n parameter: ['trackingtype', 'section']\n },\n\n calc: (provided): string => {\n\n return [\n provided['properties']['system']['section_prefix'],\n provided['parameter']['trackingtype'],\n provided['parameter']['section']\n ].join('.');\n }\n },\n\n brand : {\n\n },\n\n timestamp: {\n alias: 'mts'\n },\n\n registrationcountry: {\n alias: 'country'\n },\n\n trackingtype : {\n\n alias : 'type',\n\n calc : (provided, param, system: TrackingSystemInterface): string => {\n\n let value;\n if (param['set']) {\n value = system['mapping']['trackingtype'].hasOwnProperty(param['set']) ? system['mapping']['trackingtype'][param['set']] : param['set'];\n }\n\n return value;\n }\n },\n\n tif: {\n need: {\n runtime: ['activeSystems']\n },\n\n calc: (provided): number => {\n return provided['runtime']['activeSystems'].hasOwnProperty('tif') ? 1 : 0;\n }\n },\n\n resolutionw : {\n alias : 'rsw'\n },\n\n resolutionh : {\n alias : 'rsh'\n },\n\n viewportw : {\n alias : 'vpw'\n },\n\n viewporth : {\n alias : 'vph'\n },\n\n ppi : {\n\n },\n\n touch : {\n cache : true,\n calc: () => {\n return features.touchevents();\n }\n },\n\n label : {\n\n need: {\n properties: ['system.label_prefix']\n },\n\n calc : (provided, param): {} => {\n let label = {};\n if (param['set'] && util.isObject(param['set'])) {\n label = util.prefixObject(param['set'], provided['properties']['system']['label_prefix']);\n }\n return label;\n }\n }\n\n },\n\n properties: {\n\n lib: {\n active: false,\n\n generator: 'img',\n\n useparameter: function (system: TrackingSystemInterface) {\n return Object.keys(system.parameter);\n }\n },\n\n system: {\n label_prefix: 'n_',\n section_prefix: 'brain'\n }\n }\n};\n\nexport {brainTrackingSystem};\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/systems/brain.ts","/**\n * @private\n */\ndeclare const DocumentTouch: any;\n\n/**\n * @private\n */\nlet features = {\n\n // from modernizr\n touchevents: function() {\n let bool = false;\n if (('ontouchstart' in window) || (window).DocumentTouch && document instanceof DocumentTouch) {\n bool = true;\n }\n return bool;\n }\n\n};\n\nexport { features };\n\n\n\n// WEBPACK FOOTER //\n// ./src/features.ts","import { TrackingSystemInterface } from '../tracklib.systems';\n\n/**\n * @private\n */\nlet pakpieTrackingSystem: TrackingSystemInterface = {\n\n key: 'pakpie',\n\n parameter: {\n attributeset: {\n fixed: 1\n },\n },\n\n properties: {\n\n lib: {\n active: true,\n generator: 'img_pakpie',\n },\n\n system: {\n\n }\n\n }\n};\n\n\nexport { pakpieTrackingSystem };\n\n\n\n// WEBPACK FOOTER //\n// ./src/systems/pakpie.ts","import { TrackingSystemInterface } from '../tracklib.systems';\nimport { ObjectGeneratorInterface } from '../generator/obj';\n\n/**\n * @private\n */\nlet tifTrackingSystem: TrackingSystemInterface = {\n\n key: 'tif',\n\n parameter: {\n\n // TIF page identifiers are mapped from BRAIN tracking sections by default.\n // See the TIF tracking sample page for an example.\n pageidentifier: {\n\n need: {\n parameter: ['section', 'ul', 'pageurl'],\n properties: [\n 'system.brain_tif_mapping',\n 'system.prefix',\n 'system.mobile_os',\n 'system.product_for_userlevel'\n ]\n },\n\n calc: (provided) => {\n const section = provided['parameter'].section;\n const mappingType = provided['properties'].system.brain_tif_mapping;\n\n if (mappingType === 'section') {\n const userLevel = provided['parameter'].ul;\n const mobileOs = provided['properties'].system.mobile_os;\n const prefix = provided['properties'].system.prefix;\n const userLevelMapping = provided['properties'].system.product_for_userlevel;\n\n return convertSectionToPageIdentifier(section, mobileOs, prefix, userLevel, userLevelMapping);\n }\n\n if (mappingType === 'url') {\n const mobileOs = provided['properties'].system.mobile_os;\n const prefix = provided['properties'].system.prefix;\n\n return getPageIdentifierFromUrl(window.location.pathname, mobileOs, prefix);\n }\n\n return section.split('.').join('/');\n }\n },\n\n brand: {},\n\n region: {\n\n need: {\n parameter: ['brand']\n },\n\n calc: (provided) => {\n let value: string;\n switch (provided['parameter']['brand']) {\n case 'gmxch':\n value = 'ch';\n break;\n case 'gmxat':\n value = 'at';\n break;\n default:\n value = 'de';\n }\n return value;\n }\n },\n\n // hashed UAS account ID\n hid: {},\n\n // user level, e.g. 0 for freemail, 2 for promail\n ul: {},\n\n // sociodemographic data\n crx: {},\n },\n\n properties: {\n\n lib: {\n active: false,\n generator: 'obj',\n generatorAdapter: function (properties: {}, trackParameter: {}): ObjectGeneratorInterface {\n\n let callObj: ObjectGeneratorInterface;\n\n callObj = {\n obj : properties['system']['tif_container'],\n methodName : 'track',\n data : trackParameter\n };\n\n return callObj;\n },\n\n useparameter: function (system) {\n return Object.keys(system.parameter);\n\n }\n },\n\n system: {\n tif_container: {},\n\n // how to determine TIF page identifiers:\n // 'section': use the BRAIN sections with added optional mobile_os, prefix and product name\n // 'url: URL path with added optional mobile_os and prefix (for e.g. product or help pages)\n // any other value: BRAIN section with dots replaced by slashes\n brain_tif_mapping: 'section',\n\n // prefix for TIF page identifiers, e.g. 'mail', 'hilfe', 'mail_application.3cclient', ...\n // not used if brain_tif_mapping is set to false\n prefix: null,\n\n // OS name for in-app use: 'android', 'ios' or 'winphone'\n // not used if brain_tif_mapping is set to false\n mobile_os: null,\n\n // function that is called with the user level and should return the product name\n // not used if brain_tif_mapping is set to false\n product_for_userlevel: null,\n }\n\n }\n};\n\n/**\n *\n * @private\n */\nfunction convertSectionToPageIdentifier(\n section: string,\n mobileOs?: string,\n prefix?: string,\n userLevel?: number,\n userLevelMapping?: (ul: number) => string\n): string {\n const sections = section.split('.');\n let pageIdentifier = [];\n let hasViewSection = false;\n\n if (mobileOs) {\n pageIdentifier.push(mobileOs);\n }\n\n if (prefix) {\n pageIdentifier.push(prefix);\n }\n\n // discard first section part\n sections.shift();\n\n // add selected product\n if (userLevel && userLevelMapping) {\n pageIdentifier.push(userLevelMapping(userLevel));\n }\n\n // remove 'view' section\n if (sections[sections.length - 1] === 'view') {\n sections.pop();\n hasViewSection = true;\n }\n\n // add remaining sections\n pageIdentifier = pageIdentifier.concat(sections);\n\n // append 'index' if there are no additional section parts (initial page view)\n if (sections.length === 0 && hasViewSection) {\n pageIdentifier.push('index');\n }\n\n return pageIdentifier.join('/');\n}\n\n/**\n * @private\n */\nconst leadingSlashExp = /^\\//;\n\n/**\n * @private\n */\nconst trailingSlashExp = /\\/$/;\n\n/**\n * @private\n */\nconst htmlExtensionExp = /\\.htm(l)?$/;\n\n/**\n * @private\n */\nfunction getPageIdentifierFromUrl(pathname: string, mobile_os?: string, prefix?: string): string {\n const sections = [];\n\n if (mobile_os) {\n sections.push(mobile_os);\n }\n\n if (prefix) {\n sections.push(prefix);\n }\n\n sections.push(pathname.replace(leadingSlashExp, '')\n .replace(htmlExtensionExp, '')\n .replace(trailingSlashExp, ''));\n\n return sections.join('/');\n}\n\nexport { tifTrackingSystem, getPageIdentifierFromUrl };\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/systems/tif.ts","import { util } from '../utils';\nimport { TrackData, TrackValue, TrackingGeneratorInterface, TrackSendPromise } from '../tracklib.generator';\nimport { logger } from '../tracklib.logger';\n\n/**\n * @private\n */\nconst createValue = (urlParts): string => {\n return util.createUrl(urlParts);\n};\n\n/**\n * @private\n */\nconst doTracking = (myUrl: string) => {\n let response: Promise;\n let img = new Image(1, 1);\n\n response = new Promise((resolve, reject) => {\n\n img.addEventListener('load', function () {\n resolve('load');\n });\n\n img.addEventListener('error', function () {\n reject('error');\n });\n\n img.addEventListener('abort', function () {\n reject('abort');\n });\n\n img.src = myUrl;\n logger.log('img', 'request', myUrl);\n\n });\n\n return response;\n};\n\n\n/**\n * @private\n */\nlet imageGenerator: TrackingGeneratorInterface = {\n\n key: 'img',\n\n run: (urlParts: TrackData): Promise => {\n let url = createValue(urlParts);\n return doTracking(url);\n },\n\n getValue: (urlParts: TrackData): TrackValue => {\n return createValue(urlParts);\n },\n\n track: (value: TrackValue ): Promise => {\n return doTracking(value);\n },\n\n\n\n};\n\nexport { imageGenerator };\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/generator/img.ts","import { util } from '../utils';\nimport { TrackData, TrackValue, TrackingGeneratorInterface, TrackSendPromise } from '../tracklib.generator';\nimport { logger } from '../tracklib.logger';\n\n/**\n * @private\n */\nconst createValue = (urlParts): string => {\n let myUrl;\n let index, parts;\n let sum = 0;\n\n myUrl = util.createUrl(urlParts);\n parts = myUrl.split('?');\n parts[1] += '&signature=';\n for (index = 0; index < parts[1].length; index++ ) {\n sum += parts[1].charCodeAt(index);\n }\n sum = (sum % 5843) + 9127;\n parts[1] += sum;\n myUrl = parts.join('?');\n return myUrl;\n};\n\n/**\n * @private\n */\nconst doTracking = (myUrl: string) => {\n let response: Promise;\n let img = new Image(1, 1);\n\n response = new Promise((resolve, reject) => {\n\n if (img.addEventListener) {\n img.addEventListener('load', function () {\n logger.log('img_pakpie', 'loaded', myUrl);\n resolve('load');\n });\n\n img.addEventListener('error', function () {\n logger.log('img_pakpie', 'error', myUrl);\n reject('error');\n });\n\n img.addEventListener('abort', function () {\n logger.log('img_pakpie', 'abort', myUrl);\n reject('abort');\n });\n\n img.src = myUrl;\n logger.log('img_pakpie', 'request', myUrl);\n } else {\n img.src = myUrl;\n logger.log('img_pakpie', 'request', myUrl);\n resolve('unknown');\n }\n });\n\n response.catch(() => {\n\n });\n\n return response;\n};\n\n/**\n * @private\n */\nlet imagePakpieGenerator: TrackingGeneratorInterface = {\n\n key: 'img_pakpie',\n\n getValue: (urlParts: TrackData): TrackValue => {\n return createValue(urlParts);\n },\n\n track: (value: TrackValue ): Promise => {\n return doTracking(value);\n },\n\n run: (urlParts: TrackData): Promise => {\n let url = createValue(urlParts);\n return doTracking(url);\n\n }\n\n};\n\nexport { imagePakpieGenerator };\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/generator/img_pakpie.ts","import { util } from '../utils';\nimport { TrackingGeneratorInterface, TrackSendPromise } from '../tracklib.generator';\nimport { logger } from '../tracklib.logger';\n\ninterface ObjectGeneratorInterface {\n obj: {};\n methodName: string;\n data: {};\n}\n\n/**\n * @private\n */\nlet objectGenerator: TrackingGeneratorInterface = {\n\n key: 'obj',\n\n run: ( callObj: ObjectGeneratorInterface ) => {\n\n let response: Promise;\n\n response = new Promise((resolve) => {\n\n if (\n util.isObject(callObj) && util.isObject(callObj.obj) && callObj.methodName &&\n callObj.obj.hasOwnProperty(callObj.methodName) && util.isFunction(callObj.obj[callObj.methodName])\n ) {\n callObj.obj[callObj.methodName](callObj.data);\n logger.log('obj', 'request', callObj);\n }\n resolve(true);\n });\n\n return response;\n }\n\n};\n\nexport { ObjectGeneratorInterface, objectGenerator };\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/generator/obj.ts","import 'core-js/fn/object/assign';\nimport 'core-js/fn/object/keys';\nimport 'core-js/es6/promise';\n\n\n\n// WEBPACK FOOTER //\n// ./src/polyfills.ts","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/fn/object/assign.js\n// module id = 65\n// module chunks = 0 1 2 3","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.object.assign.js\n// module id = 66\n// module chunks = 0 1 2 3","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_ie8-dom-define.js\n// module id = 67\n// module chunks = 0 1 2 3","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-primitive.js\n// module id = 68\n// module chunks = 0 1 2 3","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-assign.js\n// module id = 69\n// module chunks = 0 1 2 3","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-keys-internal.js\n// module id = 70\n// module chunks = 0 1 2 3","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_array-includes.js\n// module id = 71\n// module chunks = 0 1 2 3","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_to-absolute-index.js\n// module id = 72\n// module chunks = 0 1 2 3","exports.f = Object.getOwnPropertySymbols;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-gops.js\n// module id = 73\n// module chunks = 0 1 2 3","exports.f = {}.propertyIsEnumerable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-pie.js\n// module id = 74\n// module chunks = 0 1 2 3","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/fn/object/keys.js\n// module id = 75\n// module chunks = 0 1 2 3","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.object.keys.js\n// module id = 76\n// module chunks = 0 1 2 3","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-sap.js\n// module id = 77\n// module chunks = 0 1 2 3","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nmodule.exports = require('../modules/_core').Promise;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/es6/promise.js\n// module id = 78\n// module chunks = 0 1 2 3","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.object.to-string.js\n// module id = 79\n// module chunks = 0 1 2 3","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.string.iterator.js\n// module id = 80\n// module chunks = 0 1 2 3","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_string-at.js\n// module id = 81\n// module chunks = 0 1 2 3","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-create.js\n// module id = 82\n// module chunks = 0 1 2 3","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-create.js\n// module id = 83\n// module chunks = 0 1 2 3","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-dps.js\n// module id = 84\n// module chunks = 0 1 2 3","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_object-gpo.js\n// module id = 85\n// module chunks = 0 1 2 3","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/web.dom.iterable.js\n// module id = 86\n// module chunks = 0 1 2 3","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.array.iterator.js\n// module id = 87\n// module chunks = 0 1 2 3","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_add-to-unscopables.js\n// module id = 88\n// module chunks = 0 1 2 3","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-step.js\n// module id = 89\n// module chunks = 0 1 2 3","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value);\n if (domain) domain.exit();\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/es6.promise.js\n// module id = 90\n// module chunks = 0 1 2 3","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_an-instance.js\n// module id = 91\n// module chunks = 0 1 2 3","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_for-of.js\n// module id = 92\n// module chunks = 0 1 2 3","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-call.js\n// module id = 93\n// module chunks = 0 1 2 3","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_is-array-iter.js\n// module id = 94\n// module chunks = 0 1 2 3","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/core.get-iterator-method.js\n// module id = 95\n// module chunks = 0 1 2 3","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_species-constructor.js\n// module id = 96\n// module chunks = 0 1 2 3","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_invoke.js\n// module id = 97\n// module chunks = 0 1 2 3","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n var promise = Promise.resolve();\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_microtask.js\n// module id = 98\n// module chunks = 0 1 2 3","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_perform.js\n// module id = 99\n// module chunks = 0 1 2 3","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_promise-resolve.js\n// module id = 100\n// module chunks = 0 1 2 3","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_redefine-all.js\n// module id = 101\n// module chunks = 0 1 2 3","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_set-species.js\n// module id = 102\n// module chunks = 0 1 2 3","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/modules/_iter-detect.js\n// module id = 103\n// module chunks = 0 1 2 3","import { TrackLib } from './tracklib';\n\n// Webpack doesn't export es6 default modules as UMD module.\n// Thats why the TrackLib is exported as commonjs module\nmodule.exports = TrackLib;\n\n\n\n// WEBPACK FOOTER //\n// ./src/index-umd.ts"],"sourceRoot":""}