{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./node_modules/@grrr/cookie-consent/src/config-defaults.mjs","webpack:///./node_modules/@grrr/cookie-consent/src/utils.mjs","webpack:///./node_modules/@grrr/cookie-consent/src/config.mjs","webpack:///./node_modules/@grrr/utils/functions/curry.mjs","webpack:///./node_modules/@grrr/utils/functions/closest.mjs","webpack:///./node_modules/@grrr/utils/functions/debounce.mjs","webpack:///./node_modules/@grrr/utils/functions/deepCopy.mjs","webpack:///./node_modules/@grrr/utils/functions/defined.mjs","webpack:///./node_modules/@grrr/utils/functions/head.mjs","webpack:///./node_modules/@grrr/utils/functions/htmlToElement.mjs","webpack:///./node_modules/@grrr/utils/functions/memoize.mjs","webpack:///./node_modules/@grrr/utils/functions/map.mjs","webpack:///./node_modules/@grrr/utils/functions/omit.mjs","webpack:///./node_modules/@grrr/utils/functions/parseJson.mjs","webpack:///./node_modules/@grrr/utils/functions/pick.mjs","webpack:///./node_modules/@grrr/utils/functions/preventDefault.mjs","webpack:///./node_modules/@grrr/utils/functions/preventingDefault.mjs","webpack:///./node_modules/@grrr/utils/functions/compose.mjs","webpack:///./node_modules/@grrr/utils/functions/tap.mjs","webpack:///./node_modules/@grrr/utils/functions/prop.mjs","webpack:///./node_modules/@grrr/utils/functions/take.mjs","webpack:///./node_modules/@grrr/utils/functions/takeLast.mjs","webpack:///./node_modules/@grrr/utils/functions/throttle.mjs","webpack:///./node_modules/@grrr/cookie-consent/src/event-dispatcher.mjs","webpack:///./node_modules/@grrr/cookie-consent/src/dialog-tablist.mjs","webpack:///./node_modules/@grrr/cookie-consent/src/dialog.mjs","webpack:///./node_modules/@grrr/cookie-consent/src/dom-toggler.mjs","webpack:///./node_modules/@grrr/cookie-consent/src/storage.mjs","webpack:///./node_modules/@grrr/cookie-consent/src/preferences.mjs","webpack:///./node_modules/@grrr/cookie-consent/src/cookie-consent.mjs","webpack:///./app/webpacker/packs/javascripts/cookie-consent.js","webpack:///./node_modules/@grrr/cookie-consent/index.mjs","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/js-cookie/src/js.cookie.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","runtime","undefined","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","obj","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","method","arg","GenStateExecuting","Error","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","GenStateSuspendedYield","makeInvokeMethod","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","this","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","PromiseImpl","invoke","resolve","reject","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","toString","keys","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","DEFAULTS","prefix","append","appendDelay","acceptAllButton","labels","title","description","button","default","acceptAll","aria","tabList","tabToggle","getEntryByDotString","entryString","replace","split","reduce","acc","settings","required","arguments","console","warn","concat","curry","_len","args","Array","_key","apply","closest","predicate","node","nodeType","Node","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","parentNode","delay","timer","_this","clearTimeout","setTimeout","x","html","placeholder","document","createElement","innerHTML","children","firstElementChild","f","xs","map","cache","JSON","stringify","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","target","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","includes","json","parse","e","preventDefault","fns","reduceRight","compose","tap","arr","isArray","minLen","from","test","len","arr2","take","_ref","_ref2","takeLast","threshold","getState","last","now","Date","invokeFn","listeners","queue","dispatch","payload","add","cookiesWithState","config","preferences","events","TYPE","PREFIX","renderTab","index","id","label","checked","accepted","shouldBeChecked","cookieType","join","init","tabs","panels","querySelectorAll","tab","addEventListener","targetTab","getAttribute","_ref3","controls","setAttribute","panel","selectTab","on","element","getValues","input","ACCEPT_ALL_BUTTON","hasPreferences","dialog","form","querySelector","hide","submitHandler","find","v","requiredCount","checkedCount","composeValues","updateButtonLabel","textContent","insertBefore","preventingDefault","show","GENERAL_ATTRIBUTE","toggleScripts","documentElement","script","newScript","src","head","appendChild","appendScript","removeChild","showElement","el","style","display","removeAttribute","hideElement","toggle","accepts","body","rejects","toggleConditionalElements","iframe","hideIframe","toggleConditionalIframes","storageModule","localStorage","setItem","removeItem","supportsLocalStorage","window","attributes","val","getItem","set","has","KEY","storage","getAll","store","cookies","isAccepted","skipDeleteCookies","url","manageCookies","isVisible","initRun","setCookieConsent","setLabels","sendCookies","setManageCookiesState","clickListener","domToggler","updatePreference","appendEl","getDialog","hideDialog","showDialog","getPreferences","location","origin","cookieConsentVisible","response","newCookies","data","cookie","translations","acceptedCookies","a","fetch","headers","Cookies","domain","hostname","reload","isOpen","manageCookiesTab","getElementById","cookieButton","button_save","isManageCookieOpen","className","cookieConsent","CookieConsent","cookieTabList","manage_cookies","insertAdjacentHTML","cookieConsentInit","_typeof","factory","registeredInModuleLoader","OldCookies","api","noConflict","extend","decode","decodeURIComponent","converter","path","defaults","expires","toUTCString","write","encodeURIComponent","String","escape","stringifiedAttributes","attributeName","jar","parts","read","getJSON","remove","withConverter"],"mappings":";aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,qBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,UAIjBlC,EAAoBA,EAAoBmC,EAAI,K,sBC3ErD,IAAIC,EAAW,SAAUlC,GACvB,aAEA,IAEImC,EAFAC,EAAKxB,OAAOkB,UACZO,EAASD,EAAGL,eAEZO,EAA4B,oBAAXrB,OAAwBA,OAAS,GAClDsB,EAAiBD,EAAQE,UAAY,aACrCC,EAAsBH,EAAQI,eAAiB,kBAC/CC,EAAoBL,EAAQpB,aAAe,gBAE/C,SAAS0B,EAAOC,EAAKpB,EAAKN,GAOxB,OANAP,OAAOC,eAAegC,EAAKpB,EAAK,CAC9BN,MAAOA,EACPL,YAAY,EACZgC,cAAc,EACdC,UAAU,IAELF,EAAIpB,GAEb,IAEEmB,EAAO,GAAI,IACX,MAAOI,GACPJ,EAAS,SAASC,EAAKpB,EAAKN,GAC1B,OAAO0B,EAAIpB,GAAON,GAItB,SAAS8B,EAAKC,EAASC,EAASC,EAAMC,GAEpC,IAAIC,EAAiBH,GAAWA,EAAQrB,qBAAqByB,EAAYJ,EAAUI,EAC/EC,EAAY5C,OAAOY,OAAO8B,EAAexB,WACzC2B,EAAU,IAAIC,EAAQL,GAAe,IAMzC,OAFAG,EAAUG,QAsMZ,SAA0BT,EAASE,EAAMK,GACvC,IAAIG,EAAQC,EAEZ,OAAO,SAAgBC,EAAQC,GAC7B,GAAIH,IAAUI,EACZ,MAAM,IAAIC,MAAM,gCAGlB,GAAIL,IAAUM,EAAmB,CAC/B,GAAe,UAAXJ,EACF,MAAMC,EAKR,OAAOI,IAMT,IAHAV,EAAQK,OAASA,EACjBL,EAAQM,IAAMA,IAED,CACX,IAAIK,EAAWX,EAAQW,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUX,GACnD,GAAIY,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBZ,EAAQK,OAGVL,EAAQe,KAAOf,EAAQgB,MAAQhB,EAAQM,SAElC,GAAuB,UAAnBN,EAAQK,OAAoB,CACrC,GAAIF,IAAUC,EAEZ,MADAD,EAAQM,EACFT,EAAQM,IAGhBN,EAAQiB,kBAAkBjB,EAAQM,SAEN,WAAnBN,EAAQK,QACjBL,EAAQkB,OAAO,SAAUlB,EAAQM,KAGnCH,EAAQI,EAER,IAAIY,EAASC,EAAS3B,EAASE,EAAMK,GACrC,GAAoB,WAAhBmB,EAAOE,KAAmB,CAO5B,GAJAlB,EAAQH,EAAQsB,KACZb,EACAc,EAEAJ,EAAOb,MAAQQ,EACjB,SAGF,MAAO,CACLpD,MAAOyD,EAAOb,IACdgB,KAAMtB,EAAQsB,MAGS,UAAhBH,EAAOE,OAChBlB,EAAQM,EAGRT,EAAQK,OAAS,QACjBL,EAAQM,IAAMa,EAAOb,OA9QPkB,CAAiB/B,EAASE,EAAMK,GAE7CD,EAcT,SAASqB,EAASK,EAAIrC,EAAKkB,GACzB,IACE,MAAO,CAAEe,KAAM,SAAUf,IAAKmB,EAAG7E,KAAKwC,EAAKkB,IAC3C,MAAOf,GACP,MAAO,CAAE8B,KAAM,QAASf,IAAKf,IAhBjChD,EAAQiD,KAAOA,EAoBf,IAAIY,EAAyB,iBACzBmB,EAAyB,iBACzBhB,EAAoB,YACpBE,EAAoB,YAIpBK,EAAmB,GAMvB,SAAShB,KACT,SAAS4B,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBA,EAAkB9C,GAAkB,WAClC,OAAO+C,MAGT,IAAIC,EAAW3E,OAAO4E,eAClBC,EAA0BF,GAAYA,EAASA,EAASG,EAAO,MAC/DD,GACAA,IAA4BrD,GAC5BC,EAAOhC,KAAKoF,EAAyBlD,KAGvC8C,EAAoBI,GAGtB,IAAIE,EAAKP,EAA2BtD,UAClCyB,EAAUzB,UAAYlB,OAAOY,OAAO6D,GAWtC,SAASO,EAAsB9D,GAC7B,CAAC,OAAQ,QAAS,UAAU+D,SAAQ,SAAS/B,GAC3ClB,EAAOd,EAAWgC,GAAQ,SAASC,GACjC,OAAOuB,KAAK3B,QAAQG,EAAQC,SAkClC,SAAS+B,EAActC,EAAWuC,GAChC,SAASC,EAAOlC,EAAQC,EAAKkC,EAASC,GACpC,IAAItB,EAASC,EAASrB,EAAUM,GAASN,EAAWO,GACpD,GAAoB,UAAhBa,EAAOE,KAEJ,CACL,IAAIqB,EAASvB,EAAOb,IAChB5C,EAAQgF,EAAOhF,MACnB,OAAIA,GACiB,kBAAVA,GACPkB,EAAOhC,KAAKc,EAAO,WACd4E,EAAYE,QAAQ9E,EAAMiF,SAASC,MAAK,SAASlF,GACtD6E,EAAO,OAAQ7E,EAAO8E,EAASC,MAC9B,SAASlD,GACVgD,EAAO,QAAShD,EAAKiD,EAASC,MAI3BH,EAAYE,QAAQ9E,GAAOkF,MAAK,SAASC,GAI9CH,EAAOhF,MAAQmF,EACfL,EAAQE,MACP,SAASI,GAGV,OAAOP,EAAO,QAASO,EAAON,EAASC,MAvBzCA,EAAOtB,EAAOb,KA4BlB,IAAIyC,EAgCJlB,KAAK3B,QA9BL,SAAiBG,EAAQC,GACvB,SAAS0C,IACP,OAAO,IAAIV,GAAY,SAASE,EAASC,GACvCF,EAAOlC,EAAQC,EAAKkC,EAASC,MAIjC,OAAOM,EAaLA,EAAkBA,EAAgBH,KAChCI,EAGAA,GACEA,KAkHV,SAASnC,EAAoBF,EAAUX,GACrC,IAAIK,EAASM,EAAS5B,SAASiB,EAAQK,QACvC,GAAIA,IAAW3B,EAAW,CAKxB,GAFAsB,EAAQW,SAAW,KAEI,UAAnBX,EAAQK,OAAoB,CAE9B,GAAIM,EAAS5B,SAAiB,SAG5BiB,EAAQK,OAAS,SACjBL,EAAQM,IAAM5B,EACdmC,EAAoBF,EAAUX,GAEP,UAAnBA,EAAQK,QAGV,OAAOS,EAIXd,EAAQK,OAAS,QACjBL,EAAQM,IAAM,IAAI2C,UAChB,kDAGJ,OAAOnC,EAGT,IAAIK,EAASC,EAASf,EAAQM,EAAS5B,SAAUiB,EAAQM,KAEzD,GAAoB,UAAhBa,EAAOE,KAIT,OAHArB,EAAQK,OAAS,QACjBL,EAAQM,IAAMa,EAAOb,IACrBN,EAAQW,SAAW,KACZG,EAGT,IAAIoC,EAAO/B,EAAOb,IAElB,OAAM4C,EAOFA,EAAK5B,MAGPtB,EAAQW,EAASwC,YAAcD,EAAKxF,MAGpCsC,EAAQoD,KAAOzC,EAAS0C,QAQD,WAAnBrD,EAAQK,SACVL,EAAQK,OAAS,OACjBL,EAAQM,IAAM5B,GAUlBsB,EAAQW,SAAW,KACZG,GANEoC,GA3BPlD,EAAQK,OAAS,QACjBL,EAAQM,IAAM,IAAI2C,UAAU,oCAC5BjD,EAAQW,SAAW,KACZG,GAoDX,SAASwC,EAAaC,GACpB,IAAIC,EAAQ,CAAEC,OAAQF,EAAK,IAEvB,KAAKA,IACPC,EAAME,SAAWH,EAAK,IAGpB,KAAKA,IACPC,EAAMG,WAAaJ,EAAK,GACxBC,EAAMI,SAAWL,EAAK,IAGxB1B,KAAKgC,WAAWC,KAAKN,GAGvB,SAASO,EAAcP,GACrB,IAAIrC,EAASqC,EAAMQ,YAAc,GACjC7C,EAAOE,KAAO,gBACPF,EAAOb,IACdkD,EAAMQ,WAAa7C,EAGrB,SAASlB,EAAQL,GAIfiC,KAAKgC,WAAa,CAAC,CAAEJ,OAAQ,SAC7B7D,EAAYwC,QAAQkB,EAAczB,MAClCA,KAAKoC,OAAM,GA8Bb,SAAShC,EAAOiC,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAASpF,GAC9B,GAAIqF,EACF,OAAOA,EAAevH,KAAKsH,GAG7B,GAA6B,oBAAlBA,EAASd,KAClB,OAAOc,EAGT,IAAKE,MAAMF,EAASG,QAAS,CAC3B,IAAI5H,GAAK,EAAG2G,EAAO,SAASA,IAC1B,OAAS3G,EAAIyH,EAASG,QACpB,GAAIzF,EAAOhC,KAAKsH,EAAUzH,GAGxB,OAFA2G,EAAK1F,MAAQwG,EAASzH,GACtB2G,EAAK9B,MAAO,EACL8B,EAOX,OAHAA,EAAK1F,MAAQgB,EACb0E,EAAK9B,MAAO,EAEL8B,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAM1C,GAIjB,SAASA,IACP,MAAO,CAAEhD,MAAOgB,EAAW4C,MAAM,GA+MnC,OA5mBAI,EAAkBrD,UAAY6D,EAAGoC,YAAc3C,EAC/CA,EAA2B2C,YAAc5C,EACzCA,EAAkB6C,YAAcpF,EAC9BwC,EACAzC,EACA,qBAaF3C,EAAQiI,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,oBAAXD,GAAyBA,EAAOH,YAClD,QAAOI,IACHA,IAAShD,GAG2B,uBAAnCgD,EAAKH,aAAeG,EAAK1H,QAIhCT,EAAQoI,KAAO,SAASF,GAQtB,OAPItH,OAAOyH,eACTzH,OAAOyH,eAAeH,EAAQ9C,IAE9B8C,EAAOI,UAAYlD,EACnBxC,EAAOsF,EAAQvF,EAAmB,sBAEpCuF,EAAOpG,UAAYlB,OAAOY,OAAOmE,GAC1BuC,GAOTlI,EAAQuI,MAAQ,SAASxE,GACvB,MAAO,CAAEqC,QAASrC,IAsEpB6B,EAAsBE,EAAchE,WACpCgE,EAAchE,UAAUW,GAAuB,WAC7C,OAAO6C,MAETtF,EAAQ8F,cAAgBA,EAKxB9F,EAAQwI,MAAQ,SAAStF,EAASC,EAASC,EAAMC,EAAa0C,QACxC,IAAhBA,IAAwBA,EAAc0C,SAE1C,IAAIC,EAAO,IAAI5C,EACb7C,EAAKC,EAASC,EAASC,EAAMC,GAC7B0C,GAGF,OAAO/F,EAAQiI,oBAAoB9E,GAC/BuF,EACAA,EAAK7B,OAAOR,MAAK,SAASF,GACxB,OAAOA,EAAOpB,KAAOoB,EAAOhF,MAAQuH,EAAK7B,WAuKjDjB,EAAsBD,GAEtB/C,EAAO+C,EAAIhD,EAAmB,aAO9BgD,EAAGpD,GAAkB,WACnB,OAAO+C,MAGTK,EAAGgD,SAAW,WACZ,MAAO,sBAkCT3I,EAAQ4I,KAAO,SAAShH,GACtB,IAAIgH,EAAO,GACX,IAAK,IAAInH,KAAOG,EACdgH,EAAKrB,KAAK9F,GAMZ,OAJAmH,EAAKC,UAIE,SAAShC,IACd,KAAO+B,EAAKd,QAAQ,CAClB,IAAIrG,EAAMmH,EAAKE,MACf,GAAIrH,KAAOG,EAGT,OAFAiF,EAAK1F,MAAQM,EACboF,EAAK9B,MAAO,EACL8B,EAQX,OADAA,EAAK9B,MAAO,EACL8B,IAsCX7G,EAAQ0F,OAASA,EAMjBhC,EAAQ5B,UAAY,CAClBiG,YAAarE,EAEbgE,MAAO,SAASqB,GAcd,GAbAzD,KAAK0D,KAAO,EACZ1D,KAAKuB,KAAO,EAGZvB,KAAKd,KAAOc,KAAKb,MAAQtC,EACzBmD,KAAKP,MAAO,EACZO,KAAKlB,SAAW,KAEhBkB,KAAKxB,OAAS,OACdwB,KAAKvB,IAAM5B,EAEXmD,KAAKgC,WAAWzB,QAAQ2B,IAEnBuB,EACH,IAAK,IAAItI,KAAQ6E,KAEQ,MAAnB7E,EAAKwI,OAAO,IACZ5G,EAAOhC,KAAKiF,KAAM7E,KACjBoH,OAAOpH,EAAKyI,MAAM,MACrB5D,KAAK7E,GAAQ0B,IAMrBgH,KAAM,WACJ7D,KAAKP,MAAO,EAEZ,IACIqE,EADY9D,KAAKgC,WAAW,GACLG,WAC3B,GAAwB,UAApB2B,EAAWtE,KACb,MAAMsE,EAAWrF,IAGnB,OAAOuB,KAAK+D,MAGd3E,kBAAmB,SAAS4E,GAC1B,GAAIhE,KAAKP,KACP,MAAMuE,EAGR,IAAI7F,EAAU6B,KACd,SAASiE,EAAOC,EAAKC,GAYnB,OAXA7E,EAAOE,KAAO,QACdF,EAAOb,IAAMuF,EACb7F,EAAQoD,KAAO2C,EAEXC,IAGFhG,EAAQK,OAAS,OACjBL,EAAQM,IAAM5B,KAGNsH,EAGZ,IAAK,IAAIvJ,EAAIoF,KAAKgC,WAAWQ,OAAS,EAAG5H,GAAK,IAAKA,EAAG,CACpD,IAAI+G,EAAQ3B,KAAKgC,WAAWpH,GACxB0E,EAASqC,EAAMQ,WAEnB,GAAqB,SAAjBR,EAAMC,OAIR,OAAOqC,EAAO,OAGhB,GAAItC,EAAMC,QAAU5B,KAAK0D,KAAM,CAC7B,IAAIU,EAAWrH,EAAOhC,KAAK4G,EAAO,YAC9B0C,EAAatH,EAAOhC,KAAK4G,EAAO,cAEpC,GAAIyC,GAAYC,EAAY,CAC1B,GAAIrE,KAAK0D,KAAO/B,EAAME,SACpB,OAAOoC,EAAOtC,EAAME,UAAU,GACzB,GAAI7B,KAAK0D,KAAO/B,EAAMG,WAC3B,OAAOmC,EAAOtC,EAAMG,iBAGjB,GAAIsC,GACT,GAAIpE,KAAK0D,KAAO/B,EAAME,SACpB,OAAOoC,EAAOtC,EAAME,UAAU,OAG3B,KAAIwC,EAMT,MAAM,IAAI1F,MAAM,0CALhB,GAAIqB,KAAK0D,KAAO/B,EAAMG,WACpB,OAAOmC,EAAOtC,EAAMG,gBAU9BzC,OAAQ,SAASG,EAAMf,GACrB,IAAK,IAAI7D,EAAIoF,KAAKgC,WAAWQ,OAAS,EAAG5H,GAAK,IAAKA,EAAG,CACpD,IAAI+G,EAAQ3B,KAAKgC,WAAWpH,GAC5B,GAAI+G,EAAMC,QAAU5B,KAAK0D,MACrB3G,EAAOhC,KAAK4G,EAAO,eACnB3B,KAAK0D,KAAO/B,EAAMG,WAAY,CAChC,IAAIwC,EAAe3C,EACnB,OAIA2C,IACU,UAAT9E,GACS,aAATA,IACD8E,EAAa1C,QAAUnD,GACvBA,GAAO6F,EAAaxC,aAGtBwC,EAAe,MAGjB,IAAIhF,EAASgF,EAAeA,EAAanC,WAAa,GAItD,OAHA7C,EAAOE,KAAOA,EACdF,EAAOb,IAAMA,EAET6F,GACFtE,KAAKxB,OAAS,OACdwB,KAAKuB,KAAO+C,EAAaxC,WAClB7C,GAGFe,KAAKuE,SAASjF,IAGvBiF,SAAU,SAASjF,EAAQyC,GACzB,GAAoB,UAAhBzC,EAAOE,KACT,MAAMF,EAAOb,IAcf,MAXoB,UAAhBa,EAAOE,MACS,aAAhBF,EAAOE,KACTQ,KAAKuB,KAAOjC,EAAOb,IACM,WAAhBa,EAAOE,MAChBQ,KAAK+D,KAAO/D,KAAKvB,IAAMa,EAAOb,IAC9BuB,KAAKxB,OAAS,SACdwB,KAAKuB,KAAO,OACa,WAAhBjC,EAAOE,MAAqBuC,IACrC/B,KAAKuB,KAAOQ,GAGP9C,GAGTuF,OAAQ,SAAS1C,GACf,IAAK,IAAIlH,EAAIoF,KAAKgC,WAAWQ,OAAS,EAAG5H,GAAK,IAAKA,EAAG,CACpD,IAAI+G,EAAQ3B,KAAKgC,WAAWpH,GAC5B,GAAI+G,EAAMG,aAAeA,EAGvB,OAFA9B,KAAKuE,SAAS5C,EAAMQ,WAAYR,EAAMI,UACtCG,EAAcP,GACP1C,IAKb,MAAS,SAAS2C,GAChB,IAAK,IAAIhH,EAAIoF,KAAKgC,WAAWQ,OAAS,EAAG5H,GAAK,IAAKA,EAAG,CACpD,IAAI+G,EAAQ3B,KAAKgC,WAAWpH,GAC5B,GAAI+G,EAAMC,SAAWA,EAAQ,CAC3B,IAAItC,EAASqC,EAAMQ,WACnB,GAAoB,UAAhB7C,EAAOE,KAAkB,CAC3B,IAAIiF,EAASnF,EAAOb,IACpByD,EAAcP,GAEhB,OAAO8C,GAMX,MAAM,IAAI9F,MAAM,0BAGlB+F,cAAe,SAASrC,EAAUf,EAAYE,GAa5C,OAZAxB,KAAKlB,SAAW,CACd5B,SAAUkD,EAAOiC,GACjBf,WAAYA,EACZE,QAASA,GAGS,SAAhBxB,KAAKxB,SAGPwB,KAAKvB,IAAM5B,GAGNoC,IAQJvE,EA7sBK,CAotBiBC,EAAOD,SAGtC,IACEiK,mBAAqB/H,EACrB,MAAOgI,GAUPC,SAAS,IAAK,yBAAdA,CAAwCjI,K,6DC1uB/BkI,EAAW,CACpBtF,KAAM,WACNuF,OAAQ,iBACRC,QAAQ,EACRC,YAAa,IACbC,iBAAiB,EACjBC,OAAQ,CACNC,MAAO,oBACPC,YAAa,oHACbC,OAAQ,CACNC,QAAS,mBACTC,UAAW,cAEbC,KAAM,CACJH,OAAQ,0BACRI,QAAS,yBACTC,UAAW,uBCENC,EAAsB,SAA6BtJ,EAAQuJ,GAEpE,OADcA,EAAYC,QAAQ,aAAc,OAAOA,QAAQ,MAAO,IAAIC,MAAM,KACjEC,QAAO,SAAUC,EAAKtE,GACnC,GAAIsE,GAAOtE,KAASsE,EAClB,OAAOA,EAAItE,KAIZrF,ICJU,EAhBF,SAAgB4J,GAC3B,MAAO,CACLzK,IAAK,SAAaoK,GAChB,IAAIM,EAAWC,UAAU5D,OAAS,QAAsB3F,IAAjBuJ,UAAU,IAAmBA,UAAU,GAC1EvK,EAAQ+J,EAAoBM,EAAUL,GAE1C,GAAKhK,IAASsK,EAKd,YAAiBtJ,IAAVhB,EAAsB+J,EAAoBd,EAAUe,GAAehK,EAJxEwK,QAAQC,KAAK,qBAAqBC,OAAOV,EAAa,qBCC/C,EAVH,SAASW,EAAM5G,GACzB,OAAO,WACL,IAAK,IAAI6G,EAAOL,UAAU5D,OAAQkE,EAAO,IAAIC,MAAMF,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EF,EAAKE,GAAQR,UAAUQ,GAGzB,OAAOF,EAAKlE,OAAS5C,EAAG4C,OAASgE,EAAM5G,EAAGxD,KAAKyK,MAAMjH,EAAI,CAAC,MAAM2G,OAAOG,KAAU9G,EAAGiH,WAAM,EAAQH,KCJlGI,EAAU,GAAM,SAAUC,EAAWC,GACvC,OAAQA,GAAQA,EAAKC,WAAaC,KAAKC,eAAiBH,EAAKC,WAAaC,KAAKE,uBAAqCL,EAAUC,GAAQA,EAAOF,EAAQC,EAAWC,EAAKK,iBAA7DxK,KCC3F,GAAM,SAAU+C,EAAI0H,GACjC,IAAIC,EACJ,OAAO,WAGL,IAFA,IAAIC,EAAQxH,KAEHyG,EAAOL,UAAU5D,OAAQkE,EAAO,IAAIC,MAAMF,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EF,EAAKE,GAAQR,UAAUQ,GAGzB,OAAO,IAAIzD,SAAQ,SAAUxC,GAC3B,IAAIxC,EAAUqJ,EACdC,aAAaF,GACbA,EAAQG,YAAW,WACjB,OAAO/G,EAAQf,EAAGiH,MAAM1I,EAASuI,MAChCY,UCjBT,ICEe,EAJD,SAAiBK,GAC7B,MAAoB,qBAANA,GCWA,ICND,EANK,SAAuBC,GACzC,IAAIC,EAAcC,SAASC,cAAc,OAEzC,OADAF,EAAYG,UAAYJ,EACjBC,EAAYI,SAASzF,OAASqF,EAAYK,uBAAoBrL,GCgBxD,GCjBL,GAAM,SAAUsL,EAAGC,GAC3B,OAAOA,EAAGC,IAAIF,MDAF,GAAM,SAAUvI,GAC5B,IAAI0I,EAAQ,GACZ,OAAO,WACL,IAAK,IAAI7B,EAAOL,UAAU5D,OAAQkE,EAAO,IAAIC,MAAMF,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EF,EAAKE,GAAQR,UAAUQ,GAGzB,IAAIzK,EAAMoM,KAAKC,UAAU9B,GAMzB,OAJMvK,KAAOmM,IACXA,EAAMnM,GAAOyD,EAAGiH,WAAM,EAAQH,IAGzB4B,EAAMnM,QEnBjB,SAASsM,EAAQnM,EAAQoM,GAAkB,IAAIpF,EAAOhI,OAAOgI,KAAKhH,GAAS,GAAIhB,OAAOqN,sBAAuB,CAAE,IAAIC,EAAUtN,OAAOqN,sBAAsBrM,GAAaoM,IAAkBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOxN,OAAOyN,yBAAyBzM,EAAQwM,GAAKtN,eAAkB8H,EAAKrB,KAAK4E,MAAMvD,EAAMsF,GAAY,OAAOtF,EAElV,SAAS0F,EAAcC,GAAU,IAAK,IAAIrO,EAAI,EAAGA,EAAIwL,UAAU5D,OAAQ5H,IAAK,CAAE,IAAIsO,EAAyB,MAAhB9C,UAAUxL,GAAawL,UAAUxL,GAAK,GAAQA,EAAI,EAAK6N,EAAQnN,OAAO4N,IAAS,GAAM3I,SAAQ,SAAUpE,GAAOgN,EAAgBF,EAAQ9M,EAAK+M,EAAO/M,OAAsBb,OAAO8N,0BAA6B9N,OAAO+N,iBAAiBJ,EAAQ3N,OAAO8N,0BAA0BF,IAAmBT,EAAQnN,OAAO4N,IAAS3I,SAAQ,SAAUpE,GAAOb,OAAOC,eAAe0N,EAAQ9M,EAAKb,OAAOyN,yBAAyBG,EAAQ/M,OAAe,OAAO8M,EAE7gB,SAASE,EAAgB5L,EAAKpB,EAAKN,GAAiK,OAApJM,KAAOoB,EAAOjC,OAAOC,eAAegC,EAAKpB,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAMgC,cAAc,EAAMC,UAAU,IAAkBF,EAAIpB,GAAON,EAAgB0B,EAOhM,GAAM,SAAU+F,EAAMjI,GAC/B,OAAOC,OAAOgI,KAAKjI,GAAG2K,QAAO,SAAUC,EAAK9J,GAC1C,OAAOmH,EAAKgG,SAASnN,GAAO8J,EAAM+C,EAAcA,EAAc,GAAI/C,GAAM,GAAIkD,EAAgB,GAAIhN,EAAKd,EAAEc,OACtG,OAHL,ICOe,EAZC,SAAmBoN,GACjC,IACE,OAAOhB,KAAKiB,MAAMD,GAClB,MAAOE,GAKP,YAJI,EAAQpD,UACVA,QAAQC,KAAKmD,MCXnB,SAAS,EAAQnN,EAAQoM,GAAkB,IAAIpF,EAAOhI,OAAOgI,KAAKhH,GAAS,GAAIhB,OAAOqN,sBAAuB,CAAE,IAAIC,EAAUtN,OAAOqN,sBAAsBrM,GAAaoM,IAAkBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOxN,OAAOyN,yBAAyBzM,EAAQwM,GAAKtN,eAAkB8H,EAAKrB,KAAK4E,MAAMvD,EAAMsF,GAAY,OAAOtF,EAElV,SAAS,EAAc2F,GAAU,IAAK,IAAIrO,EAAI,EAAGA,EAAIwL,UAAU5D,OAAQ5H,IAAK,CAAE,IAAIsO,EAAyB,MAAhB9C,UAAUxL,GAAawL,UAAUxL,GAAK,GAAQA,EAAI,EAAK,EAAQU,OAAO4N,IAAS,GAAM3I,SAAQ,SAAUpE,GAAO,EAAgB8M,EAAQ9M,EAAK+M,EAAO/M,OAAsBb,OAAO8N,0BAA6B9N,OAAO+N,iBAAiBJ,EAAQ3N,OAAO8N,0BAA0BF,IAAmB,EAAQ5N,OAAO4N,IAAS3I,SAAQ,SAAUpE,GAAOb,OAAOC,eAAe0N,EAAQ9M,EAAKb,OAAOyN,yBAAyBG,EAAQ/M,OAAe,OAAO8M,EAE7gB,SAAS,EAAgB1L,EAAKpB,EAAKN,GAAiK,OAApJM,KAAOoB,EAAOjC,OAAOC,eAAegC,EAAKpB,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAMgC,cAAc,EAAMC,UAAU,IAAkBF,EAAIpB,GAAON,EAAgB0B,EAOhM,GAAM,SAAU+F,EAAMjI,GAC/B,OAAOiI,EAAKuF,QAAO,SAAU1M,GAC3B,OAAOA,KAAOd,KACb2K,QAAO,SAAUC,EAAK9J,GACvB,OAAO,EAAc,EAAc,GAAI8J,GAAM,GAAI,EAAgB,GAAI9J,EAAKd,EAAEc,OAC3E,OALL,ICNgB,cACd,OAAOsN,EAAEC,kBCGK,WAAAvB,GACd,OCPc,WACd,IAAK,IAAI1B,EAAOL,UAAU5D,OAAQmH,EAAM,IAAIhD,MAAMF,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC9E+C,EAAI/C,GAAQR,UAAUQ,GAGxB,OAAO,SAAUnI,GACf,OAAOkL,EAAIC,aAAY,SAAU3D,EAAKrG,GACpC,OAAOA,EAAGqG,KACTxH,IDDEoL,CAAQ1B,EEHD,SAAAA,GACd,OAAO,SAAUR,GAEf,OADAQ,EAAER,GACKA,GFASmC,CAAIJ,KGLb,GAAM,SAAUnN,EAAUlB,GACnC,OAAOA,EAAEkB,MCNX,SAAS,EAAmBwN,GAAO,OAInC,SAA4BA,GAAO,GAAIpD,MAAMqD,QAAQD,GAAM,OAAO,EAAkBA,GAJ1C,CAAmBA,IAAQ,EAAiBA,IAAQ,EAA4BA,IAE1H,WAAgC,MAAM,IAAI3I,UAAU,wIAF8E,GAMlI,SAAS,EAAS2I,GAAO,OAUzB,SAAyBA,GAAO,GAAIpD,MAAMqD,QAAQD,GAAM,OAAOA,EAV/B,CAAgBA,IAAQ,EAAiBA,IAAQ,EAA4BA,IAE7G,WAA8B,MAAM,IAAI3I,UAAU,6IAFmE,GAIrH,SAAS,EAA4B/F,EAAG4O,GAAU,GAAK5O,EAAL,CAAgB,GAAiB,kBAANA,EAAgB,OAAO,EAAkBA,EAAG4O,GAAS,IAAI5N,EAAIf,OAAOkB,UAAU6G,SAAStI,KAAKM,GAAGuI,MAAM,GAAI,GAAiE,MAAnD,WAANvH,GAAkBhB,EAAEoH,cAAapG,EAAIhB,EAAEoH,YAAYtH,MAAgB,QAANkB,GAAqB,QAANA,EAAoBsK,MAAMuD,KAAK7O,GAAc,cAANgB,GAAqB,2CAA2C8N,KAAK9N,GAAW,EAAkBhB,EAAG4O,QAAzG,GAE7S,SAAS,EAAkBF,EAAKK,IAAkB,MAAPA,GAAeA,EAAML,EAAIvH,UAAQ4H,EAAML,EAAIvH,QAAQ,IAAK,IAAI5H,EAAI,EAAGyP,EAAO,IAAI1D,MAAMyD,GAAMxP,EAAIwP,EAAKxP,IAAOyP,EAAKzP,GAAKmP,EAAInP,GAAM,OAAOyP,EAEhL,SAAS,EAAiBjH,GAAQ,GAAsB,qBAAXzH,QAAmD,MAAzByH,EAAKzH,OAAOuB,WAA2C,MAAtBkG,EAAK,cAAuB,OAAOuD,MAAMuD,KAAK9G,GAStJ,IAAIkH,EAAO,GAAM,SAAUjO,EAAGkO,GAC5B,IAAIC,EAAQ,EAASD,GACjB5C,EAAI6C,EAAM,GACVpC,EAAKoC,EAAM5G,MAAM,GAErB,OAAO+D,GAAKtL,EAAI,CAACsL,GAAGpB,OAAO,EAAmB+D,EAAKjO,EAAI,EAAG+L,KAAQ,MC5BpE,SAAS,EAAmB2B,GAAO,OAQnC,SAA4BA,GAAO,GAAIpD,MAAMqD,QAAQD,GAAM,OAAO,EAAkBA,GAR1C,CAAmBA,IAM7D,SAA0B3G,GAAQ,GAAsB,qBAAXzH,QAAmD,MAAzByH,EAAKzH,OAAOuB,WAA2C,MAAtBkG,EAAK,cAAuB,OAAOuD,MAAMuD,KAAK9G,GANjF,CAAiB2G,IAItF,SAAqC1O,EAAG4O,GAAU,IAAK5O,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO,EAAkBA,EAAG4O,GAAS,IAAI5N,EAAIf,OAAOkB,UAAU6G,SAAStI,KAAKM,GAAGuI,MAAM,GAAI,GAAc,WAANvH,GAAkBhB,EAAEoH,cAAapG,EAAIhB,EAAEoH,YAAYtH,MAAM,GAAU,QAANkB,GAAqB,QAANA,EAAa,OAAOsK,MAAMuD,KAAK7O,GAAI,GAAU,cAANgB,GAAqB,2CAA2C8N,KAAK9N,GAAI,OAAO,EAAkBhB,EAAG4O,GAJxT,CAA4BF,IAE1H,WAAgC,MAAM,IAAI3I,UAAU,wIAF8E,GAUlI,SAAS,EAAkB2I,EAAKK,IAAkB,MAAPA,GAAeA,EAAML,EAAIvH,UAAQ4H,EAAML,EAAIvH,QAAQ,IAAK,IAAI5H,EAAI,EAAGyP,EAAO,IAAI1D,MAAMyD,GAAMxP,EAAIwP,EAAKxP,IAAOyP,EAAKzP,GAAKmP,EAAInP,GAAM,OAAOyP,EAOhL,IAAII,EAAW,GAAM,SAAUpO,EAAG+L,GAChC,OAAO/L,EAAI+L,EAAG5F,OAAS,EAAmB4F,GAAM/L,EAAI,CAAC+L,EAAGA,EAAG5F,OAASnG,IAAIkK,OAAO,EAAmBkE,EAASpO,EAAI,EAAG+L,KAAQ,MCT7G,GAAM,SAAUxI,EAAI8K,GACjC,IAAIC,EAAW,GAAQ,WACrB,MAAO,CACLC,UAAM/N,EACN0K,WAAO1K,MAGX,OAAO,WACL,IAAK,IAAI4J,EAAOL,UAAU5D,OAAQkE,EAAO,IAAIC,MAAMF,GAAOG,EAAO,EAAGA,EAAOH,EAAMG,IAC/EF,EAAKE,GAAQR,UAAUQ,GAGzB,IAAIzI,EAAU6B,KACV6K,GAAO,IAAIC,KACXxM,EAAQqM,EAAS9D,WAAM,EAAQH,GACnC,OAAO,IAAIvD,SAAQ,SAAUxC,GAC3B,IAAIoK,EAAW,WAEb,OADAzM,EAAMsM,KAAOC,EACNlK,EAAQf,EAAGiH,MAAM1I,EAASuI,KAGnC,GAAIpI,EAAMsM,MAAQC,EAAMvM,EAAMsM,KAAOF,EAGnC,OAFAjD,aAAanJ,EAAMiJ,YACnBjJ,EAAMiJ,MAAQG,WAAWqD,EAAUL,IAIrCK,WCpCN,SAAS,EAAmBhB,GAAO,OAQnC,SAA4BA,GAAO,GAAIpD,MAAMqD,QAAQD,GAAM,OAAO,EAAkBA,GAR1C,CAAmBA,IAM7D,SAA0B3G,GAAQ,GAAsB,qBAAXzH,QAAmD,MAAzByH,EAAKzH,OAAOuB,WAA2C,MAAtBkG,EAAK,cAAuB,OAAOuD,MAAMuD,KAAK9G,GANjF,CAAiB2G,IAItF,SAAqC1O,EAAG4O,GAAU,IAAK5O,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO,EAAkBA,EAAG4O,GAAS,IAAI5N,EAAIf,OAAOkB,UAAU6G,SAAStI,KAAKM,GAAGuI,MAAM,GAAI,GAAc,WAANvH,GAAkBhB,EAAEoH,cAAapG,EAAIhB,EAAEoH,YAAYtH,MAAM,GAAU,QAANkB,GAAqB,QAANA,EAAa,OAAOsK,MAAMuD,KAAK7O,GAAI,GAAU,cAANgB,GAAqB,2CAA2C8N,KAAK9N,GAAI,OAAO,EAAkBhB,EAAG4O,GAJxT,CAA4BF,IAE1H,WAAgC,MAAM,IAAI3I,UAAU,wIAF8E,GAUlI,SAAS,EAAkB2I,EAAKK,IAAkB,MAAPA,GAAeA,EAAML,EAAIvH,UAAQ4H,EAAML,EAAIvH,QAAQ,IAAK,IAAI5H,EAAI,EAAGyP,EAAO,IAAI1D,MAAMyD,GAAMxP,EAAIwP,EAAKxP,IAAOyP,EAAKzP,GAAKmP,EAAInP,GAAM,OAAOyP,EAKhL,IAuCe,EAvCO,WACpB,IAAIW,EAAY,GACZC,EAAQ,GAKRC,EAAW,SAAkB1L,EAAM2L,GACjCH,EAAUxL,GACZwL,EAAUxL,GAAMe,SAAQ,SAAUX,GAChC,OAAOA,EAAGuL,MAGZF,EAAMzL,GAAQ,GAAG+G,OAAO,EAAmB0E,EAAMzL,IAAS,IAAK,CAAC2L,KAmBpE,MAAO,CACLC,IAZQ,SAAa5L,EAAMI,GAC3BoL,EAAUxL,GAAQ,GAAG+G,OAAO,EAAmByE,EAAUxL,IAAS,IAAK,CAACI,IAEpEqL,EAAMzL,KACRyL,EAAMzL,GAAMe,SAAQ,SAAU4K,GAC5B,OAAOD,EAAS1L,EAAM2L,aAEjBF,EAAMzL,KAMf0L,SAAUA,EACVF,UAAWA,IClDf,SAAS,EAAmBjB,GAAO,OAQnC,SAA4BA,GAAO,GAAIpD,MAAMqD,QAAQD,GAAM,OAAO,EAAkBA,GAR1C,CAAmBA,IAM7D,SAA0B3G,GAAQ,GAAsB,qBAAXzH,QAAmD,MAAzByH,EAAKzH,OAAOuB,WAA2C,MAAtBkG,EAAK,cAAuB,OAAOuD,MAAMuD,KAAK9G,GANjF,CAAiB2G,IAItF,SAAqC1O,EAAG4O,GAAU,IAAK5O,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO,EAAkBA,EAAG4O,GAAS,IAAI5N,EAAIf,OAAOkB,UAAU6G,SAAStI,KAAKM,GAAGuI,MAAM,GAAI,GAAc,WAANvH,GAAkBhB,EAAEoH,cAAapG,EAAIhB,EAAEoH,YAAYtH,MAAM,GAAU,QAANkB,GAAqB,QAANA,EAAa,OAAOsK,MAAMuD,KAAK7O,GAAI,GAAU,cAANgB,GAAqB,2CAA2C8N,KAAK9N,GAAI,OAAO,EAAkBhB,EAAG4O,GAJxT,CAA4BF,IAE1H,WAAgC,MAAM,IAAI3I,UAAU,wIAF8E,GAUlI,SAAS,EAAkB2I,EAAKK,IAAkB,MAAPA,GAAeA,EAAML,EAAIvH,UAAQ4H,EAAML,EAAIvH,QAAQ,IAAK,IAAI5H,EAAI,EAAGyP,EAAO,IAAI1D,MAAMyD,GAAMxP,EAAIwP,EAAKxP,IAAOyP,EAAKzP,GAAKmP,EAAInP,GAAM,OAAOyP,EAEhL,SAAS,EAAQ/N,EAAQoM,GAAkB,IAAIpF,EAAOhI,OAAOgI,KAAKhH,GAAS,GAAIhB,OAAOqN,sBAAuB,CAAE,IAAIC,EAAUtN,OAAOqN,sBAAsBrM,GAAaoM,IAAkBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOxN,OAAOyN,yBAAyBzM,EAAQwM,GAAKtN,eAAkB8H,EAAKrB,KAAK4E,MAAMvD,EAAMsF,GAAY,OAAOtF,EAElV,SAAS,EAAc2F,GAAU,IAAK,IAAIrO,EAAI,EAAGA,EAAIwL,UAAU5D,OAAQ5H,IAAK,CAAE,IAAIsO,EAAyB,MAAhB9C,UAAUxL,GAAawL,UAAUxL,GAAK,GAAQA,EAAI,EAAK,EAAQU,OAAO4N,IAAS,GAAM3I,SAAQ,SAAUpE,GAAO,EAAgB8M,EAAQ9M,EAAK+M,EAAO/M,OAAsBb,OAAO8N,0BAA6B9N,OAAO+N,iBAAiBJ,EAAQ3N,OAAO8N,0BAA0BF,IAAmB,EAAQ5N,OAAO4N,IAAS3I,SAAQ,SAAUpE,GAAOb,OAAOC,eAAe0N,EAAQ9M,EAAKb,OAAOyN,yBAAyBG,EAAQ/M,OAAe,OAAO8M,EAE7gB,SAAS,EAAgB1L,EAAKpB,EAAKN,GAAiK,OAApJM,KAAOoB,EAAOjC,OAAOC,eAAegC,EAAKpB,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAMgC,cAAc,EAAMC,UAAU,IAAkBF,EAAIpB,GAAON,EAAgB0B,EAQ3M,IAiHe,EAjHK,SAAuBgN,GACzC,IAmCMc,EAnCFC,EAASf,EAAKe,OACdC,EAAchB,EAAKgB,YACnBC,EAAS,IACTC,EAAOH,EAAO7P,IAAI,QAClBiQ,EAASJ,EAAO7P,IAAI,UAKpBkQ,EAAY,SAAmBnB,EAAOoB,GACxC,IAAIC,EAAKrB,EAAMqB,GACXC,EAAQtB,EAAMsB,MACdzG,EAAcmF,EAAMnF,YACpBc,EAAWqE,EAAMrE,SACjB4F,EAAUvB,EAAMuB,QAChBC,EAAWxB,EAAMwB,SAUjBC,EAAsC,qBAAbD,EAA2BA,GAAwB,IAAb7F,EAAoBA,EAAW4F,EAClG,MAAO,4DAA+DxF,OAAOmF,EAAQ,qCAAuCnF,OAAOmF,EAAQ,6BAA+BnF,OAAOJ,EAAU,iCAAmCI,OAAgB,UAATkF,EAAmB,QAAU,WAAY,YAAclF,OAAOmF,EAAQ,mBAAqBnF,OAAOsF,EAAI,MAAOtF,OAAO0F,EAAkB,UAAY,GAAI,KAAK1F,OAAOJ,GAAqB,UAATsF,EAAmB,WAAa,GAAI,yBAAyBlF,OAAOuF,EAAO,kEAAmEvF,OAAOmF,EAAQ,2DAA+DnF,OAAOmF,EAAQ,SAASnF,OAAOqF,EAAO,0BAA4BrF,OAAOmF,EAAQ,cAAcnF,OAAOqF,EAAO,kCAAoCrF,OAAOmF,EAAQ,cAAcnF,OAAOqF,EAAO,kEAAsErF,OAAO+E,EAAO7P,IAAI,yBAA0B,mNAA2N8K,OAAOmF,EAAQ,2DAA+DnF,OAAOmF,EAAQ,cAAcnF,OAAOqF,EAAO,kCAAoCrF,OAAOmF,EAAQ,SAASnF,OAAOqF,EAAO,4DAAgErF,OAAOmF,EAAQ,qCAAsCnF,OAAOlB,EAAa,0DAqBl8CK,EAAU,GAZR2F,GADUC,EAAO7P,IAAI,WAAW,IAAS,IACd4M,KAAI,SAAU6D,GAC3C,OAAO,EAAc,EAAc,GAAIA,GAAa,GAAI,CACtDF,SAAUT,EAAY9P,IAAIyQ,EAAWL,IAAMN,EAAY9P,IAAIyQ,EAAWL,IAAIG,cAAWnP,OAGlF,sBAAuB0J,OAAOmF,EAAQ,2CAA+CnF,OAAO+E,EAAO7P,IAAI,uBAAwB,gBAAiB8K,OAAO8E,EAAiBhD,IAAIsD,GAAWQ,KAAK,IAAK,yBA8D1M,MAAO,CACLC,KAAM,WAnBsB,IACxBC,EAEAC,EAFAD,EAAO,EAAmB3G,EAAQ6G,iBAAiB,iBAEnDD,EAAS,EAAmB5G,EAAQ6G,iBAAiB,sBAEzDF,EAAK9L,SAAQ,SAAUiM,GACrBA,EAAIC,iBAAiB,SAAS,SAAUhD,GACtCA,EAAEC,iBACF,IAAIgD,EAAkD,SAAtCF,EAAIG,aAAa,iBAA8B,KAAOH,GAzB5D,SAAmBI,GACjC,IAAIP,EAAOO,EAAMP,KACbC,EAASM,EAAMN,OACfI,EAAYE,EAAMF,UAClBG,EAAWH,EAAYA,EAAUC,aAAa,iBAAmB,GACrEN,EAAK9L,SAAQ,SAAUiM,GACrB,OAAOA,EAAIM,aAAa,gBAAiBN,IAAQE,MAEnDJ,EAAO/L,SAAQ,SAAUwM,GACvB,OAAOA,EAAMD,aAAa,cAAeD,IAAaE,EAAMlB,OAiB1DmB,CAAU,CACRX,KAAMA,EACNC,OAAQA,EACRI,UAAWA,WAUjBO,GAAIzB,EAAOJ,IACX8B,QAASxH,EACTyH,UAxDc,WAGd,OAFa,EAAmBzH,EAAQ6G,iBAAiB,UAE3ClE,KAAI,SAAU+E,GAC1B,MAAO,CACLvB,GAAIuB,EAAMvR,MACVmQ,SAAUoB,EAAMrB,eCnFxB,SAAS,EAAQzP,EAAQoM,GAAkB,IAAIpF,EAAOhI,OAAOgI,KAAKhH,GAAS,GAAIhB,OAAOqN,sBAAuB,CAAE,IAAIC,EAAUtN,OAAOqN,sBAAsBrM,GAAaoM,IAAkBE,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOxN,OAAOyN,yBAAyBzM,EAAQwM,GAAKtN,eAAkB8H,EAAKrB,KAAK4E,MAAMvD,EAAMsF,GAAY,OAAOtF,EAElV,SAAS,EAAc2F,GAAU,IAAK,IAAIrO,EAAI,EAAGA,EAAIwL,UAAU5D,OAAQ5H,IAAK,CAAE,IAAIsO,EAAyB,MAAhB9C,UAAUxL,GAAawL,UAAUxL,GAAK,GAAQA,EAAI,EAAK,EAAQU,OAAO4N,IAAS,GAAM3I,SAAQ,SAAUpE,GAAO,EAAgB8M,EAAQ9M,EAAK+M,EAAO/M,OAAsBb,OAAO8N,0BAA6B9N,OAAO+N,iBAAiBJ,EAAQ3N,OAAO8N,0BAA0BF,IAAmB,EAAQ5N,OAAO4N,IAAS3I,SAAQ,SAAUpE,GAAOb,OAAOC,eAAe0N,EAAQ9M,EAAKb,OAAOyN,yBAAyBG,EAAQ/M,OAAe,OAAO8M,EAE7gB,SAAS,EAAgB1L,EAAKpB,EAAKN,GAAiK,OAApJM,KAAOoB,EAAOjC,OAAOC,eAAegC,EAAKpB,EAAK,CAAEN,MAAOA,EAAOL,YAAY,EAAMgC,cAAc,EAAMC,UAAU,IAAkBF,EAAIpB,GAAON,EAAgB0B,EAS3M,IAkJe,EAlJF,SAAgBgN,GAC3B,IAAIe,EAASf,EAAKe,OACdC,EAAchB,EAAKgB,YACnB7F,EAAU,EAAc,CAC1B4F,OAAQA,EACRC,YAAaA,IAEXC,EAAS,IACTC,EAAOH,EAAO7P,IAAI,QAClBiQ,EAASJ,EAAO7P,IAAI,UAEpB4R,EAAoB/B,EAAO7P,IAAI,qBAAuB8P,EAAY+B,iBAalEC,EAAS,EAPJ,sBAAuBhH,OAAOmF,EAAQ,aAAenF,OAAOmF,EAAQ,uEAA6EnF,OAAOmF,EAAQ,gHAAgHnF,OAAOmF,EAAQ,kBAAoBnF,OAAOmF,EAAQ,kCAAmCnF,OAAO+E,EAAO7P,IAAI,gBAAiB,qBAAqB8K,OAAO+E,EAAO7P,IAAI,sBAAuB,kEAAmE8K,OAAOmF,EAAQ,0BAA4BnF,OAAO+E,EAAO7P,IAAI,sBAAuB,0BAA2B8K,OAAO+E,EAAO7P,IAAI,yBAA0B,4GAQzqB+R,EAAOD,EAAOE,cAAc,QAC5BnI,EAASkI,EAAKC,cAAc,UAK5BC,EAAO,WACT,OAAOH,EAAOT,aAAa,cAAe,SAmExCa,EAAgB,SAAuBlE,GACzCA,EAAEC,iBAEF,IAAItJ,EA/Cc,SAAuBA,GAEzC,GAAa,UAATqL,IAAqBrL,EAAOwN,MAAK,SAAUC,GAC7C,OAAOA,EAAE7B,YAIT,OAAIqB,GACFjN,EAAO,GAAG4L,UAAW,EACd5L,GAIF,GAKT,IAAI0N,EAAgBxC,EAAO7P,IAAI,WAAWoN,QAAO,SAAU5N,GACzD,OAAOA,EAAEkL,YACR3D,OACCuL,EAAe3N,EAAOyI,QAAO,SAAUgF,GACzC,OAAOA,EAAE7B,YACRxJ,OAGH,OAAI6K,GAA8B,aAAT5B,GAFAsC,EAAeD,EAajC1N,EAVEA,EAAOiI,KAAI,SAAUxM,GAC1B,OAAO,EAAc,EAAc,GAAIA,GAAQ,GAAI,CACjDmQ,UAAU,OAkBHgC,CAActI,EAAQyH,aAE9B/M,IAKLoL,EAAON,SAAS,SAAU9K,GAC1BsN,MAOEO,EAAoB,SAA2BnC,GACjDxG,EAAO4I,YAAcpC,GAGvB,MAAO,CACLM,KAAM,WAEJ1G,EAAQ0G,OACRoB,EAAKW,aAAazI,EAAQwH,QAASM,EAAKtF,mBAExCsF,EAAKf,iBAAiB,SAAU2B,EAAkBT,IAK9CN,IACFY,EAAkB3C,EAAO7P,IAAI,4BAC7B+R,EAAKf,iBAAiB,UAAU,SAAUhD,GACxCwE,EAAkB3C,EAAO7P,IAAI,+BAInCwR,GAAIzB,EAAOJ,IACXiD,KAzGS,WACT,OAAOd,EAAOT,aAAa,cAAe,UAyG1CY,KAAMA,EACNR,QAASK,IC3Jb,SAAS,EAAmBxD,GAAO,OAQnC,SAA4BA,GAAO,GAAIpD,MAAMqD,QAAQD,GAAM,OAAO,EAAkBA,GAR1C,CAAmBA,IAM7D,SAA0B3G,GAAQ,GAAsB,qBAAXzH,QAAmD,MAAzByH,EAAKzH,OAAOuB,WAA2C,MAAtBkG,EAAK,cAAuB,OAAOuD,MAAMuD,KAAK9G,GANjF,CAAiB2G,IAItF,SAAqC1O,EAAG4O,GAAU,IAAK5O,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAO,EAAkBA,EAAG4O,GAAS,IAAI5N,EAAIf,OAAOkB,UAAU6G,SAAStI,KAAKM,GAAGuI,MAAM,GAAI,GAAc,WAANvH,GAAkBhB,EAAEoH,cAAapG,EAAIhB,EAAEoH,YAAYtH,MAAM,GAAU,QAANkB,GAAqB,QAANA,EAAa,OAAOsK,MAAMuD,KAAK7O,GAAI,GAAU,cAANgB,GAAqB,2CAA2C8N,KAAK9N,GAAI,OAAO,EAAkBhB,EAAG4O,GAJxT,CAA4BF,IAE1H,WAAgC,MAAM,IAAI3I,UAAU,wIAF8E,GAUlI,SAAS,EAAkB2I,EAAKK,IAAkB,MAAPA,GAAeA,EAAML,EAAIvH,UAAQ4H,EAAML,EAAIvH,QAAQ,IAAK,IAAI5H,EAAI,EAAGyP,EAAO,IAAI1D,MAAMyD,GAAMxP,EAAIwP,EAAKxP,IAAOyP,EAAKzP,GAAKmP,EAAInP,GAAM,OAAOyP,EAEhL,IAAIiE,EAAoB,sBAiJT,EA1IE,SAAoBhD,GAKnC,IAiBIiD,EAAgB,SAAuBhE,GACzC,IAAIsB,EAAKtB,EAAKsB,GACCtB,EAAKyB,UAQpB,EAFclE,SAAS0G,gBAAgBjC,iBAAiB,UAAUhG,OAAO+H,EAAmB,MAAO/H,OAAOsF,EAAI,QAElFtL,SAAQ,SAAUkO,IA3B7B,SAAsBA,GACvC,IAAIC,EAAY5G,SAASC,cAAc,UAEnC0G,EAAOE,IACTD,EAAUC,IAAMF,EAAOE,IAEvBD,EAAU1G,UAAYyG,EAAOzG,UAG/BF,SAAS8G,KAAKC,YAAYH,GAmBxBI,CAAaL,GACbA,EAAOpH,WAAW0H,YAAYN,OAgD9BO,EAAc,SAAqBC,GACrCA,EAAGC,MAAMC,QAAU,GACnBF,EAAGG,gBAAgB,eACnBH,EAAGG,gBAAgB,WAOjBC,EAAc,SAAqBJ,GACrCA,EAAGC,MAAMC,QAAU,OACnBF,EAAGnC,aAAa,cAAe,SAsBjC,MAAO,CACLwC,OAAQ,SAAgB/D,IACRD,EAAO7P,IAAI,YAAc,IAC/B8E,SAAQ,SAAUf,GACxB,IAAIwM,EAAWT,EAAYZ,SAASnL,EAAKqM,IACzC0C,EAAc,CACZ1C,GAAIrM,EAAKqM,GACTG,SAAUA,IAtBc,SAAmCY,GACjE,IAAIf,EAAKe,EAAMf,GACXG,EAAWY,EAAMZ,SACjBuD,EAAUzH,SAAS0H,KAAKjD,iBAAiB,IAAIhG,OA9GtB,+BA8GuD,MAAOA,OAAOsF,EAAI,OAChG4D,EAAU3H,SAAS0H,KAAKjD,iBAAiB,IAAIhG,OA9GtB,+BA8GuD,MAAOA,OAAOsF,EAAI,OAEpG,EAAmB0D,GAAShP,SAAQ,SAAU0O,GAC5C,OAAOjD,EAAWgD,EAAYC,GAAMI,EAAYJ,MAGlD,EAAmBQ,GAASlP,SAAQ,SAAU0O,GAC5C,OAAOjD,EAAWqD,EAAYJ,GAAMD,EAAYC,MAa9CS,CAA0B,CACxB7D,GAAIrM,EAAKqM,GACTG,SAAUA,IA3Da,SAAkCxB,GAC/D,IAAIqB,EAAKrB,EAAMqB,GACXG,EAAWxB,EAAMwB,SAGrB,EAFclE,SAAS0H,KAAKjD,iBAAiB,UAAUhG,OAAO+H,EAAmB,MAAO/H,OAAOsF,EAAI,QAEvEtL,SAAQ,SAAU0O,GAC5C,OAAOjD,QA/BL2C,GAD+BgB,EAgCJV,GA/BdtC,aAAa,eAG5BgD,EAAO7C,aAAa,MAAO6B,GAC3BgB,EAAOP,gBAAgB,cAQV,SAAoBO,GACnC,IAAIhB,EAAMgB,EAAOhD,aAAa,OAE1BgC,IACFgB,EAAO7C,aAAa,WAAY6B,GAChCgB,EAAOP,gBAAgB,QAcYQ,CAAWX,GAhCjC,IAAoBU,EAC/BhB,KAsFAkB,CAAyB,CACvBhE,GAAIrM,EAAKqM,GACTG,SAAUA,UCnHL,EA9BD,WACZ,IAAI8D,E1BH4B,WAChC,IAAI3F,EAAO,wBAEX,IAGE,OAFA4F,aAAaC,QAAQ7F,EAAMA,GAC3B4F,aAAaE,WAAW9F,IACjB,EACP,MAAOV,GACP,OAAO,G0BLWyG,GAAyBC,OAAOJ,aAAe,CACjEK,WAAY,GACZJ,QAAS,SAAiB7T,EAAKkU,GAC7BrQ,KAAKoQ,WAAWjU,GAAOkU,GAEzBC,QAAS,SAAiBnU,GACxB,OAAO6D,KAAKoQ,WAAWjU,KAgB3B,MAAO,CACLV,IAbQ,SAAaU,EAAKN,GAC1B,OAAOiU,EAAcQ,QAAQnU,EAAKN,IAalC0U,IAVQ,SAAapU,EAAKN,GAC1B,OAAOiU,EAAcE,QAAQ7T,EAAKN,IAUlC2U,IAPQ,SAAarU,GACrB,OAAsC,OAA/B2T,EAAcQ,QAAQnU,MCkBlB,EApCG,SAAqB4I,GACrC,IAAI0L,EAAM,GAAGlK,OAAOxB,EAAQ,KAAKwB,OANlB,eAOXmK,EAAU,IAEVC,EAAS,WACX,OAAO,EAAUD,EAAQjV,IAAIgV,KAAS,IAGpChV,EAAM,SAAaoQ,GACrB,OAAO8E,IAAS/C,MAAK,SAAUpO,GAC7B,OAAOA,EAAKqM,KAAOA,MAiBvB,MAAO,CACLpQ,IAAKA,EACLkV,OAAQA,EACRhG,SAhBa,SAAkBkB,GAC/B,OAAOpQ,EAAIoQ,IAAOpQ,EAAIoQ,GAAIG,UAgB1BsB,eAbmB,WACnB,OAAOoD,EAAQF,IAAIC,IAAQE,IAASnO,QAapCoO,MAVU,WACV,IAAIC,EAAUzK,UAAU5D,OAAS,QAAsB3F,IAAjBuJ,UAAU,GAAmBA,UAAU,GAAK,GAClF,OAAOsK,EAAQH,IAAIE,EAAKlI,KAAKC,UAAUqI,OC/B3C,SAAS,EAAQtT,GAAmV,OAAtO,EAArD,oBAAX5B,QAAoD,kBAApBA,OAAOuB,SAAmC,SAAiBK,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX5B,QAAyB4B,EAAIkF,cAAgB9G,QAAU4B,IAAQ5B,OAAOa,UAAY,gBAAkBe,IAAyBA,GAWnX,ICPQuT,EAEAC,EACAC,EACAC,GACFC,GACAC,GAaEC,GAeAC,GAeAC,GA+BAC,GAUAC,GC7FO,GFUK,SAAuBtL,GAEf,WAAtB,EAAQA,IAA2B5K,OAAOgI,KAAK4C,GAAU1D,QAC3D6D,QAAQC,KAAK,0BAIf,IAAIgF,EAAS,EAAOpF,GAChBqF,EAAc,EAAYD,EAAO7P,IAAI,WACrC8R,EAAS,EAAO,CAClBjC,OAAQA,EACRC,YAAaA,IAEXkG,EAAa,EAAWnG,GACxBE,EAAS,IAEbiG,EAAWnC,OAAO/D,GAElB,IAAImG,EAAmB,SAA0Bb,GAC/CtF,EAAYqF,MAAMC,GAClBrF,EAAON,SAAS,SAAUK,EAAYoF,UACtCc,EAAWnC,OAAO/D,IAOpB,GAHAgC,EAAOnB,OACPmB,EAAON,GAAG,SAAUyE,IAES,IAAzBpG,EAAO7P,IAAI,UAAqB,CAClC,IAAIkW,EAAW7J,SAAS2F,cAAc,SAAW3F,SAAS0H,KAAKtH,kBAC/DJ,SAAS0H,KAAKrB,aAAaZ,EAAOL,QAASyE,GAc7C,OAVIpG,EAAY+B,iBACd9B,EAAON,SAAS,SAAUK,EAAYoF,UAItCR,OAAOzI,YAAW,WAChB,OAAO6F,EAAOc,SACb/C,EAAO7P,IAAI,gBAGT,CACLmW,UAAW,WACT,OAAOrE,EAAOL,SAEhB2E,WAAYtE,EAAOG,KACnBoE,WAAYvE,EAAOc,KACnByC,WAAYvF,EAAYZ,SACxBoH,eAAgBxG,EAAYoF,OAC5B1D,GAAIzB,EAAOJ,IACXsG,iBAAkBA,I,oVC1DdX,EAAoB,CAFpBD,EAAa,cAEoB,QACjCE,EAAG,UAAMb,OAAO6B,SAASC,OAAtB,iBACHhB,GAAgB,gBAClBC,GAAYf,OAAO+B,qBACnBf,IAAU,EAaRC,GAAmB,SAACe,GACxB,IAAIC,EAAa,GAWjB,OAVAD,EAASjM,SAASmM,KAAKhK,KAAI,SAACzN,GAC1B,IAAI0X,EAAS,CACXjN,YAAazK,EAAEyK,YACfwG,GAAIjR,EAAEiR,GACNC,MAAOlR,EAAEkR,MACT3F,SAAUvL,EAAEuL,UAEdiM,EAAWnQ,KAAKqQ,MAGXF,GAGHf,GAAY,SAACc,GACjB,IAAIhN,EAAS,GAWb,OAVAgN,EAASjM,SAASqM,aAAalK,KAAI,SAACzN,GAClCuK,EAAS,CACPG,OAAQ,CACNC,QAAS3K,EAAE0K,QAEbD,YAAY,MAAD,OAAQzK,EAAEyK,YAAV,QACXD,MAAOxK,EAAEwK,UAIND,GAGHmM,GAAW,8BAAG,WAAOkB,GAAP,iBAAAC,EAAA,sEACKC,MAAM1B,EAC3B,CACExB,KAAMjH,KAAKC,UAAUgK,GACrBG,QAAS,CAAE,eAAgB,oBAC3BnU,OAAQ,QALM,cACZ2T,EADY,gBAQZA,EAAS5I,OARG,OASlB,IAAKiJ,EAAgB,GAAGxG,SAAU,CAChC,IAASsG,KAAUM,KAAQnX,MACpBsV,EAAkBzH,SAASgJ,KAhDhBnX,EAiDDmX,EAhDbO,WAAS1C,OAAO6B,SAASc,SAAShN,QAAQ,MAAO,IAGvDgC,SAASwK,OAAT,UAAqBnX,EAArB,mBAFa,IAEb,oBAAoD0X,EAApD,qBADa,gCACb,MAgDO1B,IACHhB,OAAO6B,SAASe,SAGpB5B,IAAU,EAnBQ,iCArCC,IAAChW,EACd0X,IAoCY,OAAH,sDA+BXtB,GAAwB,SAACyB,EAAQlX,GACrC,IAAMmX,EAAmBnL,SAASoL,eAAejC,IAC/CkC,EAAerL,SAAS2F,cAAc,2BAEpCwF,IACFA,EAAiBnG,aAAa,gBAAiBkG,EAAS,OAAS,SACjEG,EAAanL,UAAYgL,EAASlX,EAAEsX,YAActX,EAAEwJ,SAIlDkM,GAAgB,SAAC1V,GACrBgM,SAAS2E,iBAAiB,SAAS,SAAUhD,GAC3C,IAAM4J,EAAqBvL,SAASoL,eAAejC,IAAetE,aAAa,iBAE3ElD,EAAER,OAAO4C,KAAOoF,IAClBM,GAA6C,UAAvB8B,EAAgCvX,GAE7B,2BAAvB2N,EAAER,OAAOqK,WAAiE,UAAvBD,IACrDvL,SAAS2F,cAAc,4BAA4B1B,SAAU,OAK5C,8BAAG,kCAAA0G,EAAA,6DA/FPtX,EAgGF2V,EA/FR8B,KAAQnX,IAAIN,IAgGjB4U,aAAaE,WAxGQ,8BAsGC,SAKDyC,MAAM1B,GALL,cAKlBmB,EALkB,gBAMLA,EAAS5I,OANJ,OAMlB8I,EANkB,OAOlBE,EAAeF,EAAKnM,SAASqM,aAAa,GAC1CgB,EAAgBC,GAAc,CAClC3C,QAASO,GAAiBiB,GAC1BlN,OAAQkM,GAAUgB,KAGfnB,KAEHxJ,YAAW,kBAAM6L,EAAc1B,eAAc,KAC7CX,IAAY,GAhDgBpV,EAmDPyW,EAlDjBkB,SACAR,SADAQ,EAAgB3L,SAAS2F,cAAc,6BACvCwF,EAAgB,mBAAehC,GAAf,iGAAqHnV,EAAE4X,eAAvH,oMAItBD,EAAcE,mBAAmB,cAAeV,GA8ChD9C,OAAOyD,kBAAoBL,EAAczB,WACzCyB,EAActG,GAAG,UAAU,WACzBqE,GAAYiC,EAAcxB,kBAC1BR,IAAsB,EAAOgB,MAG/Bf,GAAce,GA1BU,kCAhCK,IAACzW,EACxB2X,EACAR,EAjEW9X,IA+FO,OAAH,oDA6BvByY,I,mBExIFjZ,EAAOD,QAAU,EAAQ,M,mBCAzB,sBAAoW,OAAtOmZ,EAArD,oBAAXlY,QAAoD,kBAApBA,OAAOuB,SAAmC,SAAiBK,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX5B,QAAyB4B,EAAIkF,cAAgB9G,QAAU4B,IAAQ5B,OAAOa,UAAY,gBAAkBe,IAAyBA,IAWnX,SAAWuW,GACT,IAAIC,EAYJ,QATgB,2BAAd,KAAc,kCACdA,GAA2B,EAG6C,WAAtBF,EAAQnZ,KAC1DC,EAAOD,QAAUoZ,IACjBC,GAA2B,IAGxBA,EAA0B,CAC7B,IAAIC,EAAa7D,OAAOyC,QACpBqB,EAAM9D,OAAOyC,QAAUkB,IAE3BG,EAAIC,WAAa,WAEf,OADA/D,OAAOyC,QAAUoB,EACVC,IAnBb,EAsBG,WACD,SAASE,IAIP,IAHA,IAAIvZ,EAAI,EACJiG,EAAS,GAENjG,EAAIwL,UAAU5D,OAAQ5H,IAAK,CAChC,IAAIwV,EAAahK,UAAUxL,GAE3B,IAAK,IAAIuB,KAAOiU,EACdvP,EAAO1E,GAAOiU,EAAWjU,GAI7B,OAAO0E,EAGT,SAASuT,EAAOzX,GACd,OAAOA,EAAEmJ,QAAQ,mBAAoBuO,oBA2HvC,OAxHA,SAASjI,EAAKkI,GACZ,SAASL,KAET,SAAS1D,EAAIpU,EAAKN,EAAOuU,GACvB,GAAwB,qBAAbtI,SAAX,CAQkC,kBAJlCsI,EAAa+D,EAAO,CAClBI,KAAM,KACLN,EAAIO,SAAUpE,IAEKqE,UACpBrE,EAAWqE,QAAU,IAAI3J,KAAkB,EAAb,IAAIA,KAAkC,MAArBsF,EAAWqE,UAI5DrE,EAAWqE,QAAUrE,EAAWqE,QAAUrE,EAAWqE,QAAQC,cAAgB,GAE7E,IACE,IAAI7T,EAAS0H,KAAKC,UAAU3M,GAExB,UAAUsO,KAAKtJ,KACjBhF,EAAQgF,GAEV,MAAO4I,IAET5N,EAAQyY,EAAUK,MAAQL,EAAUK,MAAM9Y,EAAOM,GAAOyY,mBAAmBC,OAAOhZ,IAAQiK,QAAQ,4DAA6DuO,oBAC/JlY,EAAMyY,mBAAmBC,OAAO1Y,IAAM2J,QAAQ,2BAA4BuO,oBAAoBvO,QAAQ,UAAWgP,QACjH,IAAIC,EAAwB,GAE5B,IAAK,IAAIC,KAAiB5E,EACnBA,EAAW4E,KAIhBD,GAAyB,KAAOC,GAEE,IAA9B5E,EAAW4E,KAWfD,GAAyB,IAAM3E,EAAW4E,GAAejP,MAAM,KAAK,KAGtE,OAAO+B,SAASwK,OAASnW,EAAM,IAAMN,EAAQkZ,GAG/C,SAAStZ,EAAIU,EAAKoN,GAChB,GAAwB,qBAAbzB,SAAX,CAUA,IANA,IAAImN,EAAM,GAGNpE,EAAU/I,SAASwK,OAASxK,SAASwK,OAAOvM,MAAM,MAAQ,GAC1DnL,EAAI,EAEDA,EAAIiW,EAAQrO,OAAQ5H,IAAK,CAC9B,IAAIsa,EAAQrE,EAAQjW,GAAGmL,MAAM,KACzBuM,EAAS4C,EAAMtR,MAAM,GAAGuI,KAAK,KAE5B5C,GAA6B,MAArB+I,EAAO3O,OAAO,KACzB2O,EAASA,EAAO1O,MAAM,GAAI,IAG5B,IACE,IAAIzI,EAAOiZ,EAAOc,EAAM,IAGxB,GAFA5C,GAAUgC,EAAUa,MAAQb,GAAWhC,EAAQnX,IAASiZ,EAAO9B,GAE3D/I,EACF,IACE+I,EAAS/J,KAAKiB,MAAM8I,GACpB,MAAO7I,IAKX,GAFAwL,EAAI9Z,GAAQmX,EAERnW,IAAQhB,EACV,MAEF,MAAOsO,KAGX,OAAOtN,EAAM8Y,EAAI9Y,GAAO8Y,GAyB1B,OAtBAhB,EAAI1D,IAAMA,EAEV0D,EAAIxY,IAAM,SAAUU,GAClB,OAAOV,EAAIU,GAAK,IAKlB8X,EAAImB,QAAU,SAAUjZ,GACtB,OAAOV,EAAIU,GAAK,IAKlB8X,EAAIoB,OAAS,SAAUlZ,EAAKiU,GAC1BG,EAAIpU,EAAK,GAAIgY,EAAO/D,EAAY,CAC9BqE,SAAU,MAIdR,EAAIO,SAAW,GACfP,EAAIqB,cAAgBlJ,EACb6H,EAGF7H,EAAK","file":"js/javascripts/cookie-consent-446ab2be46436017c7e5.js","sourcesContent":[" \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, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\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 = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 110);\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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","export var DEFAULTS = {\n type: 'checkbox',\n prefix: 'cookie-consent',\n append: true,\n appendDelay: 500,\n acceptAllButton: false,\n labels: {\n title: 'Cookies & Privacy',\n description: '

This site makes use of third-party cookies. Read more in our privacy policy.

',\n button: {\n default: 'Save preferences',\n acceptAll: 'Accept all'\n },\n aria: {\n button: 'Confirm cookie settings',\n tabList: 'List with cookie types',\n tabToggle: 'Toggle cookie tab'\n }\n }\n};","/**\n * Test is LocalStorage is supported.\n */\nexport var supportsLocalStorage = function supportsLocalStorage() {\n var test = 'localstorage-test-key';\n\n try {\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n } catch (e) {\n return false;\n }\n};\n/**\n * Get nested entry from an object by dot string notation: `config.get('foo.bar')`.\n */\n\nexport var getEntryByDotString = function getEntryByDotString(object, entryString) {\n var entries = entryString.replace(/\\[(\\w+)\\]/g, '.$1').replace(/^\\./, '').split('.');\n return entries.reduce(function (acc, entry) {\n if (acc && entry in acc) {\n return acc[entry];\n }\n\n return undefined;\n }, object);\n};","import { DEFAULTS } from './config-defaults';\nimport { getEntryByDotString } from './utils';\n/**\n * Config getter with defaults fallback and warning when required values are missing.\n */\n\nvar Config = function Config(settings) {\n return {\n get: function get(entryString) {\n var required = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var value = getEntryByDotString(settings, entryString);\n\n if (!value && required) {\n console.warn(\"Required setting '\".concat(entryString, \"' is missing.\"));\n return undefined;\n }\n\n return value === undefined ? getEntryByDotString(DEFAULTS, entryString) : value;\n }\n };\n};\n\nexport default Config;","/**\n * Curry a function. Will keep returning functions until the originally required arity has been\n * reached.\n */\nvar curry = function curry(fn) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.length < fn.length ? curry(fn.bind.apply(fn, [null].concat(args))) : fn.apply(void 0, args);\n };\n};\n\nexport default curry;","import curry from './curry';\n/**\n * Generic function for traversing a DOM, returning the first element\n * matching the predicate function.\n */\n\nvar closest = curry(function (predicate, node) {\n return !node || node.nodeType === Node.DOCUMENT_NODE || node.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? undefined : predicate(node) ? node : closest(predicate, node.parentNode);\n});\nexport default closest;","/* eslint-disable func-names */\nimport curry from './curry';\n/**\n * Creates a debounced function that delays invoking {fn} until after {delay}\n * milliseconds have elapsed since the last time the debounced function was invoked.\n * Returns a promise that resolves to the value returned by {fn}.\n */\n\nvar debounce = curry(function (fn, delay) {\n var timer;\n return function () {\n var _this = this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return new Promise(function (resolve) {\n var context = _this;\n clearTimeout(timer);\n timer = setTimeout(function () {\n return resolve(fn.apply(context, args));\n }, delay);\n });\n };\n});\nexport default debounce;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Simple deep-copy function for cloning objects.\n */\nvar deepCopy = function deepCopy(obj) {\n if (_typeof(obj) !== 'object' || obj === null) {\n return obj;\n }\n\n return Object.keys(obj).reduce(function (acc, key) {\n var value = obj[key];\n acc[key] = deepCopy(value);\n return acc;\n }, Array.isArray(obj) ? [] : {});\n};\n\nexport default deepCopy;","/**\n * Check if argument is defined.\n */\nvar defined = function defined(x) {\n return typeof x !== 'undefined';\n};\n\nexport default defined;","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * Grab the head of a collection.\n */\nexport default (function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n x = _ref2[0];\n\n return x;\n});","/**\n * Convert HTML string to DOM element.\n */\nvar htmlToElement = function htmlToElement(html) {\n var placeholder = document.createElement('div');\n placeholder.innerHTML = html;\n return placeholder.children.length ? placeholder.firstElementChild : undefined;\n};\n\nexport default htmlToElement;","import curry from './curry';\n/**\n * Store results of function calls and return the cache when input arguments\n * are the same.\n */\n\nvar memoize = curry(function (fn) {\n var cache = {};\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var key = JSON.stringify(args);\n\n if (!(key in cache)) {\n cache[key] = fn.apply(void 0, args);\n }\n\n return cache[key];\n };\n});\nexport default memoize;","import curry from './curry';\n/**\n * Curried map implementation.\n */\n\nvar map = curry(function (f, xs) {\n return xs.map(f);\n});\nexport default map;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport curry from './curry';\n/**\n * Return a partial copy of an object omitting the keys specified.\n */\n\nvar omit = curry(function (keys, o) {\n return Object.keys(o).reduce(function (acc, key) {\n return keys.includes(key) ? acc : _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, o[key]));\n }, {});\n});\nexport default omit;","/* eslint-disable no-console */\nimport defined from './defined';\n/**\n * Parse JSON in a safe way.\n */\n\nvar parseJson = function parseJson(json) {\n try {\n return JSON.parse(json);\n } catch (e) {\n if (defined(console)) {\n console.warn(e);\n }\n\n return undefined;\n }\n};\n\nexport default parseJson;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport curry from './curry';\n/**\n * Return a partial copy of an object containing only the keys specified.\n */\n\nvar pick = curry(function (keys, o) {\n return keys.filter(function (key) {\n return key in o;\n }).reduce(function (acc, key) {\n return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, o[key]));\n }, {});\n});\nexport default pick;","/**\n * Call preventDefault on an event object.\n * Might be combined with `tap` to create a chainable utility.\n * See also `preventingDefault`.\n */\nexport default (function (e) {\n return e.preventDefault();\n});","import compose from './compose';\nimport preventDefault from './preventDefault';\nimport tap from './tap';\n/**\n * Function decorator to create event listeners from common functions.\n * Avoids having to specify e.preventDefault() in functions, thus allowing the author to use them\n * outside an event listener context.\n */\n\nexport default (function (f) {\n return compose(f, tap(preventDefault));\n});","/**\n * Composer of functions. Will accept 0 or more functions.\n */\nexport default (function () {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (arg) {\n return fns.reduceRight(function (acc, fn) {\n return fn(acc);\n }, arg);\n };\n});","/**\n * For doing side-effects.\n * The generated function returns whatever argument it receives, and executes the side-effect\n * function in the middle. Handy for chaining logs. For instance:\n *\n * myPromise().then(tap(x => console.log(x))).then(x => ...);\n */\nexport default (function (f) {\n return function (x) {\n f(x);\n return x;\n };\n});","import curry from './curry';\n/**\n * Getter of properties.\n */\n\nvar prop = curry(function (property, o) {\n return o[property];\n});\nexport default prop;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport curry from './curry';\n/**\n * Grab the first n items of a collection.\n */\n\nvar take = curry(function (n, _ref) {\n var _ref2 = _toArray(_ref),\n x = _ref2[0],\n xs = _ref2.slice(1);\n\n return x && n ? [x].concat(_toConsumableArray(take(n - 1, xs))) : [];\n});\nexport default take;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport curry from './curry';\n/**\n * Grab the last n items of a collection.\n */\n\nvar takeLast = curry(function (n, xs) {\n return n > xs.length ? _toConsumableArray(xs) : n ? [xs[xs.length - n]].concat(_toConsumableArray(takeLast(n - 1, xs))) : [];\n});\nexport default takeLast;","/* eslint-disable func-names */\nimport curry from './curry';\nimport memoize from './memoize';\n/**\n * Creates a throttled function that invokes {fn} only every\n * {threshold} milliseconds.\n * Returns a promise that resolves to the value returned by {fn}.\n */\n\nvar throttle = curry(function (fn, threshold) {\n var getState = memoize(function () {\n return {\n last: undefined,\n timer: undefined\n };\n });\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var context = this;\n var now = +new Date();\n var state = getState.apply(void 0, args);\n return new Promise(function (resolve) {\n var invokeFn = function invokeFn() {\n state.last = now;\n return resolve(fn.apply(context, args));\n };\n\n if (state.last && now < state.last + threshold) {\n clearTimeout(state.timer);\n state.timer = setTimeout(invokeFn, threshold);\n return;\n }\n\n invokeFn();\n });\n };\n});\nexport default throttle;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Register event listeners and dispatch events.\n */\nvar EventDispatcher = function EventDispatcher() {\n var listeners = {};\n var queue = {};\n /**\n * Dispatch events to a certain listener type, or store them in a queue.\n */\n\n var dispatch = function dispatch(type, payload) {\n if (listeners[type]) {\n listeners[type].forEach(function (fn) {\n return fn(payload);\n });\n } else {\n queue[type] = [].concat(_toConsumableArray(queue[type] || []), [payload]);\n }\n };\n /**\n * Store listener with callback function per type. Invoke the queue if it exists.\n */\n\n\n var add = function add(type, fn) {\n listeners[type] = [].concat(_toConsumableArray(listeners[type] || []), [fn]);\n\n if (queue[type]) {\n queue[type].forEach(function (payload) {\n return dispatch(type, payload);\n });\n delete queue[type];\n }\n };\n\n return {\n add: add,\n dispatch: dispatch,\n listeners: listeners\n };\n};\n\nexport default EventDispatcher;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { htmlToElement } from '@grrr/utils';\nimport EventDispatcher from './event-dispatcher';\n/**\n * Dialog tab list with cookie tabs.\n */\n\nvar DialogTabList = function DialogTabList(_ref) {\n var config = _ref.config,\n preferences = _ref.preferences;\n var events = EventDispatcher();\n var TYPE = config.get('type');\n var PREFIX = config.get('prefix');\n /**\n * Render cookie tabs.\n */\n\n var renderTab = function renderTab(_ref2, index) {\n var id = _ref2.id,\n label = _ref2.label,\n description = _ref2.description,\n required = _ref2.required,\n checked = _ref2.checked,\n accepted = _ref2.accepted;\n\n /**\n * Check if the checkbox should be checked:\n *\n * 1. If any preference is saved, use that.\n * 2. If it's explicitly `required` in the settings, mark it checked (ignore\n * `required: false`, because of #3)\n * 3. Use the `checked` setting.\n */\n var shouldBeChecked = typeof accepted !== 'undefined' ? accepted : required === true ? required : checked;\n return \"\\n
  • \\n
    \\n \\n \\n \\n \\n
    \\n \\n
    \\n \").concat(description, \"\\n
    \\n \\n
  • \\n \");\n };\n /**\n * Render cookie tab list.\n */\n\n\n var renderTabList = function renderTabList() {\n var cookies = config.get('cookies', true) || [];\n var cookiesWithState = cookies.map(function (cookieType) {\n return _objectSpread(_objectSpread({}, cookieType), {}, {\n accepted: preferences.get(cookieType.id) ? preferences.get(cookieType.id).accepted : undefined\n });\n });\n return \"\\n \\n \");\n };\n /**\n * Tab list element.\n */\n\n\n var tabList = htmlToElement(renderTabList());\n /**\n * Simple method to get values from cookie checkboxes.\n */\n\n var getValues = function getValues() {\n var inputs = _toConsumableArray(tabList.querySelectorAll('input'));\n\n return inputs.map(function (input) {\n return {\n id: input.value,\n accepted: input.checked\n };\n });\n };\n /**\n * Handle tab selection.\n */\n\n\n var selectTab = function selectTab(_ref3) {\n var tabs = _ref3.tabs,\n panels = _ref3.panels,\n targetTab = _ref3.targetTab;\n var controls = targetTab ? targetTab.getAttribute('aria-controls') : '';\n tabs.forEach(function (tab) {\n return tab.setAttribute('aria-selected', tab === targetTab);\n });\n panels.forEach(function (panel) {\n return panel.setAttribute('aria-hidden', controls !== panel.id);\n });\n };\n /**\n * Attach event listener for tab click event.\n */\n\n\n var attachTabClickListeners = function attachTabClickListeners() {\n var tabs = _toConsumableArray(tabList.querySelectorAll('[role=\"tab\"]'));\n\n var panels = _toConsumableArray(tabList.querySelectorAll('[role=\"tabpanel\"]'));\n\n tabs.forEach(function (tab) {\n tab.addEventListener('click', function (e) {\n e.preventDefault();\n var targetTab = tab.getAttribute('aria-selected') === 'true' ? null : tab;\n selectTab({\n tabs: tabs,\n panels: panels,\n targetTab: targetTab\n });\n });\n });\n };\n\n return {\n init: function init() {\n attachTabClickListeners();\n },\n on: events.add,\n element: tabList,\n getValues: getValues\n };\n};\n\nexport default DialogTabList;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { htmlToElement, preventingDefault } from '@grrr/utils';\nimport EventDispatcher from './event-dispatcher';\nimport DialogTabList from './dialog-tablist';\n/**\n * Dialog which is shown to update cookie preferences.\n */\n\nvar Dialog = function Dialog(_ref) {\n var config = _ref.config,\n preferences = _ref.preferences;\n var tabList = DialogTabList({\n config: config,\n preferences: preferences\n });\n var events = EventDispatcher();\n var TYPE = config.get('type');\n var PREFIX = config.get('prefix'); // Only allow the `acceptAllButton` when no preferences have been stored.\n\n var ACCEPT_ALL_BUTTON = config.get('acceptAllButton') && !preferences.hasPreferences();\n /**\n * Render dialog element.\n */\n\n var renderDialog = function renderDialog() {\n return \"\\n \\n \");\n };\n /**\n * Dialog and form elements.\n */\n\n\n var dialog = htmlToElement(renderDialog());\n var form = dialog.querySelector('form');\n var button = form.querySelector('button');\n /**\n * Hide/show helpers.\n */\n\n var hide = function hide() {\n return dialog.setAttribute('aria-hidden', 'true');\n };\n\n var show = function show() {\n return dialog.setAttribute('aria-hidden', 'false');\n };\n /**\n * Compose values based on input type, the `acceptAllButton` configuration,\n * any stored preferences and the state of the input options.\n *\n * When an option is checked, the form will just submit. When nothing is checked,\n * it depends on the type and the `acceptAllButton` config setting.\n *\n * - Radio + option checked: success\n * - Radio + nothing checked + has `acceptAllButton`: select first + success\n * - Radio + nothing checked + no `acceptAllButton`: fail\n *\n * - Checkbox + option(s) checked: success\n * - Checkbox + nothing checked + has `acceptAllButton`: select all + success\n * - Checkbox + nothing checked + no `acceptAllButton`: success\n */\n\n\n var composeValues = function composeValues(values) {\n // Radio when no option is selected.\n if (TYPE === 'radio' && !values.find(function (v) {\n return v.accepted;\n })) {\n // If the `acceptAllButton` option is configured, select the first option and\n // let the form submit as if the user had selected it.\n if (ACCEPT_ALL_BUTTON) {\n values[0].accepted = true;\n return values;\n } // Do not submit if no option is selected and `acceptAllButton` is not configured.\n\n\n return [];\n } // Checkbox with `acceptAllButton` and no user-choosable option is checked.\n // We compare amount of required options against checked options.\n\n\n var requiredCount = config.get('cookies').filter(function (c) {\n return c.required;\n }).length;\n var checkedCount = values.filter(function (v) {\n return v.accepted;\n }).length;\n var userOptionsChecked = checkedCount > requiredCount;\n\n if (ACCEPT_ALL_BUTTON && TYPE === 'checkbox' && !userOptionsChecked) {\n return values.map(function (value) {\n return _objectSpread(_objectSpread({}, value), {}, {\n accepted: true\n });\n });\n } // Return the values untouched. Happens for:\n // - Radio when an option has been selected.\n // - Checkbox with or without checked option, except the `acceptAllButton` case above.\n\n\n return values;\n };\n /**\n * Handle form submits.\n */\n\n\n var submitHandler = function submitHandler(e) {\n e.preventDefault(); // Get values based on the rules defined in `composeValues`.\n\n var values = composeValues(tabList.getValues());\n\n if (!values) {\n return;\n } // Dispatch values and hide the dialog.\n\n\n events.dispatch('submit', values);\n hide();\n };\n /**\n * Update button label.\n */\n\n\n var updateButtonLabel = function updateButtonLabel(label) {\n button.textContent = label;\n };\n\n return {\n init: function init() {\n // Initialize tab list and append it to the form.\n tabList.init();\n form.insertBefore(tabList.element, form.firstElementChild); // Attach submit listener to the form.\n\n form.addEventListener('submit', preventingDefault(submitHandler)); // Update initial button label if `acceptAllButton` is set to true,\n // and no cookie preferences have been stored. Also listen for changes\n // in the form, and revert the button back to normal when an option has\n // been selected.\n\n if (ACCEPT_ALL_BUTTON) {\n updateButtonLabel(config.get('labels.button.acceptAll'));\n form.addEventListener('change', function (e) {\n updateButtonLabel(config.get('labels.button.default'));\n });\n }\n },\n on: events.add,\n show: show,\n hide: hide,\n element: dialog\n };\n};\n\nexport default Dialog;","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar GENERAL_ATTRIBUTE = 'data-cookie-consent';\nvar ACCEPTED_STATE_ATTRIBUTE = 'data-cookie-consent-accepted';\nvar REJECTED_STATE_ATTRIBUTE = 'data-cookie-consent-rejected';\n/**\n * DOM toggler, which enables conditional script tags or embedded content.\n */\n\nvar DomToggler = function DomToggler(config) {\n /**\n * Append a single script.\n * @TODO append it to the same location and re-add classes and attributes.\n */\n var appendScript = function appendScript(script) {\n var newScript = document.createElement('script');\n\n if (script.src) {\n newScript.src = script.src;\n } else {\n newScript.innerHTML = script.innerHTML;\n }\n\n document.head.appendChild(newScript);\n };\n /**\n * Enable script tags.\n * Note: scripts are not removed for the current view when preferences are updated.\n */\n\n\n var toggleScripts = function toggleScripts(_ref) {\n var id = _ref.id,\n accepted = _ref.accepted;\n\n if (!accepted) {\n return;\n }\n\n var scripts = document.documentElement.querySelectorAll(\"script[\".concat(GENERAL_ATTRIBUTE, \"=\\\"\").concat(id, \"\\\"]\"));\n\n _toConsumableArray(scripts).forEach(function (script) {\n appendScript(script);\n script.parentNode.removeChild(script);\n });\n };\n /**\n * Show a single iframe.\n */\n\n\n var showIframe = function showIframe(iframe) {\n var src = iframe.getAttribute('data-src');\n\n if (src) {\n iframe.setAttribute('src', src);\n iframe.removeAttribute('data-src');\n }\n };\n /**\n * Hide a single iframe.\n */\n\n\n var hideIframe = function hideIframe(iframe) {\n var src = iframe.getAttribute('src');\n\n if (src) {\n iframe.setAttribute('data-src', src);\n iframe.removeAttribute('src');\n }\n };\n /**\n * Show conditional iframes based on wanted state.\n */\n\n\n var toggleConditionalIframes = function toggleConditionalIframes(_ref2) {\n var id = _ref2.id,\n accepted = _ref2.accepted;\n var iframes = document.body.querySelectorAll(\"iframe[\".concat(GENERAL_ATTRIBUTE, \"=\\\"\").concat(id, \"\\\"]\"));\n\n _toConsumableArray(iframes).forEach(function (el) {\n return accepted ? showIframe(el) : hideIframe(el);\n });\n };\n /**\n * Show a single element.\n */\n\n\n var showElement = function showElement(el) {\n el.style.display = '';\n el.removeAttribute('aria-hidden');\n el.removeAttribute('hidden');\n };\n /**\n * Hide a single element.\n */\n\n\n var hideElement = function hideElement(el) {\n el.style.display = 'none';\n el.setAttribute('aria-hidden', 'true');\n };\n /**\n * Show conditional elements based on wanted state.\n */\n\n\n var toggleConditionalElements = function toggleConditionalElements(_ref3) {\n var id = _ref3.id,\n accepted = _ref3.accepted;\n var accepts = document.body.querySelectorAll(\"[\".concat(ACCEPTED_STATE_ATTRIBUTE, \"=\\\"\").concat(id, \"\\\"]\"));\n var rejects = document.body.querySelectorAll(\"[\".concat(REJECTED_STATE_ATTRIBUTE, \"=\\\"\").concat(id, \"\\\"]\"));\n\n _toConsumableArray(accepts).forEach(function (el) {\n return accepted ? showElement(el) : hideElement(el);\n });\n\n _toConsumableArray(rejects).forEach(function (el) {\n return accepted ? hideElement(el) : showElement(el);\n });\n };\n\n return {\n toggle: function toggle(preferences) {\n var cookies = config.get('cookies') || [];\n cookies.forEach(function (type) {\n var accepted = preferences.getState(type.id);\n toggleScripts({\n id: type.id,\n accepted: accepted\n });\n toggleConditionalElements({\n id: type.id,\n accepted: accepted\n });\n toggleConditionalIframes({\n id: type.id,\n accepted: accepted\n });\n });\n }\n };\n};\n\nexport default DomToggler;","import { supportsLocalStorage } from './utils';\n/**\n * Store items in LocalStorage.\n */\n\nvar Storage = function Storage() {\n var storageModule = supportsLocalStorage() ? window.localStorage : {\n attributes: {},\n setItem: function setItem(key, val) {\n this.attributes[key] = val;\n },\n getItem: function getItem(key) {\n return this.attributes[key];\n }\n };\n\n var get = function get(key, value) {\n return storageModule.getItem(key, value);\n };\n\n var set = function set(key, value) {\n return storageModule.setItem(key, value);\n };\n\n var has = function has(key) {\n return storageModule.getItem(key) !== null;\n };\n\n return {\n get: get,\n set: set,\n has: has\n };\n};\n\nexport default Storage;","import { parseJson } from '@grrr/utils';\nimport Storage from './storage';\nvar KEY_SUFFIX = 'preferences';\n/**\n * Normalize cookie preferences and set/get from Storage.\n */\n\nvar Preferences = function Preferences(prefix) {\n var KEY = \"\".concat(prefix, \"-\").concat(KEY_SUFFIX);\n var storage = Storage();\n\n var getAll = function getAll() {\n return parseJson(storage.get(KEY)) || [];\n };\n\n var get = function get(id) {\n return getAll().find(function (type) {\n return type.id === id;\n });\n };\n\n var getState = function getState(id) {\n return get(id) && get(id).accepted;\n };\n\n var hasPreferences = function hasPreferences() {\n return storage.has(KEY) && getAll().length;\n };\n\n var store = function store() {\n var cookies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return storage.set(KEY, JSON.stringify(cookies));\n };\n\n return {\n get: get,\n getAll: getAll,\n getState: getState,\n hasPreferences: hasPreferences,\n store: store\n };\n};\n\nexport default Preferences;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport Config from './config';\nimport Dialog from './dialog';\nimport DomToggler from './dom-toggler';\nimport EventDispatcher from './event-dispatcher';\nimport Preferences from './preferences';\n/**\n * Main constructor, which provides the API to the outside.\n */\n\nvar CookieConsent = function CookieConsent(settings) {\n // Show warning when settings are missing.\n if (_typeof(settings) !== 'object' || !Object.keys(settings).length) {\n console.warn(\"No settings specified.\");\n } // Construct 'classes'.\n\n\n var config = Config(settings);\n var preferences = Preferences(config.get('prefix'));\n var dialog = Dialog({\n config: config,\n preferences: preferences\n });\n var domToggler = DomToggler(config);\n var events = EventDispatcher(); // Update initial content.\n\n domToggler.toggle(preferences);\n\n var updatePreference = function updatePreference(cookies) {\n preferences.store(cookies);\n events.dispatch('update', preferences.getAll());\n domToggler.toggle(preferences);\n }; // Initialize dialog and bind `submit` event.\n\n\n dialog.init();\n dialog.on('submit', updatePreference); // Append dialog to the DOM, if this is not explicitly prevented.\n\n if (config.get('append') !== false) {\n var appendEl = document.querySelector('main') || document.body.firstElementChild;\n document.body.insertBefore(dialog.element, appendEl);\n } // Show the dialog when no preferences are found. If found, fire the `update` event.\n\n\n if (preferences.hasPreferences()) {\n events.dispatch('update', preferences.getAll());\n } else {\n // Show the dialog. Invoked via a timeout, to ensure it's added in the next cycle\n // to cater for possible transitions.\n window.setTimeout(function () {\n return dialog.show();\n }, config.get('appendDelay'));\n }\n\n return {\n getDialog: function getDialog() {\n return dialog.element;\n },\n hideDialog: dialog.hide,\n showDialog: dialog.show,\n isAccepted: preferences.getState,\n getPreferences: preferences.getAll,\n on: events.add,\n updatePreference: updatePreference\n };\n};\n\nexport default CookieConsent;","import CookieConsent from '@grrr/cookie-consent'\nimport Cookies from 'js-cookie'\n\n(() => {\n const isAccepted = 'cl_accepted'\n const cookieConsentObj = 'cookie-consent-preferences'\n const skipDeleteCookies = [isAccepted, 'lang']\n const url = `${window.location.origin}/cookies.json`\n const manageCookies = 'manageCookies'\n let isVisible = window.cookieConsentVisible\n let initRun = true\n\n const getCookie = (name) => {\n return Cookies.get(name) || false\n }\n\n const deleteCookie = (name) => {\n const domain = window.location.hostname.replace('www', '')\n const path = '/'\n const date = 'Sat, 26 Oct 1985 00:09:00 GMT'\n document.cookie = `${name}=; Path=${path}; Domain=${domain}; Expires=${date};`\n }\n\n const setCookieConsent = (response) => {\n let newCookies = []\n response.settings.data.map((i) => {\n let cookie = {\n description: i.description,\n id: i.id,\n label: i.label,\n required: i.required,\n }\n newCookies.push(cookie)\n\n })\n return newCookies\n }\n\n const setLabels = (response) => {\n let labels = {}\n response.settings.translations.map((i) => {\n labels = {\n button: {\n default: i.button,\n },\n description: `

    ${i.description}

    `,\n title: i.title,\n }\n\n })\n return labels\n }\n\n const sendCookies = async (acceptedCookies) => {\n const response = await fetch(url,\n {\n body: JSON.stringify(acceptedCookies),\n headers: { 'Content-Type': 'application/json' },\n method: 'PUT',\n })\n\n await response.json()\n if (!acceptedCookies[1].accepted) {\n for (let cookie in Cookies.get()) {\n if (!skipDeleteCookies.includes(cookie)) {\n deleteCookie(cookie)\n }\n }\n if (!initRun) {\n window.location.reload()\n }\n }\n initRun = false\n }\n\n const appendManageCookiesTab = (t) => {\n const cookieTabList = document.querySelector('.cookie-consent__tab-list')\n const manageCookiesTab = ``\n\n cookieTabList.insertAdjacentHTML('beforebegin', manageCookiesTab)\n }\n\n const setManageCookiesState = (isOpen, t) => {\n const manageCookiesTab = document.getElementById(manageCookies),\n cookieButton = document.querySelector('.cookie-consent__button')\n\n if (manageCookiesTab) {\n manageCookiesTab.setAttribute('aria-selected', isOpen ? 'true' : 'false')\n cookieButton.innerHTML = isOpen ? t.button_save : t.button\n }\n }\n\n const clickListener = (t) => {\n document.addEventListener('click', function (e) {\n const isManageCookieOpen = document.getElementById(manageCookies).getAttribute('aria-selected')\n\n if (e.target.id === manageCookies) {\n setManageCookiesState(isManageCookieOpen === 'false', t)\n }\n if (e.target.className === 'cookie-consent__button' && isManageCookieOpen === 'false') {\n document.querySelector('input[value=\"marketing\"]').checked = true\n }\n })\n }\n\n const cookieConsentInit = async () => {\n if (!getCookie(isAccepted)) {\n localStorage.removeItem(cookieConsentObj)\n }\n\n const response = await fetch(url)\n const data = await response.json()\n const translations = data.settings.translations[0]\n const cookieConsent = CookieConsent({\n cookies: setCookieConsent(data),\n labels: setLabels(data),\n })\n\n if (!isVisible) {\n // By default, the appendDelay option equals 500\n setTimeout(() => cookieConsent.hideDialog(), 501)\n isVisible = true\n }\n\n appendManageCookiesTab(translations)\n window.cookieConsentInit = cookieConsent.showDialog\n cookieConsent.on('update', () => {\n sendCookies(cookieConsent.getPreferences())\n setManageCookiesState(false, translations)\n })\n\n clickListener(translations)\n }\n\n cookieConsentInit()\n})()\n","import CookieConsent from './src/cookie-consent';\nexport default CookieConsent;","module.exports = require(\"regenerator-runtime\");\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;\n\n(function (factory) {\n var registeredInModuleLoader;\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n registeredInModuleLoader = true;\n }\n\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') {\n module.exports = factory();\n registeredInModuleLoader = true;\n }\n\n if (!registeredInModuleLoader) {\n var OldCookies = window.Cookies;\n var api = window.Cookies = factory();\n\n api.noConflict = function () {\n window.Cookies = OldCookies;\n return api;\n };\n }\n})(function () {\n function extend() {\n var i = 0;\n var result = {};\n\n for (; i < arguments.length; i++) {\n var attributes = arguments[i];\n\n for (var key in attributes) {\n result[key] = attributes[key];\n }\n }\n\n return result;\n }\n\n function decode(s) {\n return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n }\n\n function init(converter) {\n function api() {}\n\n function set(key, value, attributes) {\n if (typeof document === 'undefined') {\n return;\n }\n\n attributes = extend({\n path: '/'\n }, api.defaults, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n } // We're using \"expires\" because \"max-age\" is not supported by IE\n\n\n attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n try {\n var result = JSON.stringify(value);\n\n if (/^[\\{\\[]/.test(result)) {\n value = result;\n }\n } catch (e) {}\n\n value = converter.write ? converter.write(value, key) : encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n key = encodeURIComponent(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\\(\\)]/g, escape);\n var stringifiedAttributes = '';\n\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue;\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue;\n } // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n\n\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return document.cookie = key + '=' + value + stringifiedAttributes;\n }\n\n function get(key, json) {\n if (typeof document === 'undefined') {\n return;\n }\n\n var jar = {}; // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var i = 0;\n\n for (; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var cookie = parts.slice(1).join('=');\n\n if (!json && cookie.charAt(0) === '\"') {\n cookie = cookie.slice(1, -1);\n }\n\n try {\n var name = decode(parts[0]);\n cookie = (converter.read || converter)(cookie, name) || decode(cookie);\n\n if (json) {\n try {\n cookie = JSON.parse(cookie);\n } catch (e) {}\n }\n\n jar[name] = cookie;\n\n if (key === name) {\n break;\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar;\n }\n\n api.set = set;\n\n api.get = function (key) {\n return get(key, false\n /* read as raw */\n );\n };\n\n api.getJSON = function (key) {\n return get(key, true\n /* read as json */\n );\n };\n\n api.remove = function (key, attributes) {\n set(key, '', extend(attributes, {\n expires: -1\n }));\n };\n\n api.defaults = {};\n api.withConverter = init;\n return api;\n }\n\n return init(function () {});\n});"],"sourceRoot":""}