{"version":3,"sources":["webpack:///./node_modules/@marvelapp/react-ab-test/lib/emitter.js","webpack:///./node_modules/@marvelapp/react-ab-test/index.js","webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js","webpack:///./node_modules/fbjs/lib/emptyFunction.js","webpack:///./node_modules/fbemitter/lib/EmitterSubscription.js","webpack:///./node_modules/fbjs/lib/invariant.js","webpack:///./node_modules/@marvelapp/react-ab-test/lib/Variant.js","webpack:///./node_modules/@marvelapp/react-ab-test/lib/Experiment.js","webpack:///./node_modules/@marvelapp/react-ab-test/lib/CoreExperiment.js","webpack:///./node_modules/fbjs/lib/warning.js","webpack:///./node_modules/fbemitter/index.js","webpack:///./node_modules/fbemitter/lib/BaseEventEmitter.js","webpack:///./node_modules/fbemitter/lib/EventSubscription.js","webpack:///./node_modules/fbemitter/lib/EventSubscriptionVendor.js","webpack:///./node_modules/fbjs/lib/crc32.js","webpack:///./node_modules/@marvelapp/react-ab-test/lib/debugger.js","webpack:///./node_modules/@marvelapp/react-ab-test/lib/helpers/mixpanel.js","webpack:///./node_modules/@marvelapp/react-ab-test/lib/helpers/segment.js"],"names":["Object","defineProperty","exports","value","_fbemitter","values","experiments","experimentWeights","activeExperiments","experimentsWithDefinedVariants","playedExperiments","emitter","EventEmitter","PushtellEventEmitter","prototype","emitWin","experimentName","Error","emit","_emitPlay","variantName","_resetPlayedExperiments","_reset","rewind","this","removeAllListeners","_incrementActiveExperiments","_decrementActiveExperiments","addActiveVariantListener","callback","addListener","_experimentName","passthrough","apply","arguments","eventName","once","addPlayListener","addWinListener","defineVariants","variantNames","variantWeights","variantsNamesMap","variantWeightsMap","forEach","Array","isArray","length","index","getSortedVariants","keys","sort","getSortedVariantWeights","map","getActiveExperiments","response","getActiveVariant","setActiveVariant","addExperimentVariant","error","type","_error","default","module","Experiment","Variant","experimentDebugger","mixpanelHelper","segmentHelper","canUseDOM","window","document","createElement","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","isInWorker","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","EmitterSubscription","_EventSubscription","subscriber","listener","context","instance","Constructor","TypeError","_classCallCheck","call","subClass","superClass","create","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","_inherits","condition","format","a","b","c","d","e","f","undefined","args","argIndex","replace","name","framesToPop","_createClass","defineProperties","target","props","i","descriptor","key","protoProps","staticProps","_react","_react2","_interopRequireDefault","_propTypes2","obj","__esModule","_possibleConstructorReturn","self","ReferenceError","_Component","getPrototypeOf","isValidElement","children","Component","propTypes","string","isRequired","displayName","_extends","assign","source","hasOwnProperty","_CoreExperiment2","_emitter2","_crc2","store","noopStore","getItem","setItem","localStorage","removeItem","skipSave","_ref","_temp","_this","_len","_key","concat","win","getSelectedVariant","variants","weights","weightSum","reduce","weightedIndex","userIdentifier","Math","abs","floor","random","selectedVariant","getLocalStorageValue","activeValue","storedValue","defaultVariantName","CoreExperiment","state","Children","element","nextProps","setState","_this2","valueSubscription","remove","oneOfType","func","warning","fbemitter","EventSubscriptionVendor","invariant","BaseEventEmitter","_subscriber","_currentSubscription","eventType","addSubscription","removeCurrentListener","removeAllSubscriptions","removeSubscription","listeners","subscriptions","getSubscriptionsForType","filter","subscription","ii","__emitToSubscription","slice","EventSubscription","_subscriptionsForType","push","subscriptionsForType","table","global","Int32Array","str","crc","len","charCodeAt","_reactDom2","_ExecutionEnvironment","isDebuggerAvailable","style","Debugger","visible","toggleVisibility","updateExperiments","activeSubscription","inactiveSubscription","experimentNames","className","onClick","bind","defaultChecked","setDebuggerAvailable","enable","addCSSRule","selector","rules","sheet","insertRule","addRule","appendChild","createTextNode","head","attachStyleSheet","body","getElementsByTagName","container","id","render","disable","removeChild","getElementById","unmountComponentAtNode","_emitter","playSubscription","winSubscription","mixpanel","track","analytics"],"mappings":"2FAEAA,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAGT,IAAIC,EAAa,EAAQ,KAErBC,EAAS,GACTC,EAAc,GACdC,EAAoB,GACpBC,EAAoB,GACpBC,EAAiC,GACjCC,EAAoB,GAEpBC,EAAU,IAAIP,EAAWQ,aAEzBC,EAAuB,aAE3BA,EAAqBC,UAAUC,QAAU,SAAUC,GACjD,GAA8B,kBAAnBA,EACT,MAAM,IAAIC,MAAM,gEAElBN,EAAQO,KAAK,MAAOF,EAAgBX,EAAOW,KAG7CH,EAAqBC,UAAUK,UAAY,SAAUH,EAAgBI,GACnE,GAA8B,kBAAnBJ,EACT,MAAM,IAAIC,MAAM,gEAElB,GAA2B,kBAAhBG,EACT,MAAM,IAAIH,MAAM,6DAEbP,EAAkBM,KACrBL,EAAQO,KAAK,OAAQF,EAAgBI,GACrCV,EAAkBM,IAAkB,IAIxCH,EAAqBC,UAAUO,wBAA0B,WACvDhB,EAAS,GACTK,EAAoB,IAGtBG,EAAqBC,UAAUQ,OAAS,WACtCjB,EAAS,GACTC,EAAc,GACdC,EAAoB,GACpBC,EAAoB,GACpBC,EAAiC,GACjCC,EAAoB,IAGtBG,EAAqBC,UAAUS,OAAS,WACtCC,KAAKF,SACLX,EAAQc,sBAGVZ,EAAqBC,UAAUY,4BAA8B,SAAUV,GACrER,EAAkBQ,GAAkBR,EAAkBQ,IAAmB,EACzER,EAAkBQ,IAAmB,EACrCL,EAAQO,KAAK,SAAUF,IAGzBH,EAAqBC,UAAUa,4BAA8B,SAAUX,GACrER,EAAkBQ,IAAmB,EACrCL,EAAQO,KAAK,WAAYF,IAG3BH,EAAqBC,UAAUc,yBAA2B,SAAUZ,EAAgBa,GAClF,MAA8B,oBAAnBb,GACTa,EAAWb,EACJL,EAAQmB,YAAY,kBAAkB,SAAUC,EAAiBX,EAAaY,GACnFH,EAASE,EAAiBX,EAAaY,OAGpCrB,EAAQmB,YAAY,kBAAkB,SAAUC,EAAiBX,EAAaY,GAC/ED,IAAoBf,GACtBa,EAASE,EAAiBX,EAAaY,OAK7CnB,EAAqBC,UAAUI,KAAO,WACpC,OAAOP,EAAQO,KAAKe,MAAMtB,EAASuB,YAGrCrB,EAAqBC,UAAUgB,YAAc,SAAUK,EAAWN,GAChE,OAAOlB,EAAQmB,YAAYK,EAAWN,IAGxChB,EAAqBC,UAAUsB,KAAO,SAAUD,EAAWN,GACzD,OAAOlB,EAAQyB,KAAKD,EAAWN,IAGjChB,EAAqBC,UAAUuB,gBAAkB,SAAUrB,EAAgBa,GACzE,MAA8B,oBAAnBb,GACTa,EAAWb,EACJL,EAAQmB,YAAY,QAAQ,SAAUC,EAAiBX,GAC5DS,EAASE,EAAiBX,OAGvBT,EAAQmB,YAAY,QAAQ,SAAUC,EAAiBX,GACxDW,IAAoBf,GACtBa,EAASE,EAAiBX,OAKhCP,EAAqBC,UAAUwB,eAAiB,SAAUtB,EAAgBa,GACxE,MAA8B,oBAAnBb,GACTa,EAAWb,EACJL,EAAQmB,YAAY,OAAO,SAAUC,EAAiBX,GAC3DS,EAASE,EAAiBX,OAGvBT,EAAQmB,YAAY,OAAO,SAAUC,EAAiBX,GACvDW,IAAoBf,GACtBa,EAASE,EAAiBX,OAKhCP,EAAqBC,UAAUyB,eAAiB,SAAUvB,EAAgBwB,EAAcC,GACtF,IAAIC,EAAmB,GACnBC,EAAoB,GAIxB,GAHAH,EAAaI,SAAQ,SAAUxB,GAC7BsB,EAAiBtB,IAAe,KAE9ByB,MAAMC,QAAQL,GAAiB,CACjC,GAAID,EAAaO,SAAWN,EAAeM,OACzC,MAAM,IAAI9B,MAAM,kHAElBuB,EAAaI,SAAQ,SAAUxB,EAAa4B,GAC1C,GAAqC,kBAA1BP,EAAeO,GACxB,MAAM,IAAI/B,MAAM,qEAElB0B,EAAkBvB,GAAeqB,EAAeO,WAGlDR,EAAaI,SAAQ,SAAUxB,EAAa4B,GAC1CL,EAAkBvB,GAAe,KAGrCb,EAAkBS,GAAkB2B,EACpCrC,EAAYU,GAAkB0B,EAC9BjC,EAA+BO,IAAkB,GAGnDH,EAAqBC,UAAUmC,kBAAoB,SAAUjC,GAC3D,IAAIwB,EAAexC,OAAOkD,KAAK5C,EAAYU,IAE3C,OADAwB,EAAaW,OACNX,GAGT3B,EAAqBC,UAAUsC,wBAA0B,SAAUpC,GACjE,OAAOQ,KAAKyB,kBAAkBjC,GAAgBqC,KAAI,SAAUjC,GAC1D,OAAOb,EAAkBS,GAAgBI,OAI7CP,EAAqBC,UAAUwC,qBAAuB,WACpD,IAAIC,EAAW,GAUf,OATAvD,OAAOkD,KAAK1C,GAAmBoC,SAAQ,SAAU5B,GACL,IAAtCR,EAAkBQ,KAGtBuC,EAASvC,GAAkB,GAC3BhB,OAAOkD,KAAK5C,EAAYU,IAAiB4B,SAAQ,SAAUxB,GACzDmC,EAASvC,GAAgBI,GAAef,EAAOW,KAAoBI,SAGhEmC,GAGT1C,EAAqBC,UAAU0C,iBAAmB,SAAUxC,GAC1D,OAAOX,EAAOW,IAGhBH,EAAqBC,UAAU2C,iBAAmB,SAAUzC,EAAgBI,EAAaY,GACvF3B,EAAOW,GAAkBI,EACzBT,EAAQO,KAAK,iBAAkBF,EAAgBI,EAAaY,IAG9DnB,EAAqBC,UAAU4C,qBAAuB,SAAU1C,EAAgBI,GAG9E,GAFAd,EAAYU,GAAkBV,EAAYU,IAAmB,GAC7DT,EAAkBS,GAAkBT,EAAkBS,IAAmB,IACxB,IAA7CV,EAAYU,GAAgBI,GAAuB,CACrD,GAAIX,EAA+BO,GAAiB,CAClD,IAAI2C,EAAQ,IAAI1C,MAAM,oBAAiBD,EAAiB,0DAExD,MADA2C,EAAMC,KAAO,2BACPD,EAER,GAAItD,EAAOW,GAAiB,CAC1B,IAAI6C,EAAS,IAAI5C,MAAM,oBAAiBD,EAAiB,iJAEzD,MADA6C,EAAOD,KAAO,2BACRC,EAERtD,EAAkBS,GAAgBI,GAAe,EAEnDd,EAAYU,GAAgBI,IAAe,GAG7ClB,EAAQ4D,QAAU,IAAIjD,G,oBC3MtBkD,EAAO7D,QAAU,CACf8D,WAAY,EAAQ,KAAoBF,QACxCG,QAAS,EAAQ,KAAiBH,QAClCnD,QAAS,EAAQ,KAAiBmD,QAClCI,mBAAoB,EAAQ,KAC5BC,eAAgB,EAAQ,KAA0BL,QAClDM,cAAe,EAAQ,KAAyBN,U,iCCIlD,IAAIO,IAAiC,qBAAXC,SAA0BA,OAAOC,WAAYD,OAAOC,SAASC,eAQnFC,EAAuB,CAEzBJ,UAAWA,EAEXK,cAAiC,qBAAXC,OAEtBC,qBAAsBP,MAAgBC,OAAOO,mBAAoBP,OAAOQ,aAExEC,eAAgBV,KAAeC,OAAOU,OAEtCC,YAAaZ,GAIfN,EAAO7D,QAAUuE,G,iCCrBjB,SAASS,EAAkBC,GACzB,OAAO,WACL,OAAOA,GASX,IAAIC,EAAgB,aAEpBA,EAAcC,YAAcH,EAC5BE,EAAcE,iBAAmBJ,GAAkB,GACnDE,EAAcG,gBAAkBL,GAAkB,GAClDE,EAAcI,gBAAkBN,EAAkB,MAClDE,EAAcK,gBAAkB,WAC9B,OAAOjE,MAET4D,EAAcM,oBAAsB,SAAUP,GAC5C,OAAOA,GAGTpB,EAAO7D,QAAUkF,G,iCCjBjB,IAMIO,EAAsB,SAAWC,GAYnC,SAASD,EAAoBE,EAAYC,EAAUC,IAtBrD,SAAyBC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAuB5GC,CAAgB3E,KAAMmE,GAEtBC,EAAmBQ,KAAK5E,KAAMqE,GAC9BrE,KAAKsE,SAAWA,EAChBtE,KAAKuE,QAAUA,EAGjB,OA5BF,SAAmBM,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIJ,UAAU,kEAAoEI,GAAeD,EAASvF,UAAYd,OAAOuG,OAAOD,GAAcA,EAAWxF,UAAW,CAAE0F,YAAa,CAAErG,MAAOkG,EAAUI,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeL,IAAYtG,OAAO4G,eAAiB5G,OAAO4G,eAAeP,EAAUC,GAAcD,EAASQ,UAAYP,GAS/dQ,CAAUnB,EAAqBC,GAmBxBD,EApBiB,CANF,EAAQ,MA6BhC5B,EAAO7D,QAAUyF,G,iCCKjB5B,EAAO7D,QArBP,SAAmB6G,EAAWC,EAAQC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,GAGnD,IAAKP,EAAW,CACd,IAAIpD,EACJ,QAAe4D,IAAXP,EACFrD,EAAQ,IAAI1C,MAAM,qIACb,CACL,IAAIuG,EAAO,CAACP,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,GACvBG,EAAW,GACf9D,EAAQ,IAAI1C,MAAM+F,EAAOU,QAAQ,OAAO,WACtC,OAAOF,EAAKC,UAERE,KAAO,sBAIf,MADAhE,EAAMiE,YAAc,EACdjE,K,iCC9CV3D,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAGT,IAAI0H,EAAe,WAAc,SAASC,EAAiBC,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAMjF,OAAQkF,IAAK,CAAE,IAAIC,EAAaF,EAAMC,GAAIC,EAAWzB,WAAayB,EAAWzB,aAAc,EAAOyB,EAAWvB,cAAe,EAAU,UAAWuB,IAAYA,EAAWxB,UAAW,GAAM1G,OAAOC,eAAe8H,EAAQG,EAAWC,IAAKD,IAAiB,OAAO,SAAUjC,EAAamC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiB7B,EAAYnF,UAAWsH,GAAiBC,GAAaP,EAAiB7B,EAAaoC,GAAqBpC,GAA7gB,GAEfqC,EAAS,EAAQ,GAEjBC,EAAUC,EAAuBF,GAIjCG,EAAcD,EAFD,EAAQ,IAIzB,SAASA,EAAuBE,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAE5E,QAAS4E,GAEvF,SAASvC,EAAgBH,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAEhH,SAAS0C,EAA2BC,EAAMzC,GAAQ,IAAKyC,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAO1C,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByC,EAAPzC,EAIlO,IAAInC,EAAU,SAAU8E,GAGtB,SAAS9E,IAGP,OAFAkC,EAAgB3E,KAAMyC,GAEf2E,EAA2BpH,MAAOyC,EAAQ4C,WAAa7G,OAAOgJ,eAAe/E,IAAUhC,MAAMT,KAAMU,YAkB5G,OA1BF,SAAmBmE,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIJ,UAAU,kEAAoEI,GAAeD,EAASvF,UAAYd,OAAOuG,OAAOD,GAAcA,EAAWxF,UAAW,CAAE0F,YAAa,CAAErG,MAAOkG,EAAUI,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeL,IAAYtG,OAAO4G,eAAiB5G,OAAO4G,eAAeP,EAAUC,GAAcD,EAASQ,UAAYP,GAG/dQ,CAAU7C,EAAS8E,GAQnBlB,EAAa5D,EAAS,CAAC,CACrBkE,IAAK,SACLhI,MAAO,WACL,OAAIoI,EAAQzE,QAAQmF,eAAezH,KAAKwG,MAAMkB,UACrC1H,KAAKwG,MAAMkB,SAEXX,EAAQzE,QAAQU,cACrB,OACA,KACAhD,KAAKwG,MAAMkB,cAMZjF,EAxBK,CAyBZqE,EAAOa,WAETlF,EAAQmF,UAAY,CAClBzB,KAAMc,EAAY3E,QAAQuF,OAAOC,YAEnCrF,EAAQsF,YAAc,mBACtBrJ,EAAQ4D,QAAUG,G,iCCrDlBjE,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAGT,IAAIqJ,EAAWxJ,OAAOyJ,QAAU,SAAU1B,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAI/F,UAAUa,OAAQkF,IAAK,CAAE,IAAIyB,EAASxH,UAAU+F,GAAI,IAAK,IAAIE,KAAOuB,EAAc1J,OAAOc,UAAU6I,eAAevD,KAAKsD,EAAQvB,KAAQJ,EAAOI,GAAOuB,EAAOvB,IAAY,OAAOJ,GAEnPF,EAAe,WAAc,SAASC,EAAiBC,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAMjF,OAAQkF,IAAK,CAAE,IAAIC,EAAaF,EAAMC,GAAIC,EAAWzB,WAAayB,EAAWzB,aAAc,EAAOyB,EAAWvB,cAAe,EAAU,UAAWuB,IAAYA,EAAWxB,UAAW,GAAM1G,OAAOC,eAAe8H,EAAQG,EAAWC,IAAKD,IAAiB,OAAO,SAAUjC,EAAamC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiB7B,EAAYnF,UAAWsH,GAAiBC,GAAaP,EAAiB7B,EAAaoC,GAAqBpC,GAA7gB,GAEfqC,EAAS,EAAQ,GAEjBC,EAAUC,EAAuBF,GAIjCG,EAAcD,EAFD,EAAQ,IAMrBoB,EAAmBpB,EAFD,EAAQ,MAM1BqB,EAAYrB,EAFD,EAAQ,MAMnBsB,EAAQtB,EAFD,EAAQ,MAInB,SAASA,EAAuBE,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAE5E,QAAS4E,GAEvF,SAASvC,EAAgBH,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAEhH,SAAS0C,EAA2BC,EAAMzC,GAAQ,IAAKyC,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAO1C,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByC,EAAPzC,EAIlO,IAAI2D,OAAQ,EAERC,EAAY,CACdC,QAAS,aACTC,QAAS,cAGX,GAAsB,qBAAX5F,QAA0B,iBAAkBA,OACrD,IACE,IAAI6D,EAAM,qBACV7D,OAAO6F,aAAaD,QAAQ/B,EAAKA,GAC7B7D,OAAO6F,aAAaF,QAAQ9B,KAASA,EACvC4B,EAAQC,GAER1F,OAAO6F,aAAaC,WAAWjC,GAC/B4B,EAAQzF,OAAO6F,cAEjB,MAAO9C,GACP0C,EAAQC,OAGVD,EAAQC,EAGVH,EAAU/F,QAAQlC,0BAAyB,SAAUZ,EAAgBI,EAAaiJ,GAC5EA,GAGJN,EAAMG,QAAQ,YAAclJ,EAAgBI,MAG9C,IAAI4C,EAAa,SAAU+E,GAGzB,SAAS/E,IACP,IAAIsG,EAEAC,EAAOC,EAEXrE,EAAgB3E,KAAMwC,GAEtB,IAAK,IAAIyG,EAAOvI,UAAUa,OAAQyE,EAAO3E,MAAM4H,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3ElD,EAAKkD,GAAQxI,UAAUwI,GAGzB,OAAeH,EAASC,EAAQ5B,EAA2BpH,MAAO8I,EAAOtG,EAAW6C,WAAa7G,OAAOgJ,eAAehF,IAAaoC,KAAKnE,MAAMqI,EAAM,CAAC9I,MAAMmJ,OAAOnD,KAAiBgD,EAAMI,IAAM,WAC9Lf,EAAU/F,QAAQ/C,QAAQyJ,EAAMxC,MAAML,OACrC6C,EAAMK,mBAAqB,WA6B5B,IAfA,IAAIC,EAAWjB,EAAU/F,QAAQb,kBAAkBuH,EAAMxC,MAAML,MAI3DoD,EAAUlB,EAAU/F,QAAQV,wBAAwBoH,EAAMxC,MAAML,MAEhEqD,EAAYD,EAAQE,QAAO,SAAUhE,EAAGC,GAC1C,OAAOD,EAAIC,IACV,GAECgE,EAAsD,kBAA/BV,EAAMxC,MAAMmD,eAA8BC,KAAKC,KAAI,EAAIvB,EAAMhG,SAAS0G,EAAMxC,MAAMmD,gBAAkBH,GAAaI,KAAKE,MAAMF,KAAKG,SAAWP,GAInKQ,EAAkBV,EAASA,EAAS/H,OAAS,GACxCC,EAAQ,EAAGA,EAAQ+H,EAAQhI,OAAQC,IAE1C,IADAkI,GAAiBH,EAAQ/H,IACL,EAAG,CACrBwI,EAAkBV,EAAS9H,GAC3B,MAIJ,OADA6G,EAAU/F,QAAQL,iBAAiB+G,EAAMxC,MAAML,KAAM6D,GAC9CA,GACNhB,EAAMiB,qBAAuB,WAC9B,GAA0C,kBAA/BjB,EAAMxC,MAAMmD,eACrB,OAAOX,EAAMK,qBAEf,IAAIa,EAAc7B,EAAU/F,QAAQN,iBAAiBgH,EAAMxC,MAAML,MACjE,GAA2B,kBAAhB+D,EACT,OAAOA,EAET,IAAIC,EAAc5B,EAAME,QAAQ,YAAcO,EAAMxC,MAAML,MAC1D,MAA2B,kBAAhBgE,GACT9B,EAAU/F,QAAQL,iBAAiB+G,EAAMxC,MAAML,KAAMgE,GAAa,GAC3DA,GAEqC,kBAAnCnB,EAAMxC,MAAM4D,oBACrB/B,EAAU/F,QAAQL,iBAAiB+G,EAAMxC,MAAML,KAAM6C,EAAMxC,MAAM4D,oBAC1DpB,EAAMxC,MAAM4D,oBAEdpB,EAAMK,sBACJjC,EAA2B4B,EAAnCD,GAUL,OAnHF,SAAmBlE,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIJ,UAAU,kEAAoEI,GAAeD,EAASvF,UAAYd,OAAOuG,OAAOD,GAAcA,EAAWxF,UAAW,CAAE0F,YAAa,CAAErG,MAAOkG,EAAUI,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeL,IAAYtG,OAAO4G,eAAiB5G,OAAO4G,eAAeP,EAAUC,GAAcD,EAASQ,UAAYP,GAkC/dQ,CAAU9C,EAAY+E,GA0EtBlB,EAAa7D,EAAY,CAAC,CACxBmE,IAAK,SACLhI,MAAO,WACL,OAAOoI,EAAQzE,QAAQU,cAAcoF,EAAiB9F,QAAS0F,EAAS,GAAIhI,KAAKwG,MAAO,CAAE7H,MAAOqB,KAAKiK,4BAInGzH,EAlFQ,CAmFfsE,EAAOa,WAETnF,EAAWoF,UAAY,CACrBzB,KAAMc,EAAY3E,QAAQuF,OAAOC,WACjCsC,mBAAoBnD,EAAY3E,QAAQuF,OACxC8B,eAAgB1C,EAAY3E,QAAQuF,QAEtCrF,EAAWuF,YAAc,sBACzBrJ,EAAQ4D,QAAUE,G,iCC9JlBhE,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAGT,IAAI0H,EAAe,WAAc,SAASC,EAAiBC,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAMjF,OAAQkF,IAAK,CAAE,IAAIC,EAAaF,EAAMC,GAAIC,EAAWzB,WAAayB,EAAWzB,aAAc,EAAOyB,EAAWvB,cAAe,EAAU,UAAWuB,IAAYA,EAAWxB,UAAW,GAAM1G,OAAOC,eAAe8H,EAAQG,EAAWC,IAAKD,IAAiB,OAAO,SAAUjC,EAAamC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiB7B,EAAYnF,UAAWsH,GAAiBC,GAAaP,EAAiB7B,EAAaoC,GAAqBpC,GAA7gB,GAEfqC,EAAS,EAAQ,GAEjBC,EAAUC,EAAuBF,GAIjCG,EAAcD,EAFD,EAAQ,IAUrBqB,GAJYrB,EAFD,EAAQ,MAMPA,EAFD,EAAQ,OAMPA,EAFD,EAAQ,MAIvB,SAASA,EAAuBE,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAE5E,QAAS4E,GAQvF,IAAImD,EAAiB,SAAU9C,GAG7B,SAAS8C,EAAe7D,IAT1B,SAAyBhC,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAU5GC,CAAgB3E,KAAMqK,GAEtB,IAAIrB,EAVR,SAAoC3B,EAAMzC,GAAQ,IAAKyC,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAO1C,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByC,EAAPzC,EAUlNwC,CAA2BpH,MAAOqK,EAAehF,WAAa7G,OAAOgJ,eAAe6C,IAAiBzF,KAAK5E,OAEtHgJ,EAAMI,IAAM,WACVf,EAAU/F,QAAQ/C,QAAQyJ,EAAMxC,MAAML,OAGxC6C,EAAMsB,MAAQ,GACdtB,EAAMjB,YAAc,0BAGpB,IAAIL,EAAW,GAYf,OAXAX,EAAQzE,QAAQiI,SAASnJ,QAAQoF,EAAMkB,UAAU,SAAU8C,GACzD,IAAKzD,EAAQzE,QAAQmF,eAAe+C,IAAyC,qBAA7BA,EAAQpI,KAAK2F,YAAoC,CAC/F,IAAI5F,EAAQ,IAAI1C,MAAM,qEAEtB,MADA0C,EAAMC,KAAO,yBACPD,EAERuF,EAAS8C,EAAQhE,MAAML,MAAQqE,EAC/BnC,EAAU/F,QAAQJ,qBAAqBsE,EAAML,KAAMqE,EAAQhE,MAAML,SAEnEkC,EAAU/F,QAAQ5C,KAAK,kBAAmB8G,EAAML,MAChD6C,EAAMsB,MAAMhB,SAAW5B,EAChBsB,EAsDT,OApFF,SAAmBnE,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIJ,UAAU,kEAAoEI,GAAeD,EAASvF,UAAYd,OAAOuG,OAAOD,GAAcA,EAAWxF,UAAW,CAAE0F,YAAa,CAAErG,MAAOkG,EAAUI,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeL,IAAYtG,OAAO4G,eAAiB5G,OAAO4G,eAAeP,EAAUC,GAAcD,EAASQ,UAAYP,GAG/dQ,CAAU+E,EAAgB9C,GA8B1BlB,EAAagE,EAAgB,CAAC,CAC5B1D,IAAK,4BACLhI,MAAO,SAAmC8L,GACxC,GAAIA,EAAU9L,QAAUqB,KAAKwG,MAAM7H,OAAS8L,EAAU/C,WAAa1H,KAAKwG,MAAMkB,SAAU,CACtF,IAAI/I,EAAmC,oBAApB8L,EAAU9L,MAAuB8L,EAAU9L,QAAU8L,EAAU9L,MAC9E+I,EAAW,GACfX,EAAQzE,QAAQiI,SAASnJ,QAAQqJ,EAAU/C,UAAU,SAAU8C,GAC7D9C,EAAS8C,EAAQhE,MAAML,MAAQqE,KAEjCxK,KAAK0K,SAAS,CACZ/L,MAAOA,EACP2K,SAAU5B,OAIf,CACDf,IAAK,qBACLhI,MAAO,WACL,IAAIgM,EAAS3K,KAETrB,EAAoC,oBAArBqB,KAAKwG,MAAM7H,MAAuBqB,KAAKwG,MAAM7H,QAAUqB,KAAKwG,MAAM7H,MAChFqB,KAAKsK,MAAMhB,SAAS3K,GAKzB0J,EAAU/F,QAAQpC,4BAA4BF,KAAKwG,MAAML,MACzDkC,EAAU/F,QAAQL,iBAAiBjC,KAAKwG,MAAML,KAAMxH,GACpD0J,EAAU/F,QAAQ3C,UAAUK,KAAKwG,MAAML,KAAMxH,GAC7CqB,KAAK0K,SAAS,CACZ/L,MAAOA,IAETqB,KAAK4K,kBAAoBvC,EAAU/F,QAAQlC,yBAAyBJ,KAAKwG,MAAML,MAAM,SAAU3G,EAAgBI,GAC7G+K,EAAOD,SAAS,CACd/L,MAAOiB,SAIZ,CACD+G,IAAK,uBACLhI,MAAO,WACL0J,EAAU/F,QAAQnC,4BAA4BH,KAAKwG,MAAML,MACzDnG,KAAK4K,kBAAkBC,WAExB,CACDlE,IAAK,SACLhI,MAAO,WACL,OAAOqB,KAAKsK,MAAMhB,SAAStJ,KAAKsK,MAAM3L,QAAU,SAI7C0L,EAlFY,CAmFnBvD,EAAOa,WAET0C,EAAezC,UAAY,CACzBzB,KAAMc,EAAY3E,QAAQuF,OAAOC,WACjCnJ,MAAOsI,EAAY3E,QAAQwI,UAAU,CAAC7D,EAAY3E,QAAQuF,OAAQZ,EAAY3E,QAAQyI,OAAOjD,YAE/FpJ,EAAQ4D,QAAU+H,G,iCCnHlB,IASIW,EATgB,EAAQ,KAmD5BzI,EAAO7D,QAAUsM,G,oBCpDjB,IAAIC,EAAY,CACd7L,aAAc,EAAQ,KACtB+E,oBAAsB,EAAQ,MAGhC5B,EAAO7D,QAAUuM,G,iCCEjB,IAAI9G,EAAsB,EAAQ,KAC9B+G,EAA0B,EAAQ,KAElCtH,EAAgB,EAAQ,KACxBuH,EAAY,EAAQ,KAgBpBC,EAAmB,WAKrB,SAASA,KA3BX,SAAyB5G,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCA4B5GC,CAAgB3E,KAAMoL,GAEtBpL,KAAKqL,YAAc,IAAIH,EACvBlL,KAAKsL,qBAAuB,KA8I9B,OA5HAF,EAAiB9L,UAAUgB,YAAc,SAAqBiL,EAAWjH,EAAUC,GACjF,OAAOvE,KAAKqL,YAAYG,gBAAgBD,EAAW,IAAIpH,EAAoBnE,KAAKqL,YAAa/G,EAAUC,KAczG6G,EAAiB9L,UAAUsB,KAAO,SAAc2K,EAAWjH,EAAUC,GACnE,IAAIpF,EAAUa,KACd,OAAOA,KAAKM,YAAYiL,GAAW,WACjCpM,EAAQsM,wBACRnH,EAAS7D,MAAM8D,EAAS7D,eAY5B0K,EAAiB9L,UAAUW,mBAAqB,SAA4BsL,GAC1EvL,KAAKqL,YAAYK,uBAAuBH,IAyB1CH,EAAiB9L,UAAUmM,sBAAwB,WAC9CzL,KAAKsL,sBAAgJH,GAAU,GAClKnL,KAAKqL,YAAYM,mBAAmB3L,KAAKsL,uBAW3CF,EAAiB9L,UAAUsM,UAAY,SAAmBL,GACxD,IAAIM,EAAgB7L,KAAKqL,YAAYS,wBAAwBP,GAC7D,OAAOM,EAAgBA,EAAcE,OAAOnI,EAAcG,iBAAiBlC,KAAI,SAAUmK,GACvF,OAAOA,EAAa1H,YACjB,IAkBP8G,EAAiB9L,UAAUI,KAAO,SAAc6L,GAC9C,IAAIM,EAAgB7L,KAAKqL,YAAYS,wBAAwBP,GAC7D,GAAIM,EAAe,CAEjB,IADA,IAAInK,EAAOlD,OAAOkD,KAAKmK,GACdI,EAAK,EAAGA,EAAKvK,EAAKH,OAAQ0K,IAAM,CACvC,IAAItF,EAAMjF,EAAKuK,GACXD,EAAeH,EAAclF,GAE7BqF,IACFhM,KAAKsL,qBAAuBU,EAC5BhM,KAAKkM,qBAAqBzL,MAAMT,KAAM,CAACgM,GAAc7C,OAAO9H,MAAM/B,UAAU6M,MAAMvH,KAAKlE,cAG3FV,KAAKsL,qBAAuB,OAchCF,EAAiB9L,UAAU4M,qBAAuB,SAA8BF,EAAcT,GAC5F,IAAIvF,EAAO3E,MAAM/B,UAAU6M,MAAMvH,KAAKlE,UAAW,GACjDsL,EAAa1H,SAAS7D,MAAMuL,EAAazH,QAASyB,IAG7CoF,EAvJc,GA0JvB7I,EAAO7D,QAAU0M,G,iCCzKjB,IAAIgB,EAAoB,WAOtB,SAASA,EAAkB/H,IAT7B,SAAyBG,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAU5GC,CAAgB3E,KAAMoM,GAEtBpM,KAAKqE,WAAaA,EAcpB,OAPA+H,EAAkB9M,UAAUuL,OAAS,WAC/B7K,KAAKqE,aACPrE,KAAKqE,WAAWsH,mBAAmB3L,MACnCA,KAAKqE,WAAa,OAIf+H,EAxBe,GA2BxB7J,EAAO7D,QAAU0N,G,iCChCjB,IAAIjB,EAAY,EAAQ,KAOpBD,EAA0B,WAC5B,SAASA,KAVX,SAAyB1G,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAW5GC,CAAgB3E,KAAMkL,GAEtBlL,KAAKqM,sBAAwB,GAC7BrM,KAAKsL,qBAAuB,KAuE9B,OA7DAJ,EAAwB5L,UAAUkM,gBAAkB,SAAyBD,EAAWS,GACpFA,EAAa3H,aAAerE,MAA6HmL,GAAU,GAChKnL,KAAKqM,sBAAsBd,KAC9BvL,KAAKqM,sBAAsBd,GAAa,IAE1C,IAAI5E,EAAM3G,KAAKqM,sBAAsBd,GAAWhK,OAIhD,OAHAvB,KAAKqM,sBAAsBd,GAAWe,KAAKN,GAC3CA,EAAaT,UAAYA,EACzBS,EAAarF,IAAMA,EACZqF,GAUTd,EAAwB5L,UAAUoM,uBAAyB,SAAgCH,QACvExF,IAAdwF,EACFvL,KAAKqM,sBAAwB,UAEtBrM,KAAKqM,sBAAsBd,IAWtCL,EAAwB5L,UAAUqM,mBAAqB,SAA4BK,GACjF,IAAIT,EAAYS,EAAaT,UACzB5E,EAAMqF,EAAarF,IAEnB4F,EAAuBvM,KAAKqM,sBAAsBd,GAClDgB,UACKA,EAAqB5F,IAiBhCuE,EAAwB5L,UAAUwM,wBAA0B,SAAiCP,GAC3F,OAAOvL,KAAKqM,sBAAsBd,IAG7BL,EA5EqB,GA+E9B3I,EAAO7D,QAAUwM,G,kCCtGjB,YAoBA,IAAIsB,EAAQ,CAAC,EAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,SAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,UAAY,WAAY,WAAY,WAAY,gBAEv+FzG,IAAtB0G,EAAOC,aACTF,EAAQ,IAAIE,WAAWF,IAGzBjK,EAAO7D,QAfP,SAAeiO,GAGb,IADA,IAAIC,GAAO,EACFnG,EAAI,EAAGoG,EAAMF,EAAIpL,OAAQkF,EAAIoG,EAAKpG,IACzCmG,EAAMA,IAAQ,EAAIJ,EAAkC,KAA3BI,EAAMD,EAAIG,WAAWrG,KAEhD,OAAQmG,K,mDCfV,IAAIvG,EAAe,WAAc,SAASC,EAAiBC,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAMjF,OAAQkF,IAAK,CAAE,IAAIC,EAAaF,EAAMC,GAAIC,EAAWzB,WAAayB,EAAWzB,aAAc,EAAOyB,EAAWvB,cAAe,EAAU,UAAWuB,IAAYA,EAAWxB,UAAW,GAAM1G,OAAOC,eAAe8H,EAAQG,EAAWC,IAAKD,IAAiB,OAAO,SAAUjC,EAAamC,EAAYC,GAAiJ,OAA9HD,GAAYN,EAAiB7B,EAAYnF,UAAWsH,GAAiBC,GAAaP,EAAiB7B,EAAaoC,GAAqBpC,GAA7gB,GAEfqC,EAAS,EAAQ,GAEjBC,EAAUC,EAAuBF,GAIjCiG,EAAa/F,EAFD,EAAQ,KAMpBqB,EAAYrB,EAFD,EAAQ,MAInBgG,EAAwB,EAAQ,KAEpC,SAAShG,EAAuBE,GAAO,OAAOA,GAAOA,EAAIC,WAAaD,EAAM,CAAE5E,QAAS4E,GAEvF,SAASvC,EAAgBH,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAEhH,SAAS0C,EAA2BC,EAAMzC,GAAQ,IAAKyC,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAO1C,GAAyB,kBAATA,GAAqC,oBAATA,EAA8ByC,EAAPzC,EAIlO,IAAIqI,GAAsB,EAEtBC,EAAQ,KAsEZ,IAAIC,EAAW,SAAU5F,GAGvB,SAAS4F,IACP,IAAIrE,EAEAC,EAAOC,EAEXrE,EAAgB3E,KAAMmN,GAEtB,IAAK,IAAIlE,EAAOvI,UAAUa,OAAQyE,EAAO3E,MAAM4H,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3ElD,EAAKkD,GAAQxI,UAAUwI,GAGzB,OAAeH,EAASC,EAAQ5B,EAA2BpH,MAAO8I,EAAOqE,EAAS9H,WAAa7G,OAAOgJ,eAAe2F,IAAWvI,KAAKnE,MAAMqI,EAAM,CAAC9I,MAAMmJ,OAAOnD,KAAiBgD,EAAMsB,MAAQ,CAC5LxL,YAAauJ,EAAU/F,QAAQR,uBAC/BsL,SAAS,GACRpE,EAAMqE,iBAAmB,WAC1BrE,EAAM0B,SAAS,CACb0C,SAAUpE,EAAMsB,MAAM8C,WAEvBpE,EAAMsE,kBAAoB,WAC3BtE,EAAM0B,SAAS,CACb5L,YAAauJ,EAAU/F,QAAQR,0BAExBsF,EAA2B4B,EAAnCD,GAsFL,OAzLF,SAAmBlE,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAIJ,UAAU,kEAAoEI,GAAeD,EAASvF,UAAYd,OAAOuG,OAAOD,GAAcA,EAAWxF,UAAW,CAAE0F,YAAa,CAAErG,MAAOkG,EAAUI,YAAY,EAAOC,UAAU,EAAMC,cAAc,KAAeL,IAAYtG,OAAO4G,eAAiB5G,OAAO4G,eAAeP,EAAUC,GAAcD,EAASQ,UAAYP,GA2E/dQ,CAAU6H,EAAU5F,GA2BpBlB,EAAa8G,EAAU,CAAC,CACtBxG,IAAK,mBACLhI,MAAO,SAA0Ba,EAAgBI,GAC/CyI,EAAU/F,QAAQL,iBAAiBzC,EAAgBI,KAEpD,CACD+G,IAAK,qBACLhI,MAAO,WACLqB,KAAKuN,mBAAqBlF,EAAU/F,QAAQhC,YAAY,SAAUN,KAAKsN,mBACvEtN,KAAKwN,qBAAuBnF,EAAU/F,QAAQhC,YAAY,WAAYN,KAAKsN,qBAE5E,CACD3G,IAAK,uBACLhI,MAAO,WACLqB,KAAKuN,mBAAmB1C,SACxB7K,KAAKwN,qBAAqB3C,WAE3B,CACDlE,IAAK,SACLhI,MAAO,WACL,IAAIgM,EAAS3K,KAETyN,EAAkBjP,OAAOkD,KAAK1B,KAAKsK,MAAMxL,aAC7C,OAAIkB,KAAKsK,MAAM8C,QACNrG,EAAQzE,QAAQU,cACrB,MACA,CAAE0K,UAAW,qCACb3G,EAAQzE,QAAQU,cACd,MACA,CAAE0K,UAAW,iBAAkBC,QAAS3N,KAAKqN,kBAC7C,QAEFI,EAAgB5L,KAAI,SAAUrC,GAC5B,IAAIwB,EAAexC,OAAOkD,KAAKiJ,EAAOL,MAAMxL,YAAYU,IACxD,GAA4B,IAAxBwB,EAAaO,OAGjB,OAAOwF,EAAQzE,QAAQU,cACrB,MACA,CAAE0K,UAAW,sBAAuB/G,IAAKnH,GACzCuH,EAAQzE,QAAQU,cACd,MACA,CAAE0K,UAAW,4BACblO,GAEFuH,EAAQzE,QAAQU,cACd,KACA,KACAhC,EAAaa,KAAI,SAAUjC,GACzB,OAAOmH,EAAQzE,QAAQU,cACrB,KACA,CAAE2D,IAAK/G,GACPmH,EAAQzE,QAAQU,cACd,QACA,CAAE0K,UAAW/C,EAAOL,MAAMxL,YAAYU,GAAgBI,GAAe,SAAW,KAAM+N,QAAShD,EAAO1I,iBAAiB2L,KAAKjD,EAAQnL,EAAgBI,IACpJmH,EAAQzE,QAAQU,cAAc,QAAS,CAAEZ,KAAM,QAAS+D,KAAM3G,EAAgBb,MAAOiB,EAAaiO,eAAgBlD,EAAOL,MAAMxL,YAAYU,GAAgBI,KAC3JA,YAOZmH,EAAQzE,QAAQU,cACd,MACA,CAAE0K,UAAW,kCACb,+CAGKD,EAAgBlM,OAAS,EAC3BwF,EAAQzE,QAAQU,cACrB,MACA,CAAE0K,UAAW,qCAAsCC,QAAS3N,KAAKqN,kBACjEI,EAAgBlM,OAChB,qBACAkM,EAAgBlM,OAAS,EAAI,IAAM,IAG9B,SAKN4L,EA/GM,CAgHbrG,EAAOa,WAETpF,EAAO7D,QAAU,CACfoP,qBAAsB,SAA8BnP,GAClDsO,EAAsBtO,GAExBoP,OAAQ,WACN,GAAKd,GAAwBD,EAAsBnK,UAAnD,EA5LJ,WAIE,SAASmL,EAAWC,EAAUC,GACxB,eAAgBhB,EAAMiB,MACxBjB,EAAMiB,MAAMC,WAAWH,EAAW,IAAMC,EAAQ,IAAK,GAC5C,YAAahB,EAAMiB,OAC5BjB,EAAMiB,MAAME,QAAQJ,EAAUC,EAAO,IAPzChB,EAAQnK,SAASC,cAAc,UACzBsL,YAAYvL,SAASwL,eAAe,KAC1CxL,SAASyL,KAAKF,YAAYpB,GAQ1Bc,EAAW,qBAAsB,kBACjCA,EAAW,qBAAsB,mBACjCA,EAAW,qBAAsB,+BACjCA,EAAW,qBAAsB,aACjCA,EAAW,qBAAsB,aACjCA,EAAW,wBAAyB,aACpCA,EAAW,wBAAyB,uBACpCA,EAAW,wBAAyB,aACpCA,EAAW,wBAAyB,cACpCA,EAAW,wBAAyB,mBACpCA,EAAW,wBAAyB,qBACpCA,EAAW,2BAA4B,eACvCA,EAAW,2BAA4B,sBACvCA,EAAW,2BAA4B,cACvCA,EAAW,2BAA4B,mBACvCA,EAAW,2BAA4B,kBACvCA,EAAW,2BAA4B,sBACvCA,EAAW,2BAA4B,mBACvCA,EAAW,2BAA4B,uBACvCA,EAAW,kCAAmC,kBAC9CA,EAAW,+CAAgD,mBAC3DA,EAAW,+CAAgD,kBAC3DA,EAAW,+CAAgD,sBAC3DA,EAAW,qDAAsD,mBACjEA,EAAW,qDAAsD,kBACjEA,EAAW,qDAAsD,sBACjEA,EAAW,qDAAsD,8BACjEA,EAAW,qDAAsD,iCACjEA,EAAW,qDAAsD,+BACjEA,EAAW,sCAAuC,mBAClDA,EAAW,sCAAuC,8BAClDA,EAAW,qCAAsC,+BACjDA,EAAW,yCAA0C,mBACrDA,EAAW,yCAA0C,6BACrDA,EAAW,yCAA0C,kBACrDA,EAAW,yCAA0C,4CACrDA,EAAW,yCAA0C,iCACrDA,EAAW,yCAA0C,kCACrDA,EAAW,yCAA0C,mCACrDA,EAAW,yCAA0C,+BACrDA,EAAW,yCAA0C,gCACrDA,EAAW,qCAAsC,mBACjDA,EAAW,qCAAsC,mBACjDA,EAAW,qCAAsC,qBACjDA,EAAW,qCAAsC,kBACjDA,EAAW,qCAAsC,sBACjDA,EAAW,qCAAsC,YACjDA,EAAW,qCAAsC,cACjDA,EAAW,2CAA4C,kBACvDA,EAAW,+DAAgE,wBAoIzES,GACA,IAAIC,EAAO3L,SAAS4L,qBAAqB,QAAQ,GAC7CC,EAAY7L,SAASC,cAAc,OACvC4L,EAAUC,GAAK,oBACfH,EAAKJ,YAAYM,GACjB7B,EAAWzK,QAAQwM,OAAO/H,EAAQzE,QAAQU,cAAcmK,EAAU,MAAOyB,KAE3EG,QAAS,WACP,GAAK9B,GAAwBD,EAAsBnK,UAAnD,CAzIY,OAAVqK,IACFnK,SAASyL,KAAKQ,YAAY9B,GAC1BA,EAAQ,MA4IR,IAAIwB,EAAO3L,SAAS4L,qBAAqB,QAAQ,GAC7CC,EAAY7L,SAASkM,eAAe,qBACpCL,IACF7B,EAAWzK,QAAQ4M,uBAAuBN,GAC1CF,EAAKM,YAAYJ,Q,iCC5OvBpQ,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAGT,IAMgCuI,EAN5BiI,EAAW,EAAQ,KAEnB9G,GAI4BnB,EAJOiI,IAIcjI,EAAIC,WAAaD,EAAM,CAAE5E,QAAS4E,GAFnF8F,EAAwB,EAAQ,KAIpC,IAAIoC,OAAmB,EACnBC,OAAkB,EAEtB3Q,EAAQ4D,QAAU,CAChByL,OAAQ,WACN,GAAIf,EAAsBnK,UAAW,CACnC,GAAwB,qBAAbyM,SAA0B,CACnC,IAAInN,EAAQ,IAAI1C,MAAM,qEAEtB,MADA0C,EAAMC,KAAO,iCACPD,EAERiN,EAAmB/G,EAAU/F,QAAQzB,iBAAgB,SAAUrB,EAAgBI,GAC7E0P,SAASC,MAAM,kBAAmB,CAChC,WAAc/P,EACd,QAAWI,IACV,WACDyI,EAAU/F,QAAQ5C,KAAK,gBAAiBF,EAAgBI,SAG5DyP,EAAkBhH,EAAU/F,QAAQxB,gBAAe,SAAUtB,EAAgBI,GAC3E0P,SAASC,MAAM,iBAAkB,CAC/B,WAAc/P,EACd,QAAWI,IACV,WACDyI,EAAU/F,QAAQ5C,KAAK,eAAgBF,EAAgBI,WAK/DmP,QAAS,WACP,GAAI/B,EAAsBnK,UAAW,CACnC,IAAKuM,IAAqBC,EAAiB,CACzC,IAAIlN,EAAQ,IAAI1C,MAAM,2DAEtB,MADA0C,EAAMC,KAAO,kCACPD,EAERiN,EAAiBvE,SACjBwE,EAAgBxE,a,iCCjDtBrM,OAAOC,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAGT,IAMgCuI,EAN5BiI,EAAW,EAAQ,KAEnB9G,GAI4BnB,EAJOiI,IAIcjI,EAAIC,WAAaD,EAAM,CAAE5E,QAAS4E,GAFnF8F,EAAwB,EAAQ,KAIpC,IAAIoC,OAAmB,EACnBC,OAAkB,EAEtB3Q,EAAQ4D,QAAU,CAChByL,OAAQ,WACN,GAAIf,EAAsBnK,UAAW,CACnC,GAAyB,qBAAd2M,UAA2B,CACpC,IAAIrN,EAAQ,IAAI1C,MAAM,qEAEtB,MADA0C,EAAMC,KAAO,iCACPD,EAERiN,EAAmB/G,EAAU/F,QAAQzB,iBAAgB,SAAUrB,EAAgBI,GAC7E4P,UAAUD,MAAM,oBAAqB,CACnC,eAAkB/P,EAClB,cAAiBI,IAChB,WACDyI,EAAU/F,QAAQ5C,KAAK,eAAgBF,EAAgBI,SAG3DyP,EAAkBhH,EAAU/F,QAAQxB,gBAAe,SAAUtB,EAAgBI,GAC3E4P,UAAUD,MAAM,iBAAkB,CAChC,eAAkB/P,EAClB,cAAiBI,IAChB,WACDyI,EAAU/F,QAAQ5C,KAAK,cAAeF,EAAgBI,WAK9DmP,QAAS,WACP,GAAI/B,EAAsBnK,UAAW,CACnC,IAAKuM,IAAqBC,EAAiB,CACzC,IAAIlN,EAAQ,IAAI1C,MAAM,0DAEtB,MADA0C,EAAMC,KAAO,kCACPD,EAERiN,EAAiBvE,SACjBwE,EAAgBxE","file":"js/12-45375a9c04f3cc1122dd.chunk.js","sourcesContent":["'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _fbemitter = require('fbemitter');\n\nvar values = {};\nvar experiments = {};\nvar experimentWeights = {};\nvar activeExperiments = {};\nvar experimentsWithDefinedVariants = {};\nvar playedExperiments = {};\n\nvar emitter = new _fbemitter.EventEmitter();\n\nvar PushtellEventEmitter = function PushtellEventEmitter() {};\n\nPushtellEventEmitter.prototype.emitWin = function (experimentName) {\n if (typeof experimentName !== 'string') {\n throw new Error(\"Required argument 'experimentName' should have type 'string'\");\n }\n emitter.emit(\"win\", experimentName, values[experimentName]);\n};\n\nPushtellEventEmitter.prototype._emitPlay = function (experimentName, variantName) {\n if (typeof experimentName !== 'string') {\n throw new Error(\"Required argument 'experimentName' should have type 'string'\");\n }\n if (typeof variantName !== 'string') {\n throw new Error(\"Required argument 'variantName' should have type 'string'\");\n }\n if (!playedExperiments[experimentName]) {\n emitter.emit('play', experimentName, variantName);\n playedExperiments[experimentName] = true;\n }\n};\n\nPushtellEventEmitter.prototype._resetPlayedExperiments = function () {\n values = {};\n playedExperiments = {};\n};\n\nPushtellEventEmitter.prototype._reset = function () {\n values = {};\n experiments = {};\n experimentWeights = {};\n activeExperiments = {};\n experimentsWithDefinedVariants = {};\n playedExperiments = {};\n};\n\nPushtellEventEmitter.prototype.rewind = function () {\n this._reset();\n emitter.removeAllListeners();\n};\n\nPushtellEventEmitter.prototype._incrementActiveExperiments = function (experimentName) {\n activeExperiments[experimentName] = activeExperiments[experimentName] || 0;\n activeExperiments[experimentName] += 1;\n emitter.emit(\"active\", experimentName);\n};\n\nPushtellEventEmitter.prototype._decrementActiveExperiments = function (experimentName) {\n activeExperiments[experimentName] -= 1;\n emitter.emit(\"inactive\", experimentName);\n};\n\nPushtellEventEmitter.prototype.addActiveVariantListener = function (experimentName, callback) {\n if (typeof experimentName === \"function\") {\n callback = experimentName;\n return emitter.addListener(\"active-variant\", function (_experimentName, variantName, passthrough) {\n callback(_experimentName, variantName, passthrough);\n });\n }\n return emitter.addListener(\"active-variant\", function (_experimentName, variantName, passthrough) {\n if (_experimentName === experimentName) {\n callback(_experimentName, variantName, passthrough);\n }\n });\n};\n\nPushtellEventEmitter.prototype.emit = function () {\n return emitter.emit.apply(emitter, arguments);\n};\n\nPushtellEventEmitter.prototype.addListener = function (eventName, callback) {\n return emitter.addListener(eventName, callback);\n};\n\nPushtellEventEmitter.prototype.once = function (eventName, callback) {\n return emitter.once(eventName, callback);\n};\n\nPushtellEventEmitter.prototype.addPlayListener = function (experimentName, callback) {\n if (typeof experimentName === \"function\") {\n callback = experimentName;\n return emitter.addListener('play', function (_experimentName, variantName) {\n callback(_experimentName, variantName);\n });\n }\n return emitter.addListener('play', function (_experimentName, variantName) {\n if (_experimentName === experimentName) {\n callback(_experimentName, variantName);\n }\n });\n};\n\nPushtellEventEmitter.prototype.addWinListener = function (experimentName, callback) {\n if (typeof experimentName === \"function\") {\n callback = experimentName;\n return emitter.addListener('win', function (_experimentName, variantName) {\n callback(_experimentName, variantName);\n });\n }\n return emitter.addListener('win', function (_experimentName, variantName) {\n if (_experimentName === experimentName) {\n callback(_experimentName, variantName);\n }\n });\n};\n\nPushtellEventEmitter.prototype.defineVariants = function (experimentName, variantNames, variantWeights) {\n var variantsNamesMap = {};\n var variantWeightsMap = {};\n variantNames.forEach(function (variantName) {\n variantsNamesMap[variantName] = true;\n });\n if (Array.isArray(variantWeights)) {\n if (variantNames.length !== variantWeights.length) {\n throw new Error(\"Required argument 'variantNames' should have the same number of elements as optional argument 'variantWeights'\");\n }\n variantNames.forEach(function (variantName, index) {\n if (typeof variantWeights[index] !== 'number') {\n throw new Error(\"Optional argument 'variantWeights' should be an array of numbers.\");\n }\n variantWeightsMap[variantName] = variantWeights[index];\n });\n } else {\n variantNames.forEach(function (variantName, index) {\n variantWeightsMap[variantName] = 1;\n });\n }\n experimentWeights[experimentName] = variantWeightsMap;\n experiments[experimentName] = variantsNamesMap;\n experimentsWithDefinedVariants[experimentName] = true;\n};\n\nPushtellEventEmitter.prototype.getSortedVariants = function (experimentName) {\n var variantNames = Object.keys(experiments[experimentName]);\n variantNames.sort();\n return variantNames;\n};\n\nPushtellEventEmitter.prototype.getSortedVariantWeights = function (experimentName) {\n return this.getSortedVariants(experimentName).map(function (variantName) {\n return experimentWeights[experimentName][variantName];\n });\n};\n\nPushtellEventEmitter.prototype.getActiveExperiments = function () {\n var response = {};\n Object.keys(activeExperiments).forEach(function (experimentName) {\n if (activeExperiments[experimentName] === 0) {\n return;\n }\n response[experimentName] = {};\n Object.keys(experiments[experimentName]).forEach(function (variantName) {\n response[experimentName][variantName] = values[experimentName] === variantName;\n });\n });\n return response;\n};\n\nPushtellEventEmitter.prototype.getActiveVariant = function (experimentName) {\n return values[experimentName];\n};\n\nPushtellEventEmitter.prototype.setActiveVariant = function (experimentName, variantName, passthrough) {\n values[experimentName] = variantName;\n emitter.emit(\"active-variant\", experimentName, variantName, passthrough);\n};\n\nPushtellEventEmitter.prototype.addExperimentVariant = function (experimentName, variantName) {\n experiments[experimentName] = experiments[experimentName] || {};\n experimentWeights[experimentName] = experimentWeights[experimentName] || {};\n if (experiments[experimentName][variantName] !== true) {\n if (experimentsWithDefinedVariants[experimentName]) {\n var error = new Error(\"Experiment “\" + experimentName + \"” added new variants after variants were defined.\");\n error.type = \"PUSHTELL_INVALID_VARIANT\";\n throw error;\n }\n if (values[experimentName]) {\n var _error = new Error(\"Experiment “\" + experimentName + \"” added new variants after a variant was selected. Declare the variant names using emitter.defineVariants(experimentName, variantNames).\");\n _error.type = \"PUSHTELL_INVALID_VARIANT\";\n throw _error;\n }\n experimentWeights[experimentName][variantName] = 1;\n }\n experiments[experimentName][variantName] = true;\n};\n\nexports.default = new PushtellEventEmitter();\n;","module.exports = {\n Experiment: require('./lib/Experiment').default,\n Variant: require('./lib/Variant').default,\n emitter: require('./lib/emitter').default,\n experimentDebugger: require('./lib/debugger'),\n mixpanelHelper: require('./lib/helpers/mixpanel').default,\n segmentHelper: require('./lib/helpers/segment').default,\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\nvar ExecutionEnvironment = {\n\n canUseDOM: canUseDOM,\n\n canUseWorkers: typeof Worker !== 'undefined',\n\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n\n canUseViewport: canUseDOM && !!window.screen,\n\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\n\nmodule.exports = ExecutionEnvironment;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n * \n * @providesModule EmitterSubscription\n * @typechecks\n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar EventSubscription = require('./EventSubscription');\n\n/**\n * EmitterSubscription represents a subscription with listener and context data.\n */\n\nvar EmitterSubscription = (function (_EventSubscription) {\n _inherits(EmitterSubscription, _EventSubscription);\n\n /**\n * @param {EventSubscriptionVendor} subscriber - The subscriber that controls\n * this subscription\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n\n function EmitterSubscription(subscriber, listener, context) {\n _classCallCheck(this, EmitterSubscription);\n\n _EventSubscription.call(this, subscriber);\n this.listener = listener;\n this.context = context;\n }\n\n return EmitterSubscription;\n})(EventSubscription);\n\nmodule.exports = EmitterSubscription;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Variant = function (_Component) {\n _inherits(Variant, _Component);\n\n function Variant() {\n _classCallCheck(this, Variant);\n\n return _possibleConstructorReturn(this, (Variant.__proto__ || Object.getPrototypeOf(Variant)).apply(this, arguments));\n }\n\n _createClass(Variant, [{\n key: 'render',\n value: function render() {\n if (_react2.default.isValidElement(this.props.children)) {\n return this.props.children;\n } else {\n return _react2.default.createElement(\n 'span',\n null,\n this.props.children\n );\n }\n }\n }]);\n\n return Variant;\n}(_react.Component);\n\nVariant.propTypes = {\n name: _propTypes2.default.string.isRequired\n};\nVariant.displayName = \"Pushtell.Variant\";\nexports.default = Variant;\n;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _CoreExperiment = require(\"./CoreExperiment\");\n\nvar _CoreExperiment2 = _interopRequireDefault(_CoreExperiment);\n\nvar _emitter = require(\"./emitter\");\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _crc = require(\"fbjs/lib/crc32\");\n\nvar _crc2 = _interopRequireDefault(_crc);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar store = void 0;\n\nvar noopStore = {\n getItem: function getItem() {},\n setItem: function setItem() {}\n};\n\nif (typeof window !== 'undefined' && 'localStorage' in window) {\n try {\n var key = '__pushtell_react__';\n window.localStorage.setItem(key, key);\n if (window.localStorage.getItem(key) !== key) {\n store = noopStore;\n } else {\n window.localStorage.removeItem(key);\n store = window.localStorage;\n }\n } catch (e) {\n store = noopStore;\n }\n} else {\n store = noopStore;\n}\n\n_emitter2.default.addActiveVariantListener(function (experimentName, variantName, skipSave) {\n if (skipSave) {\n return;\n }\n store.setItem('PUSHTELL-' + experimentName, variantName);\n});\n\nvar Experiment = function (_Component) {\n _inherits(Experiment, _Component);\n\n function Experiment() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Experiment);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Experiment.__proto__ || Object.getPrototypeOf(Experiment)).call.apply(_ref, [this].concat(args))), _this), _this.win = function () {\n _emitter2.default.emitWin(_this.props.name);\n }, _this.getSelectedVariant = function () {\n /*\n Choosing a weighted variant:\n For C, A, B with weights 2, 4, 8\n variants = A, B, C\n weights = 4, 8, 2\n weightSum = 14\n weightedIndex = 9\n AAAABBBBBBBBCC\n ========^\n Select B\n */\n\n // Sorted array of the variant names, example: [\"A\", \"B\", \"C\"]\n var variants = _emitter2.default.getSortedVariants(_this.props.name);\n // Array of the variant weights, also sorted by variant name. For example, if\n // variant C had weight 2, variant A had weight 4, and variant B had weight 8\n // return [4, 8, 2] to correspond with [\"A\", \"B\", \"C\"]\n var weights = _emitter2.default.getSortedVariantWeights(_this.props.name);\n // Sum the weights\n var weightSum = weights.reduce(function (a, b) {\n return a + b;\n }, 0);\n // A random number between 0 and weightSum\n var weightedIndex = typeof _this.props.userIdentifier === 'string' ? Math.abs((0, _crc2.default)(_this.props.userIdentifier) % weightSum) : Math.floor(Math.random() * weightSum);\n // Iterate through the sorted weights, and deduct each from the weightedIndex.\n // If weightedIndex drops < 0, select the variant. If weightedIndex does not\n // drop < 0, default to the last variant in the array that is initially assigned.\n var selectedVariant = variants[variants.length - 1];\n for (var index = 0; index < weights.length; index++) {\n weightedIndex -= weights[index];\n if (weightedIndex < 0) {\n selectedVariant = variants[index];\n break;\n }\n }\n _emitter2.default.setActiveVariant(_this.props.name, selectedVariant);\n return selectedVariant;\n }, _this.getLocalStorageValue = function () {\n if (typeof _this.props.userIdentifier === \"string\") {\n return _this.getSelectedVariant();\n }\n var activeValue = _emitter2.default.getActiveVariant(_this.props.name);\n if (typeof activeValue === \"string\") {\n return activeValue;\n }\n var storedValue = store.getItem('PUSHTELL-' + _this.props.name);\n if (typeof storedValue === \"string\") {\n _emitter2.default.setActiveVariant(_this.props.name, storedValue, true);\n return storedValue;\n }\n if (typeof _this.props.defaultVariantName === 'string') {\n _emitter2.default.setActiveVariant(_this.props.name, _this.props.defaultVariantName);\n return _this.props.defaultVariantName;\n }\n return _this.getSelectedVariant();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Experiment, [{\n key: \"render\",\n value: function render() {\n return _react2.default.createElement(_CoreExperiment2.default, _extends({}, this.props, { value: this.getLocalStorageValue }));\n }\n }]);\n\n return Experiment;\n}(_react.Component);\n\nExperiment.propTypes = {\n name: _propTypes2.default.string.isRequired,\n defaultVariantName: _propTypes2.default.string,\n userIdentifier: _propTypes2.default.string\n};\nExperiment.displayName = \"Pushtell.Experiment\";\nexports.default = Experiment;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _warning = require('fbjs/lib/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _emitter = require('./emitter');\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _Variant = require('./Variant');\n\nvar _Variant2 = _interopRequireDefault(_Variant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar CoreExperiment = function (_Component) {\n _inherits(CoreExperiment, _Component);\n\n function CoreExperiment(props) {\n _classCallCheck(this, CoreExperiment);\n\n var _this = _possibleConstructorReturn(this, (CoreExperiment.__proto__ || Object.getPrototypeOf(CoreExperiment)).call(this));\n\n _this.win = function () {\n _emitter2.default.emitWin(_this.props.name);\n };\n\n _this.state = {};\n _this.displayName = \"Pushtell.CoreExperiment\";\n\n\n var children = {};\n _react2.default.Children.forEach(props.children, function (element) {\n if (!_react2.default.isValidElement(element) || element.type.displayName !== \"Pushtell.Variant\") {\n var error = new Error(\"Pushtell Experiment children must be Pushtell Variant components.\");\n error.type = \"PUSHTELL_INVALID_CHILD\";\n throw error;\n }\n children[element.props.name] = element;\n _emitter2.default.addExperimentVariant(props.name, element.props.name);\n });\n _emitter2.default.emit(\"variants-loaded\", props.name);\n _this.state.variants = children;\n return _this;\n }\n\n _createClass(CoreExperiment, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.value !== this.props.value || nextProps.children !== this.props.children) {\n var value = typeof nextProps.value === \"function\" ? nextProps.value() : nextProps.value;\n var children = {};\n _react2.default.Children.forEach(nextProps.children, function (element) {\n children[element.props.name] = element;\n });\n this.setState({\n value: value,\n variants: children\n });\n }\n }\n }, {\n key: 'componentWillMount',\n value: function componentWillMount() {\n var _this2 = this;\n\n var value = typeof this.props.value === \"function\" ? this.props.value() : this.props.value;\n if (!this.state.variants[value]) {\n if (\"production\" !== process.env.NODE_ENV) {\n (0, _warning2.default)(true, 'Experiment “' + this.props.name + '” does not contain variant “' + value + '”');\n }\n }\n _emitter2.default._incrementActiveExperiments(this.props.name);\n _emitter2.default.setActiveVariant(this.props.name, value);\n _emitter2.default._emitPlay(this.props.name, value);\n this.setState({\n value: value\n });\n this.valueSubscription = _emitter2.default.addActiveVariantListener(this.props.name, function (experimentName, variantName) {\n _this2.setState({\n value: variantName\n });\n });\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n _emitter2.default._decrementActiveExperiments(this.props.name);\n this.valueSubscription.remove();\n }\n }, {\n key: 'render',\n value: function render() {\n return this.state.variants[this.state.value] || null;\n }\n }]);\n\n return CoreExperiment;\n}(_react.Component);\n\nCoreExperiment.propTypes = {\n name: _propTypes2.default.string.isRequired,\n value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]).isRequired\n};\nexports.default = CoreExperiment;\n;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nvar fbemitter = {\n EventEmitter: require('./lib/BaseEventEmitter'),\n EmitterSubscription : require('./lib/EmitterSubscription')\n};\n\nmodule.exports = fbemitter;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule BaseEventEmitter\n * @typechecks\n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar EmitterSubscription = require('./EmitterSubscription');\nvar EventSubscriptionVendor = require('./EventSubscriptionVendor');\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * @class BaseEventEmitter\n * @description\n * An EventEmitter is responsible for managing a set of listeners and publishing\n * events to them when it is told that such events happened. In addition to the\n * data for the given event it also sends a event control object which allows\n * the listeners/handlers to prevent the default behavior of the given event.\n *\n * The emitter is designed to be generic enough to support all the different\n * contexts in which one might want to emit events. It is a simple multicast\n * mechanism on top of which extra functionality can be composed. For example, a\n * more advanced emitter may use an EventHolder and EventFactory.\n */\n\nvar BaseEventEmitter = (function () {\n /**\n * @constructor\n */\n\n function BaseEventEmitter() {\n _classCallCheck(this, BaseEventEmitter);\n\n this._subscriber = new EventSubscriptionVendor();\n this._currentSubscription = null;\n }\n\n /**\n * Adds a listener to be invoked when events of the specified type are\n * emitted. An optional calling context may be provided. The data arguments\n * emitted will be passed to the listener function.\n *\n * TODO: Annotate the listener arg's type. This is tricky because listeners\n * can be invoked with varargs.\n *\n * @param {string} eventType - Name of the event to listen to\n * @param {function} listener - Function to invoke when the specified event is\n * emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n\n BaseEventEmitter.prototype.addListener = function addListener(eventType, listener, context) {\n return this._subscriber.addSubscription(eventType, new EmitterSubscription(this._subscriber, listener, context));\n };\n\n /**\n * Similar to addListener, except that the listener is removed after it is\n * invoked once.\n *\n * @param {string} eventType - Name of the event to listen to\n * @param {function} listener - Function to invoke only once when the\n * specified event is emitted\n * @param {*} context - Optional context object to use when invoking the\n * listener\n */\n\n BaseEventEmitter.prototype.once = function once(eventType, listener, context) {\n var emitter = this;\n return this.addListener(eventType, function () {\n emitter.removeCurrentListener();\n listener.apply(context, arguments);\n });\n };\n\n /**\n * Removes all of the registered listeners, including those registered as\n * listener maps.\n *\n * @param {?string} eventType - Optional name of the event whose registered\n * listeners to remove\n */\n\n BaseEventEmitter.prototype.removeAllListeners = function removeAllListeners(eventType) {\n this._subscriber.removeAllSubscriptions(eventType);\n };\n\n /**\n * Provides an API that can be called during an eventing cycle to remove the\n * last listener that was invoked. This allows a developer to provide an event\n * object that can remove the listener (or listener map) during the\n * invocation.\n *\n * If it is called when not inside of an emitting cycle it will throw.\n *\n * @throws {Error} When called not during an eventing cycle\n *\n * @example\n * var subscription = emitter.addListenerMap({\n * someEvent: function(data, event) {\n * console.log(data);\n * emitter.removeCurrentListener();\n * }\n * });\n *\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\n * emitter.emit('someEvent', 'def'); // does not log anything\n */\n\n BaseEventEmitter.prototype.removeCurrentListener = function removeCurrentListener() {\n !!!this._currentSubscription ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Not in an emitting cycle; there is no current subscription') : invariant(false) : undefined;\n this._subscriber.removeSubscription(this._currentSubscription);\n };\n\n /**\n * Returns an array of listeners that are currently registered for the given\n * event.\n *\n * @param {string} eventType - Name of the event to query\n * @return {array}\n */\n\n BaseEventEmitter.prototype.listeners = function listeners(eventType) /* TODO: Array */{\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n return subscriptions ? subscriptions.filter(emptyFunction.thatReturnsTrue).map(function (subscription) {\n return subscription.listener;\n }) : [];\n };\n\n /**\n * Emits an event of the given type with the given data. All handlers of that\n * particular type will be notified.\n *\n * @param {string} eventType - Name of the event to emit\n * @param {*} Arbitrary arguments to be passed to each registered listener\n *\n * @example\n * emitter.addListener('someEvent', function(message) {\n * console.log(message);\n * });\n *\n * emitter.emit('someEvent', 'abc'); // logs 'abc'\n */\n\n BaseEventEmitter.prototype.emit = function emit(eventType) {\n var subscriptions = this._subscriber.getSubscriptionsForType(eventType);\n if (subscriptions) {\n var keys = Object.keys(subscriptions);\n for (var ii = 0; ii < keys.length; ii++) {\n var key = keys[ii];\n var subscription = subscriptions[key];\n // The subscription may have been removed during this event loop.\n if (subscription) {\n this._currentSubscription = subscription;\n this.__emitToSubscription.apply(this, [subscription].concat(Array.prototype.slice.call(arguments)));\n }\n }\n this._currentSubscription = null;\n }\n };\n\n /**\n * Provides a hook to override how the emitter emits an event to a specific\n * subscription. This allows you to set up logging and error boundaries\n * specific to your environment.\n *\n * @param {EmitterSubscription} subscription\n * @param {string} eventType\n * @param {*} Arbitrary arguments to be passed to each registered listener\n */\n\n BaseEventEmitter.prototype.__emitToSubscription = function __emitToSubscription(subscription, eventType) {\n var args = Array.prototype.slice.call(arguments, 2);\n subscription.listener.apply(subscription.context, args);\n };\n\n return BaseEventEmitter;\n})();\n\nmodule.exports = BaseEventEmitter;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule EventSubscription\n * @typechecks\n */\n\n'use strict';\n\n/**\n * EventSubscription represents a subscription to a particular event. It can\n * remove its own subscription.\n */\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar EventSubscription = (function () {\n\n /**\n * @param {EventSubscriptionVendor} subscriber the subscriber that controls\n * this subscription.\n */\n\n function EventSubscription(subscriber) {\n _classCallCheck(this, EventSubscription);\n\n this.subscriber = subscriber;\n }\n\n /**\n * Removes this subscription from the subscriber that controls it.\n */\n\n EventSubscription.prototype.remove = function remove() {\n if (this.subscriber) {\n this.subscriber.removeSubscription(this);\n this.subscriber = null;\n }\n };\n\n return EventSubscription;\n})();\n\nmodule.exports = EventSubscription;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n * \n * @providesModule EventSubscriptionVendor\n * @typechecks\n */\n\n'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar invariant = require('fbjs/lib/invariant');\n\n/**\n * EventSubscriptionVendor stores a set of EventSubscriptions that are\n * subscribed to a particular event type.\n */\n\nvar EventSubscriptionVendor = (function () {\n function EventSubscriptionVendor() {\n _classCallCheck(this, EventSubscriptionVendor);\n\n this._subscriptionsForType = {};\n this._currentSubscription = null;\n }\n\n /**\n * Adds a subscription keyed by an event type.\n *\n * @param {string} eventType\n * @param {EventSubscription} subscription\n */\n\n EventSubscriptionVendor.prototype.addSubscription = function addSubscription(eventType, subscription) {\n !(subscription.subscriber === this) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The subscriber of the subscription is incorrectly set.') : invariant(false) : undefined;\n if (!this._subscriptionsForType[eventType]) {\n this._subscriptionsForType[eventType] = [];\n }\n var key = this._subscriptionsForType[eventType].length;\n this._subscriptionsForType[eventType].push(subscription);\n subscription.eventType = eventType;\n subscription.key = key;\n return subscription;\n };\n\n /**\n * Removes a bulk set of the subscriptions.\n *\n * @param {?string} eventType - Optional name of the event type whose\n * registered supscriptions to remove, if null remove all subscriptions.\n */\n\n EventSubscriptionVendor.prototype.removeAllSubscriptions = function removeAllSubscriptions(eventType) {\n if (eventType === undefined) {\n this._subscriptionsForType = {};\n } else {\n delete this._subscriptionsForType[eventType];\n }\n };\n\n /**\n * Removes a specific subscription. Instead of calling this function, call\n * `subscription.remove()` directly.\n *\n * @param {object} subscription\n */\n\n EventSubscriptionVendor.prototype.removeSubscription = function removeSubscription(subscription) {\n var eventType = subscription.eventType;\n var key = subscription.key;\n\n var subscriptionsForType = this._subscriptionsForType[eventType];\n if (subscriptionsForType) {\n delete subscriptionsForType[key];\n }\n };\n\n /**\n * Returns the array of subscriptions that are currently registered for the\n * given event type.\n *\n * Note: This array can be potentially sparse as subscriptions are deleted\n * from it when they are removed.\n *\n * TODO: This returns a nullable array. wat?\n *\n * @param {string} eventType\n * @return {?array}\n */\n\n EventSubscriptionVendor.prototype.getSubscriptionsForType = function getSubscriptionsForType(eventType) {\n return this._subscriptionsForType[eventType];\n };\n\n return EventSubscriptionVendor;\n})();\n\nmodule.exports = EventSubscriptionVendor;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction crc32(str) {\n /* jslint bitwise: true */\n var crc = -1;\n for (var i = 0, len = str.length; i < len; i++) {\n crc = crc >>> 8 ^ table[(crc ^ str.charCodeAt(i)) & 0xFF];\n }\n return ~crc;\n}\n\nvar table = [0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D];\n\nif (global.Int32Array !== undefined) {\n table = new Int32Array(table);\n}\n\nmodule.exports = crc32;","'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _emitter = require('./emitter');\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar isDebuggerAvailable = process.env.NODE_ENV !== \"production\";\n\nvar style = null;\nfunction attachStyleSheet() {\n style = document.createElement(\"style\");\n style.appendChild(document.createTextNode(\"\"));\n document.head.appendChild(style);\n function addCSSRule(selector, rules) {\n if (\"insertRule\" in style.sheet) {\n style.sheet.insertRule(selector + \"{\" + rules + \"}\", 0);\n } else if (\"addRule\" in style.sheet) {\n style.sheet.addRule(selector, rules, 0);\n }\n }\n addCSSRule(\"#pushtell-debugger\", \"z-index: 25000\");\n addCSSRule(\"#pushtell-debugger\", \"position: fixed\");\n addCSSRule(\"#pushtell-debugger\", \"transform: translateX(-50%)\");\n addCSSRule(\"#pushtell-debugger\", \"bottom: 0\");\n addCSSRule(\"#pushtell-debugger\", \"left: 50%\");\n addCSSRule(\"#pushtell-debugger ul\", \"margin: 0\");\n addCSSRule(\"#pushtell-debugger ul\", \"padding: 0 0 0 20px\");\n addCSSRule(\"#pushtell-debugger li\", \"margin: 0\");\n addCSSRule(\"#pushtell-debugger li\", \"padding: 0\");\n addCSSRule(\"#pushtell-debugger li\", \"font-size: 14px\");\n addCSSRule(\"#pushtell-debugger li\", \"line-height: 14px\");\n addCSSRule(\"#pushtell-debugger input\", \"float: left\");\n addCSSRule(\"#pushtell-debugger input\", \"margin: 0 10px 0 0\");\n addCSSRule(\"#pushtell-debugger input\", \"padding: 0\");\n addCSSRule(\"#pushtell-debugger input\", \"cursor: pointer\");\n addCSSRule(\"#pushtell-debugger label\", \"color: #999999\");\n addCSSRule(\"#pushtell-debugger label\", \"margin: 0 0 10px 0\");\n addCSSRule(\"#pushtell-debugger label\", \"cursor: pointer\");\n addCSSRule(\"#pushtell-debugger label\", \"font-weight: normal\");\n addCSSRule(\"#pushtell-debugger label.active\", \"color: #000000\");\n addCSSRule(\"#pushtell-debugger .pushtell-experiment-name\", \"font-size: 16px\");\n addCSSRule(\"#pushtell-debugger .pushtell-experiment-name\", \"color: #000000\");\n addCSSRule(\"#pushtell-debugger .pushtell-experiment-name\", \"margin: 0 0 10px 0\");\n addCSSRule(\"#pushtell-debugger .pushtell-production-build-note\", \"font-size: 10px\");\n addCSSRule(\"#pushtell-debugger .pushtell-production-build-note\", \"color: #999999\");\n addCSSRule(\"#pushtell-debugger .pushtell-production-build-note\", \"text-align: center\");\n addCSSRule(\"#pushtell-debugger .pushtell-production-build-note\", \"margin: 10px -40px 0 -10px\");\n addCSSRule(\"#pushtell-debugger .pushtell-production-build-note\", \"border-top: 1px solid #b3b3b3\");\n addCSSRule(\"#pushtell-debugger .pushtell-production-build-note\", \"padding: 10px 10px 5px 10px\");\n addCSSRule(\"#pushtell-debugger .pushtell-handle\", \"cursor: pointer\");\n addCSSRule(\"#pushtell-debugger .pushtell-handle\", \"padding: 5px 10px 5px 10px\");\n addCSSRule(\"#pushtell-debugger .pushtell-panel\", \"padding: 15px 40px 5px 10px\");\n addCSSRule(\"#pushtell-debugger .pushtell-container\", \"font-size: 11px\");\n addCSSRule(\"#pushtell-debugger .pushtell-container\", \"background-color: #ebebeb\");\n addCSSRule(\"#pushtell-debugger .pushtell-container\", \"color: #000000\");\n addCSSRule(\"#pushtell-debugger .pushtell-container\", \"box-shadow: 0px 0 5px rgba(0, 0, 0, 0.1)\");\n addCSSRule(\"#pushtell-debugger .pushtell-container\", \"border-top: 1px solid #b3b3b3\");\n addCSSRule(\"#pushtell-debugger .pushtell-container\", \"border-left: 1px solid #b3b3b3\");\n addCSSRule(\"#pushtell-debugger .pushtell-container\", \"border-right: 1px solid #b3b3b3\");\n addCSSRule(\"#pushtell-debugger .pushtell-container\", \"border-top-left-radius: 2px\");\n addCSSRule(\"#pushtell-debugger .pushtell-container\", \"border-top-right-radius: 2px\");\n addCSSRule(\"#pushtell-debugger .pushtell-close\", \"cursor: pointer\");\n addCSSRule(\"#pushtell-debugger .pushtell-close\", \"font-size: 16px\");\n addCSSRule(\"#pushtell-debugger .pushtell-close\", \"font-weight: bold\");\n addCSSRule(\"#pushtell-debugger .pushtell-close\", \"color: #CC0000\");\n addCSSRule(\"#pushtell-debugger .pushtell-close\", \"position: absolute\");\n addCSSRule(\"#pushtell-debugger .pushtell-close\", \"top: 0px\");\n addCSSRule(\"#pushtell-debugger .pushtell-close\", \"right: 7px\");\n addCSSRule(\"#pushtell-debugger .pushtell-close:hover\", \"color: #FF0000\");\n addCSSRule(\"#pushtell-debugger .pushtell-close, #pushtell-debugger label\", \"transition: all .25s\");\n}\nfunction removeStyleSheet() {\n if (style !== null) {\n document.head.removeChild(style);\n style = null;\n }\n}\n\nvar Debugger = function (_Component) {\n _inherits(Debugger, _Component);\n\n function Debugger() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Debugger);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Debugger.__proto__ || Object.getPrototypeOf(Debugger)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n experiments: _emitter2.default.getActiveExperiments(),\n visible: false\n }, _this.toggleVisibility = function () {\n _this.setState({\n visible: !_this.state.visible\n });\n }, _this.updateExperiments = function () {\n _this.setState({\n experiments: _emitter2.default.getActiveExperiments()\n });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Debugger, [{\n key: 'setActiveVariant',\n value: function setActiveVariant(experimentName, variantName) {\n _emitter2.default.setActiveVariant(experimentName, variantName);\n }\n }, {\n key: 'componentWillMount',\n value: function componentWillMount() {\n this.activeSubscription = _emitter2.default.addListener(\"active\", this.updateExperiments);\n this.inactiveSubscription = _emitter2.default.addListener(\"inactive\", this.updateExperiments);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.activeSubscription.remove();\n this.inactiveSubscription.remove();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var experimentNames = Object.keys(this.state.experiments);\n if (this.state.visible) {\n return _react2.default.createElement(\n 'div',\n { className: 'pushtell-container pushtell-panel' },\n _react2.default.createElement(\n 'div',\n { className: 'pushtell-close', onClick: this.toggleVisibility },\n '\\xD7'\n ),\n experimentNames.map(function (experimentName) {\n var variantNames = Object.keys(_this2.state.experiments[experimentName]);\n if (variantNames.length === 0) {\n return;\n }\n return _react2.default.createElement(\n 'div',\n { className: 'pushtell-experiment', key: experimentName },\n _react2.default.createElement(\n 'div',\n { className: 'pushtell-experiment-name' },\n experimentName\n ),\n _react2.default.createElement(\n 'ul',\n null,\n variantNames.map(function (variantName) {\n return _react2.default.createElement(\n 'li',\n { key: variantName },\n _react2.default.createElement(\n 'label',\n { className: _this2.state.experiments[experimentName][variantName] ? \"active\" : null, onClick: _this2.setActiveVariant.bind(_this2, experimentName, variantName) },\n _react2.default.createElement('input', { type: 'radio', name: experimentName, value: variantName, defaultChecked: _this2.state.experiments[experimentName][variantName] }),\n variantName\n )\n );\n })\n )\n );\n }),\n _react2.default.createElement(\n 'div',\n { className: 'pushtell-production-build-note' },\n 'This panel is hidden on production builds.'\n )\n );\n } else if (experimentNames.length > 0) {\n return _react2.default.createElement(\n 'div',\n { className: 'pushtell-container pushtell-handle', onClick: this.toggleVisibility },\n experimentNames.length,\n ' Active Experiment',\n experimentNames.length > 1 ? \"s\" : \"\"\n );\n } else {\n return null;\n }\n }\n }]);\n\n return Debugger;\n}(_react.Component);\n\nmodule.exports = {\n setDebuggerAvailable: function setDebuggerAvailable(value) {\n isDebuggerAvailable = value;\n },\n enable: function enable() {\n if (!isDebuggerAvailable || !_ExecutionEnvironment.canUseDOM) {\n return;\n }\n\n attachStyleSheet();\n var body = document.getElementsByTagName('body')[0];\n var container = document.createElement('div');\n container.id = 'pushtell-debugger';\n body.appendChild(container);\n _reactDom2.default.render(_react2.default.createElement(Debugger, null), container);\n },\n disable: function disable() {\n if (!isDebuggerAvailable || !_ExecutionEnvironment.canUseDOM) {\n return;\n }\n\n removeStyleSheet();\n var body = document.getElementsByTagName('body')[0];\n var container = document.getElementById('pushtell-debugger');\n if (container) {\n _reactDom2.default.unmountComponentAtNode(container);\n body.removeChild(container);\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _emitter = require(\"../emitter\");\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _ExecutionEnvironment = require(\"fbjs/lib/ExecutionEnvironment\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar playSubscription = void 0,\n winSubscription = void 0;\n\nexports.default = {\n enable: function enable() {\n if (_ExecutionEnvironment.canUseDOM) {\n if (typeof mixpanel === \"undefined\") {\n var error = new Error(\"React A/B Test Mixpanel Helper: 'mixpanel' global is not defined.\");\n error.type = \"PUSHTELL_HELPER_MISSING_GLOBAL\";\n throw error;\n }\n playSubscription = _emitter2.default.addPlayListener(function (experimentName, variantName) {\n mixpanel.track(\"Experiment Play\", {\n \"Experiment\": experimentName,\n \"Variant\": variantName\n }, function () {\n _emitter2.default.emit(\"mixpanel-play\", experimentName, variantName);\n });\n });\n winSubscription = _emitter2.default.addWinListener(function (experimentName, variantName) {\n mixpanel.track(\"Experiment Win\", {\n \"Experiment\": experimentName,\n \"Variant\": variantName\n }, function () {\n _emitter2.default.emit(\"mixpanel-win\", experimentName, variantName);\n });\n });\n }\n },\n disable: function disable() {\n if (_ExecutionEnvironment.canUseDOM) {\n if (!playSubscription || !winSubscription) {\n var error = new Error(\"React A/B Test Mixpanel Helper: Helper was not enabled.\");\n error.type = \"PUSHTELL_HELPER_INVALID_DISABLE\";\n throw error;\n }\n playSubscription.remove();\n winSubscription.remove();\n }\n }\n};","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _emitter = require(\"../emitter\");\n\nvar _emitter2 = _interopRequireDefault(_emitter);\n\nvar _ExecutionEnvironment = require(\"fbjs/lib/ExecutionEnvironment\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar playSubscription = void 0,\n winSubscription = void 0;\n\nexports.default = {\n enable: function enable() {\n if (_ExecutionEnvironment.canUseDOM) {\n if (typeof analytics === \"undefined\") {\n var error = new Error(\"React A/B Test Segment Helper: 'analytics' global is not defined.\");\n error.type = \"PUSHTELL_HELPER_MISSING_GLOBAL\";\n throw error;\n }\n playSubscription = _emitter2.default.addPlayListener(function (experimentName, variantName) {\n analytics.track(\"Experiment Viewed\", {\n \"experimentName\": experimentName,\n \"variationName\": variantName\n }, function () {\n _emitter2.default.emit(\"segment-play\", experimentName, variantName);\n });\n });\n winSubscription = _emitter2.default.addWinListener(function (experimentName, variantName) {\n analytics.track(\"Experiment Won\", {\n \"experimentName\": experimentName,\n \"variationName\": variantName\n }, function () {\n _emitter2.default.emit(\"segment-win\", experimentName, variantName);\n });\n });\n }\n },\n disable: function disable() {\n if (_ExecutionEnvironment.canUseDOM) {\n if (!playSubscription || !winSubscription) {\n var error = new Error(\"React A/B Test Segment Helper: Helper was not enabled.\");\n error.type = \"PUSHTELL_HELPER_INVALID_DISABLE\";\n throw error;\n }\n playSubscription.remove();\n winSubscription.remove();\n }\n }\n};"],"sourceRoot":""}