{"version":3,"sources":["webpack://crc/webpack/bootstrap","webpack://crc/./node_modules/@krakenjs/jsx-pragmatic/src/node.js","webpack://crc/./node_modules/@krakenjs/jsx-pragmatic/src/constants.js","webpack://crc/./node_modules/@krakenjs/jsx-pragmatic/src/renderers/dom.js","webpack://crc/./node_modules/@krakenjs/jsx-pragmatic/src/util.js","webpack://crc/./node_modules/@krakenjs/jsx-pragmatic/src/renderers/html.js","webpack://crc/./node_modules/preact/dist/preact.module.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/locale.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/order.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/params.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/defaults.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/env.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/fpti.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/funding.js","webpack://crc/./node_modules/@paypal/sdk-constants/src/platform.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://crc/./node_modules/@krakenjs/belter/src/device.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://crc/./node_modules/@krakenjs/belter/src/util.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://crc/./node_modules/@krakenjs/belter/src/dom.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://crc/./node_modules/@krakenjs/belter/src/constants.js","webpack://crc/./node_modules/@krakenjs/belter/src/storage.js","webpack://crc/./node_modules/@krakenjs/belter/src/experiment.js","webpack://crc/./node_modules/@krakenjs/belter/src/http.js","webpack://crc/./node_modules/@krakenjs/zalgo-promise/src/utils.js","webpack://crc/./node_modules/@krakenjs/zalgo-promise/src/exceptions.js","webpack://crc/./node_modules/@krakenjs/zalgo-promise/src/flush.js","webpack://crc/./node_modules/@krakenjs/zalgo-promise/src/promise.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://crc/./node_modules/preact/hooks/dist/hooks.module.js","webpack://crc/./node_modules/core-js-pure/internals/fails.js","webpack://crc/./node_modules/core-js-pure/internals/function-uncurry-this.js","webpack://crc/./node_modules/core-js-pure/internals/is-callable.js","webpack://crc/./node_modules/@krakenjs/cross-domain-utils/src/constants.js","webpack://crc/./node_modules/@krakenjs/cross-domain-utils/src/utils.js","webpack://crc/./node_modules/core-js-pure/internals/well-known-symbol.js","webpack://crc/./node_modules/@paypal/sdk-client/src/global.js","webpack://crc/./node_modules/@paypal/sdk-client/src/config.js","webpack://crc/./node_modules/@paypal/sdk-client/src/script.js","webpack://crc/./node_modules/@paypal/sdk-client/src/logger.js","webpack://crc/./node_modules/@paypal/sdk-client/src/domains.js","webpack://crc/./node_modules/@paypal/sdk-client/src/api.js","webpack://crc/./node_modules/@paypal/sdk-client/src/events.js","webpack://crc/./src/utils/sdk.js","webpack://crc/./node_modules/core-js-pure/internals/descriptors.js","webpack://crc/./src/utils/global.js","webpack://crc/./node_modules/core-js-pure/internals/export.js","webpack://crc/./node_modules/core-js-pure/internals/global.js","webpack://crc/./src/utils/functional.js","webpack://crc/./node_modules/core-js-pure/internals/is-object.js","webpack://crc/./node_modules/core-js-pure/stable/array/includes.js","webpack://crc/./node_modules/core-js-pure/stable/object/entries.js","webpack://crc/./node_modules/core-js-pure/internals/function-call.js","webpack://crc/./node_modules/core-js-pure/internals/has-own-property.js","webpack://crc/./node_modules/core-js-pure/stable/array/from.js","webpack://crc/./node_modules/core-js-pure/stable/array/find.js","webpack://crc/./node_modules/core-js-pure/internals/object-define-property.js","webpack://crc/./node_modules/core-js-pure/internals/an-object.js","webpack://crc/./src/utils/miscellaneous.js","webpack://crc/./src/utils/constants.js","webpack://crc/./node_modules/@krakenjs/cross-domain-safe-weakmap/src/util.js","webpack://crc/./node_modules/@krakenjs/cross-domain-safe-weakmap/src/weakmap.js","webpack://crc/./node_modules/@krakenjs/cross-domain-safe-weakmap/src/native.js","webpack://crc/./node_modules/core-js-pure/internals/to-object.js","webpack://crc/./node_modules/core-js-pure/internals/classof-raw.js","webpack://crc/./node_modules/core-js-pure/internals/to-indexed-object.js","webpack://crc/./node_modules/core-js-pure/internals/path.js","webpack://crc/./node_modules/core-js-pure/internals/create-non-enumerable-property.js","webpack://crc/./node_modules/core-js-pure/internals/length-of-array-like.js","webpack://crc/./node_modules/core-js-pure/stable/string/starts-with.js","webpack://crc/./src/utils/debug.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://crc/./node_modules/core-js-pure/internals/function-bind-context.js","webpack://crc/./node_modules/core-js-pure/internals/iterators.js","webpack://crc/./node_modules/core-js-pure/internals/entry-unbind.js","webpack://crc/./node_modules/core-js-pure/internals/require-object-coercible.js","webpack://crc/./node_modules/core-js-pure/internals/get-built-in.js","webpack://crc/./node_modules/core-js-pure/internals/is-pure.js","webpack://crc/./node_modules/core-js-pure/internals/classof.js","webpack://crc/./node_modules/@krakenjs/beaver-logger/src/constants.js","webpack://crc/./node_modules/@krakenjs/beaver-logger/src/config.js","webpack://crc/./node_modules/@krakenjs/beaver-logger/src/util.js","webpack://crc/./node_modules/@krakenjs/beaver-logger/src/logger.js","webpack://crc/./node_modules/@krakenjs/beaver-logger/src/http.js","webpack://crc/./src/utils/elements.js","webpack://crc/./src/utils/logger.js","webpack://crc/./node_modules/core-js-pure/internals/add-to-unscopables.js","webpack://crc/./node_modules/core-js-pure/internals/function-bind-native.js","webpack://crc/./node_modules/core-js-pure/internals/create-property-descriptor.js","webpack://crc/./node_modules/core-js-pure/internals/a-callable.js","webpack://crc/./node_modules/core-js-pure/internals/to-string.js","webpack://crc/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://crc/./node_modules/core-js-pure/internals/is-null-or-undefined.js","webpack://crc/./node_modules/core-js-pure/internals/object-keys.js","webpack://crc/./node_modules/core-js-pure/internals/hidden-keys.js","webpack://crc/./node_modules/core-js-pure/stable/object/assign.js","webpack://crc/./node_modules/core-js-pure/internals/internal-state.js","webpack://crc/./node_modules/core-js-pure/stable/object/keys.js","webpack://crc/./node_modules/core-js-pure/internals/function-uncurry-this-clause.js","webpack://crc/./node_modules/core-js-pure/internals/object-property-is-enumerable.js","webpack://crc/./node_modules/core-js-pure/internals/indexed-object.js","webpack://crc/./node_modules/core-js-pure/internals/to-property-key.js","webpack://crc/./node_modules/core-js-pure/internals/get-method.js","webpack://crc/./node_modules/core-js-pure/internals/shared-store.js","webpack://crc/./node_modules/core-js-pure/internals/to-integer-or-infinity.js","webpack://crc/./node_modules/core-js-pure/internals/to-string-tag-support.js","webpack://crc/./node_modules/core-js-pure/internals/shared-key.js","webpack://crc/./node_modules/core-js-pure/stable/string/includes.js","webpack://crc/./node_modules/core-js-pure/internals/try-to-string.js","webpack://crc/./node_modules/core-js-pure/internals/uid.js","webpack://crc/./node_modules/core-js-pure/internals/enum-bug-keys.js","webpack://crc/./node_modules/core-js-pure/internals/object-create.js","webpack://crc/./node_modules/core-js-pure/internals/define-built-in.js","webpack://crc/./node_modules/core-js-pure/internals/set-to-string-tag.js","webpack://crc/./node_modules/core-js-pure/internals/get-iterator-method.js","webpack://crc/./node_modules/core-js-pure/internals/object-is-prototype-of.js","webpack://crc/./node_modules/core-js-pure/internals/iterator-define.js","webpack://crc/./node_modules/core-js-pure/internals/create-iter-result-object.js","webpack://crc/./node_modules/core-js-pure/internals/array-iteration.js","webpack://crc/./node_modules/css-loader/dist/runtime/api.js","webpack://crc/./node_modules/isomorphic-style-loader/insertCss.js","webpack://crc/./node_modules/core-js-pure/internals/document-all.js","webpack://crc/./node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","webpack://crc/./node_modules/core-js-pure/internals/is-symbol.js","webpack://crc/./node_modules/core-js-pure/internals/use-symbol-as-uid.js","webpack://crc/./node_modules/core-js-pure/internals/symbol-constructor-detection.js","webpack://crc/./node_modules/core-js-pure/internals/shared.js","webpack://crc/./node_modules/core-js-pure/internals/ie8-dom-define.js","webpack://crc/./node_modules/core-js-pure/internals/document-create-element.js","webpack://crc/./node_modules/core-js-pure/internals/v8-prototype-define-bug.js","webpack://crc/./node_modules/core-js-pure/internals/array-includes.js","webpack://crc/./node_modules/core-js-pure/internals/to-length.js","webpack://crc/./node_modules/core-js-pure/internals/array-species-create.js","webpack://crc/./node_modules/core-js-pure/internals/is-array.js","webpack://crc/./node_modules/core-js-pure/internals/is-constructor.js","webpack://crc/./node_modules/core-js-pure/internals/not-a-regexp.js","webpack://crc/./node_modules/core-js-pure/internals/correct-is-regexp-logic.js","webpack://crc/./node_modules/core-js-pure/internals/iterators-core.js","webpack://crc/./node_modules/core-js-pure/internals/object-get-prototype-of.js","webpack://crc/./node_modules/core-js-pure/stable/array/flat-map.js","webpack://crc/./node_modules/core-js-pure/internals/object-keys-internal.js","webpack://crc/./node_modules/core-js-pure/internals/to-absolute-index.js","webpack://crc/./node_modules/core-js-pure/modules/es.string.iterator.js","webpack://crc/./node_modules/core-js-pure/internals/iterator-close.js","webpack://crc/./node_modules/core-js-pure/internals/is-array-iterator-method.js","webpack://crc/./node_modules/core-js-pure/internals/create-property.js","webpack://crc/./node_modules/core-js-pure/internals/get-iterator.js","webpack://crc/./node_modules/core-js-pure/modules/es.array.iterator.js","webpack://crc/./node_modules/core-js-pure/internals/internal-metadata.js","webpack://crc/./node_modules/core-js-pure/internals/object-get-own-property-names.js","webpack://crc/./node_modules/core-js-pure/internals/iterate.js","webpack://crc/./node_modules/core-js-pure/internals/an-instance.js","webpack://crc/./node_modules/core-js-pure/stable/map/index.js","webpack://crc/./node_modules/core-js-pure/es/object/assign.js","webpack://crc/./node_modules/core-js-pure/modules/es.object.assign.js","webpack://crc/./node_modules/core-js-pure/internals/function-apply.js","webpack://crc/./node_modules/core-js-pure/internals/to-primitive.js","webpack://crc/./node_modules/core-js-pure/internals/engine-v8-version.js","webpack://crc/./node_modules/core-js-pure/internals/engine-user-agent.js","webpack://crc/./node_modules/core-js-pure/internals/ordinary-to-primitive.js","webpack://crc/./node_modules/core-js-pure/internals/define-global-property.js","webpack://crc/./node_modules/core-js-pure/internals/is-forced.js","webpack://crc/./node_modules/core-js-pure/internals/object-assign.js","webpack://crc/./node_modules/core-js-pure/internals/math-trunc.js","webpack://crc/./node_modules/core-js-pure/internals/object-get-own-property-symbols.js","webpack://crc/./node_modules/core-js-pure/es/array/find.js","webpack://crc/./node_modules/core-js-pure/modules/es.array.find.js","webpack://crc/./node_modules/core-js-pure/internals/array-species-constructor.js","webpack://crc/./node_modules/core-js-pure/internals/inspect-source.js","webpack://crc/./node_modules/core-js-pure/es/array/includes.js","webpack://crc/./node_modules/core-js-pure/modules/es.array.includes.js","webpack://crc/./node_modules/core-js-pure/es/string/includes.js","webpack://crc/./node_modules/core-js-pure/modules/es.string.includes.js","webpack://crc/./node_modules/core-js-pure/internals/is-regexp.js","webpack://crc/./node_modules/core-js-pure/es/object/entries.js","webpack://crc/./node_modules/core-js-pure/modules/es.object.entries.js","webpack://crc/./node_modules/core-js-pure/internals/object-to-array.js","webpack://crc/./node_modules/core-js-pure/es/string/starts-with.js","webpack://crc/./node_modules/core-js-pure/modules/es.string.starts-with.js","webpack://crc/./node_modules/core-js-pure/es/array/from.js","webpack://crc/./node_modules/core-js-pure/internals/string-multibyte.js","webpack://crc/./node_modules/core-js-pure/internals/weak-map-basic-detection.js","webpack://crc/./node_modules/core-js-pure/internals/function-name.js","webpack://crc/./node_modules/core-js-pure/internals/iterator-create-constructor.js","webpack://crc/./node_modules/core-js-pure/internals/object-define-properties.js","webpack://crc/./node_modules/core-js-pure/internals/html.js","webpack://crc/./node_modules/core-js-pure/internals/correct-prototype-getter.js","webpack://crc/./node_modules/core-js-pure/internals/object-to-string.js","webpack://crc/./node_modules/core-js-pure/internals/object-set-prototype-of.js","webpack://crc/./node_modules/core-js-pure/internals/a-possible-prototype.js","webpack://crc/./node_modules/core-js-pure/modules/es.array.from.js","webpack://crc/./node_modules/core-js-pure/internals/array-from.js","webpack://crc/./node_modules/core-js-pure/internals/call-with-safe-iteration-closing.js","webpack://crc/./node_modules/core-js-pure/internals/check-correctness-of-iteration.js","webpack://crc/./node_modules/core-js-pure/es/array/flat-map.js","webpack://crc/./node_modules/core-js-pure/modules/es.array.flat-map.js","webpack://crc/./node_modules/core-js-pure/internals/flatten-into-array.js","webpack://crc/./node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js","webpack://crc/./node_modules/core-js-pure/modules/es.array.unscopables.flat-map.js","webpack://crc/./node_modules/core-js-pure/es/map/index.js","webpack://crc/./node_modules/core-js-pure/modules/es.map.js","webpack://crc/./node_modules/core-js-pure/modules/es.map.constructor.js","webpack://crc/./node_modules/core-js-pure/internals/collection.js","webpack://crc/./node_modules/core-js-pure/internals/object-get-own-property-names-external.js","webpack://crc/./node_modules/core-js-pure/internals/array-slice-simple.js","webpack://crc/./node_modules/core-js-pure/internals/object-is-extensible.js","webpack://crc/./node_modules/core-js-pure/internals/array-buffer-non-extensible.js","webpack://crc/./node_modules/core-js-pure/internals/freezing.js","webpack://crc/./node_modules/core-js-pure/internals/collection-strong.js","webpack://crc/./node_modules/core-js-pure/internals/define-built-ins.js","webpack://crc/./node_modules/core-js-pure/internals/set-species.js","webpack://crc/./node_modules/core-js-pure/modules/web.dom-collections.iterator.js","webpack://crc/./node_modules/core-js-pure/internals/dom-iterables.js","webpack://crc/./node_modules/core-js-pure/es/object/keys.js","webpack://crc/./node_modules/core-js-pure/modules/es.object.keys.js","webpack://crc/./src/utils/events.js","webpack://crc/./src/utils/observers.js","webpack://crc/./node_modules/preact/compat/dist/compat.module.js","webpack://crc/./src/components/modal/v2/styles/index.scss?7531","webpack://crc/./src/components/modal/v2/parts/views/NoInterest/styles.scss?0bca","webpack://crc/./src/components/modal/v2/parts/views/LongTerm/styles.scss?85a3","webpack://crc/./src/components/modal/v2/parts/views/PayIn1/styles.scss?e334","webpack://crc/./src/components/modal/v2/parts/views/ShortTerm/styles.scss?0d3f","webpack://crc/./src/components/modal/v2/parts/views/ProductList/styles.scss?094f","webpack://crc/./src/components/modal/v2/styles/index.scss","webpack://crc/./src/components/modal/v2/parts/views/NoInterest/styles.scss","webpack://crc/./src/components/modal/v2/parts/views/LongTerm/styles.scss","webpack://crc/./src/components/modal/v2/parts/views/PayIn1/styles.scss","webpack://crc/./src/components/modal/v2/parts/views/ShortTerm/styles.scss","webpack://crc/./src/components/modal/v2/parts/views/ProductList/styles.scss","webpack://crc/./src/components/modal/v2/lib/utils.js","webpack://crc/./src/components/modal/v2/lib/providers/xprops.js","webpack://crc/./src/components/modal/v2/lib/providers/serverData.js","webpack://crc/./src/components/modal/v2/lib/providers/transition.js","webpack://crc/./src/components/modal/v2/lib/hooks/helpers.js","webpack://crc/./src/components/modal/v2/lib/providers/scroll.js","webpack://crc/./src/components/modal/v2/parts/Overlay.jsx","webpack://crc/./src/components/modal/v2/parts/Container.jsx","webpack://crc/./src/components/modal/v2/parts/Modal.jsx","webpack://crc/./src/components/modal/v2/lib/hooks/content.js","webpack://crc/./src/components/modal/v2/lib/hooks/currency.js","webpack://crc/./src/components/modal/v2/parts/Icon.jsx","webpack://crc/./src/components/modal/v2/parts/Header.jsx","webpack://crc/./src/components/modal/v2/parts/Button.jsx","webpack://crc/./src/components/modal/v2/parts/ProductListLink.jsx","webpack://crc/./src/components/modal/v2/parts/Instructions.jsx","webpack://crc/./src/components/modal/v2/parts/InlineLinks.jsx","webpack://crc/./src/components/modal/v2/parts/views/NoInterest/Content.jsx","webpack://crc/./src/components/modal/v2/lib/hooks/applyNow.js","webpack://crc/./src/components/modal/v2/lib/computedVariables.js","webpack://crc/./src/components/modal/v2/lib/locale.js","webpack://crc/./src/components/modal/v2/lib/hooks/calculator.js","webpack://crc/./src/components/modal/v2/parts/OfferCard.jsx","webpack://crc/./src/components/modal/v2/parts/OfferAccordion.jsx","webpack://crc/./src/components/modal/v2/parts/LoadingShimmer.jsx","webpack://crc/./src/components/modal/v2/parts/TermsTable.jsx","webpack://crc/./src/components/modal/v2/parts/Calculator.jsx","webpack://crc/./src/components/modal/v2/parts/views/LongTerm/Content.jsx","webpack://crc/./src/components/modal/v2/parts/views/PayIn1/Content.jsx","webpack://crc/./src/components/modal/v2/parts/Donut.jsx","webpack://crc/./src/components/modal/v2/parts/views/ShortTerm/Content.jsx","webpack://crc/./src/components/modal/v2/parts/Tile.jsx","webpack://crc/./src/components/modal/v2/parts/views/ProductList/Content.jsx","webpack://crc/./src/components/modal/v2/parts/BodyContent.jsx","webpack://crc/./src/components/modal/v2/index.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","hasOwnProperty","p","s","renderChildren","children","renderer","result","renderedChild","render","Array","isArray","subchild","push","ElementNode","props","type","onRender","this","el","FragmentNode","TextNode","text","ComponentNode","component","renderComponent","child","normalizeChildren","length","normalizeChild","toString","TypeError","node","element","ELEMENT_DEFAULT_XML_NAMESPACE","ATTRIBUTE_DEFAULT_XML_NAMESPACE","createTextElement","doc","createTextNode","addProps","keys","prop","val","match","addEventListener","slice","toLowerCase","xmlNamespace","setAttributeNS","setAttribute","tagName","id","replace","charAt","Math","floor","random","ADD_CHILDREN","firstChild","Error","win","contentWindow","document","docElement","documentElement","removeChild","dom","appendChild","addChildren","html","ELEMENT_PROP","innerHTML","window","querySelectorAll","script","parentNode","newScript","createElement","textContent","replaceChild","fixScripts","opts","domRenderer","xmlNamespaceDomRenderer","childNode","createElementNS","createElementWithXMLNamespace","SELF_CLOSING_TAGS","br","htmlEncode","htmlRenderer","concat","join","renderedProps","filter","map","renderedChildren","u","f","e","a","v","h","y","arguments","defaultProps","ref","__k","__","__b","__e","__d","__c","__h","constructor","__v","vnode","current","_","b","setProperty","test","style","cssText","w","g","removeEventListener","indexOf","removeAttribute","event","x","context","A","P","base","C","setTimeout","T","$","__r","debounceRendering","sort","shift","__P","M","__n","ownerSVGElement","N","H","k","I","z","L","nextSibling","q","S","j","some","insertBefore","contextType","__E","prototype","B","sub","state","_sb","__s","getDerivedStateFromProps","componentWillMount","componentDidMount","componentWillReceiveProps","shouldComponentUpdate","forEach","componentWillUpdate","componentDidUpdate","getChildContext","getSnapshotBeforeUpdate","O","diffed","localName","nodeType","is","data","childNodes","dangerouslySetInnerHTML","attributes","__html","checked","unmount","componentWillUnmount","D","E","F","G","Consumer","Provider","splice","getDerivedStateFromError","setState","componentDidCatch","forceUpdate","Promise","then","resolve","COUNTRY","AD","AE","AG","AI","AL","AM","AN","AO","AR","AT","AU","AW","AZ","BA","BB","BE","BF","BG","BH","BI","BJ","BM","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CG","CH","CI","CK","CL","CM","CN","CO","CR","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GI","GL","GM","GN","GP","GR","GT","GW","GY","HK","HN","HR","HU","ID","IE","IL","IN","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KY","KZ","LA","LC","LI","LK","LS","LT","LU","LV","MA","MC","MD","ME","MG","MH","MK","ML","MN","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PL","PM","PN","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","ST","SV","SZ","TC","TD","TG","TH","TJ","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","VA","VC","VE","VG","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW","LANG","CS","DA","EL","EN","HE","JA","KO","SQ","TL","VI","ZH","ZH_HANT","COUNTRY_LANGS","INTENT","CAPTURE","AUTHORIZE","ORDER","TOKENIZE","SUBSCRIPTION","SDK_SETTINGS","NAMESPACE","CLIENT_TOKEN","MERCHANT_ID","PARTNER_ATTRIBUTION_ID","STAGE_HOST","API_STAGE_HOST","CSP_NONCE","ENABLE_3DS","SDK_INTEGRATION_SOURCE","USER_ID_TOKEN","AMOUNT","CLIENT_METADATA_ID","PAGE_TYPE","USER_EXPERIENCE_FLOW","POPUPS_DISABLED","SDK_QUERY_KEYS","COMPONENTS","ENV","DEBUG","CACHEBUST","CLIENT_ID","LOCALE","CURRENCY","COMMIT","VAULT","BUYER_COUNTRY","ENABLE_FUNDING","DISABLE_FUNDING","DISABLE_CARD","INTEGRATION_DATE","STAGE_ALIAS","CDN_REGISTRY","VERSION","QUERY_BOOL","TRUE","FALSE","UNKNOWN","PROTOCOL","HTTP","HTTPS","PAGE_TYPES","HOME","PRODUCT","CART","CHECKOUT","PRODUCT_LISTING","SEARCH_RESULTS","PRODUCT_DETAILS","MINI_CART","DEFAULT_CURRENCY","DEFAULT_INTENT","DEFAULT_SALE_COMMIT","DEFAULT_NONSALE_COMMIT","DEFAULT_VAULT","LOCAL","STAGE","SANDBOX","PRODUCTION","TEST","FPTI_KEY","FEED","STATE","EVENT_NAME","TRANSITION","PAGE","BUTTON_TYPE","SESSION_UID","BUTTON_SESSION_UID","TOKEN","CONTEXT_ID","CONTEXT_TYPE","REFERER","MERCHANT_DOMAIN","PAY_ID","SELLER_ID","DATA_SOURCE","BUTTON_SOURCE","ERROR_CODE","ERROR_DESC","PAGE_LOAD_TIME","EXPERIMENT_NAME","TREATMENT_NAME","TRANSITION_TIME","FUNDING_LIST","FUNDING_COUNT","CHOSEN_FUNDING","BUTTON_LAYOUT","INTEGRATION_IDENTIFIER","SDK_NAME","SDK_VERSION","SDK_ENVIRONMENT","MOBILE_APP_VERSION","MOBILE_BUNDLE_IDENTIFIER","USER_AGENT","USER_ACTION","CONTEXT_CORRID","SDK_CACHE","SDK_LOAD_TIME","IS_VAULT","RESPONSE_DURATION","PAYMENT_FLOW","BUTTON_VERSION","FI_LIST","FI_ID","CHOSEN_FI_TYPE","SELECTED_FI","POTENTIAL_PAYMENT_METHODS","PAY_NOW","STICKINESS_ID","TIMESTAMP","OPTION_SELECTED","USER_IDENTITY_METHOD","FIELDS_COMPONENT_SESSION_ID","CPL_COMP_METRICS","CPL_CHUNK_METRICS","CPL_QUERY_METRICS","FPTI_USER_ACTION","CONTINUE","FPTI_DATA_SOURCE","PAYMENTS_SDK","FPTI_FEED","FPTI_SDK_NAME","CARD","VISA","MASTERCARD","AMEX","DISCOVER","HIPER","ELO","JCB","CUP","PLATFORM","DESKTOP","MOBILE","_extends","assign","target","source","apply","isDevice","userAgent","navigator","mockUserAgent","isIE","documentMode","Boolean","isIEIntranet","status","err","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","objectIDs","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","_construct","Parent","args","Class","isNativeReflectConstruct","instance","Function","_wrapNativeSuper","_cache","Map","undefined","has","set","Wrapper","writable","configurable","getFunctionName","fn","__name__","displayName","setFunctionName","base64encode","str","btoa","encodeURIComponent","p1","String","fromCharCode","parseInt","Buffer","from","base64decode","atob","decodeURIComponent","charCodeAt","uniqueID","chars","toISOString","getGlobal","global","__GLOBAL__","serializeArgs","JSON","stringify","subkey","obj","WeakMap","uid","getObjectID","passed","Element","ownerDocument","isElement","getEmptyObject","memoizeGlobalIndex","memoizeGlobalIndexValidFrom","memoize","method","options","simpleCache","thisCache","thisNamespace","cacheTime","time","memoizeIndex","memoizedFunction","cache","cacheKey","getOrSet","cacheResult","now","reset","inlineMemoize","logic","__inline_memoize_cache__","noop","stringifyError","level","stack","message","newErr","stringifyErrorMessage","defaultMessage","values","svgToBase64","svg","objFilter","promiseDebounce","delay","promise","timeout","clearTimeout","localPromise","ZalgoPromise","try","reject","safeInterval","loop","cancel","eventEmitter","triggered","handlers","emitter","on","eventName","handler","handlerList","cancelled","once","listener","trigger","promises","all","triggerOnce","capitalizeFirstLetter","string","toUpperCase","debounce","clear","ExtendableError","captureStackTrace","self","ReferenceError","ATTRIBUTES","UID","isDocumentReady","body","readyState","isDocumentInteractive","urlEncode","waitForWindowReady","parseQuery","queryString","params","split","pair","extendQuery","originalQuery","extendUrl","url","originalUrl","originalHash","query","hash","hashString","getPerformance","performance","timing","connectEnd","navigationStart","abs","isBrowser","location","getScript","host","path","reverse","scripts","getElementsByTagName","src","isLocalStorageEnabled","localStorage","setItem","getItem","removeItem","getBrowserLocales","nav","locales","languages","language","userLanguage","locale","country","lang","destroyElement","getResourceLoadTime","getEntries","entries","entry","duration","interval","setInterval","clearInterval","currentScript","getCurrentScript","getStackTrace","stackDetails","exec","scriptLocation","inferCurrentScript","currentUID","getCurrentScriptUID","getAttribute","hashedString","total","strHashStr","dataset","getStorage","lifetime","accessedStorage","STORAGE_KEY","newStateID","getState","storage","localStorageEnabled","rawStorage","parse","getID","getSession","session","__session__","created","guid","isStateFresh","getSessionState","getSessionID","getBelterExperimentStorage","isEventUnique","loggedBeacons","getRandomInteger","range","experiment","group","sample","logTreatment","logCheckpoint","sticky","throttle","throttlePercentiles","getThrottlePercentile","treatment","started","forced","exp","isEnabled","isDisabled","getTreatment","log","checkpoint","payload","logStart","logComplete","headerBuilders","request","headers","json","normalizedHeaders","builtHeaders","headerBuilder","xhr","XMLHttpRequest","responseHeaders","rawHeaders","trim","parseHeaders","getAllResponseHeaders","contentType","isJSON","responseBody","responseText","evt","open","setRequestHeader","ontimeout","send","isPromise","item","Window","flushPromise","dispatchedErrors","possiblyUnhandledPromiseHandlers","activeCount","flushActive","startActive","endActive","resolved","rejected","errorHandled","error","dispatching","isAsync","res","dispatch","dispatchPossiblyUnhandledError","asyncReject","chain","firstPromise","secondPromise","onSuccess","onError","promiseResult","catch","finally","onFinally","toPromise","lazy","count","results","prom","awaitPromises","items","onPossiblyUnhandledException","flush","_objectWithoutPropertiesLoose","excluded","sourceKeys","__H","__V","__N","every","useDebugValue","V","__m","requestAnimationFrame","cancelAnimationFrame","NATIVE_BIND","require","FunctionPrototype","uncurryThisWithBind","$documentAll","documentAll","IS_HTMLDDA","argument","IE_WIN_ACCESS_ERROR","getActualProtocol","protocol","getProtocol","mockDomain","isAboutProtocol","canReadFromWindow","getActualDomain","parent","getParent","getDomain","domain","isSameDomain","desc","getOwnPropertyDescriptor","isMockProtocol","isActuallySameDomain","assertSameDomain","iframeWindows","iframeFrames","isWindowClosed","allowMock","closed","mockclosed","top","iframeIndex","collection","safeIndexOf","frame","contains","isFrameWindowClosed","linkFrameWindow","cleanIframes","isWindow","__cross_domain_utils_window_check__","isCurrentDomain","shared","hasOwn","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","getPayPalDomain","__PAYPAL_DOMAIN__","getSDKScript","errorString","buildScriptNotFoundError","__SDK_HOST__","__PATH__","attr","getLogger","Logger","clientID","info","basicAuth","__PAYPAL_API_DOMAIN__","Authorization","grant_type","access_token","getNamespace","querySelector","getLibraryVersion","__MESSAGES__","isZoidComponent","stringStartsWith","getBelterStorage","getOrCreateStorageID","isStorageFresh","getDeviceID","messagingDeviceID","isScriptBeingDestroyed","__ENV__","fails","getGlobalState","globalState","createState","index","config","messagesMap","setGlobalState","getGlobalUrl","createGlobalVariableGetter","variable","newState","globalEvent","uncurryThis","isCallable","isForced","createNonEnumerableProperty","wrapConstructor","NativeConstructor","FORCED","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","descriptor","TARGET","GLOBAL","STATIC","stat","PROTO","proto","nativeSource","targetPrototype","dontCallGetSet","wrap","real","check","it","globalThis","partial","intialArgs","nextArgs","curry","arity","curried","toObject","DESCRIPTORS","IE8_DOM_DEFINE","V8_PROTOTYPE_DEFINE_BUG","anObject","toPropertyKey","$TypeError","$defineProperty","$getOwnPropertyDescriptor","Attributes","isObject","$String","initialState","objectAssign","withCredentials","xhttp","onreadystatechange","reduce","accumulator","header","stringIncludes","objectEntries","parseObjFromEncoding","encodedStr","binary","bytes","Uint8Array","decodedStr","Uint16Array","buffer","createEvent","Event","initEvent","dynamicImport","getCurrentTime","getTime","getEventListenerPassiveOptionIfSupported","viewport","content","head","__pp_prev_content__","__pp_prev_overflow__","overflow","__pp_prev_msOverflowStyle__","msOverflowStyle","passiveIfSupported","passive","getStandardProductOffer","offer","getTsCookieFromStorage","cookieVal","ts","cookie","find","cookieStr","startsWith","fromEntries","URLSearchParams","CrossDomainSafeWeakMap","weakmap","freeze","testWeakMap","testKey","hasNativeWeakMap","_cleanupClosedWindows","delete","isSafeToReadWrite","requireObjectCoercible","$Object","stringSlice","IndexedObject","definePropertyModule","createPropertyDescriptor","toLength","ppDebug","inZoid","debugObj","search","console","warn","_setPrototypeOf","aCallable","that","getBuiltIn","isNullOrUndefined","aFunction","namespace","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","wellKnownSymbol","CORRECT_ARGUMENTS","tag","tryGet","callee","LOG_LEVEL","INFO","WARN","ERROR","AUTO_FLUSH_LEVEL","LOG_LEVEL_PRIORITY","DEFAULT_LOG_LEVEL","sendBeacon","useBlob","blob","Blob","extendIfDefined","prefix","logLevel","transport","enableSendBeacon","httpWindow","beaconResult","hasHeaders","canUseSendBeacon","isAmplitude","amplitudeApiKey","flushInterval","events","tracking","payloadBuilders","metaBuilders","trackingBuilders","print","warning","immediateFlush","meta","builder","api_key","event_type","transition_name","event_properties","logger","logPayload","timestamp","enqueue","addBuilder","builders","debug","track","trackingPayload","addPayloadBuilder","addMetaBuilder","addTrackingBuilder","addHeaderBuilder","setTransport","newTransport","configure","getWindowFromElement","defaultView","HTMLElement","nodeName","container","className","getElementsByClassName","elem","span","appendImage","alt","srcset","logo","Image","dimensions","width","height","svgWrapper","canvas","elementContains","parentEl","childEl","Node","ELEMENT_NODE","parentBounds","left","bottom","innerHeight","right","innerWidth","getBoundingClientRect","childBounds","elementOutside","getRoot","baseElement","elementWindow","domPath","offsetHeight","computedRoot","arrayFind","elements","root","eventsIndexes","refIndex","trackingIndexes","activeIndexes","trimmedMeta","objectKeys","arrayIncludes","integration_type","messaging_version","selector","bitmap","tryToString","classof","_inheritsLoose","subClass","superClass","internalObjectKeys","enumBugKeys","NATIVE_WEAK_MAP","sharedKey","hiddenKeys","store","metadata","facade","enforce","getterFor","TYPE","$propertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","1","toPrimitive","isSymbol","func","defineGlobalProperty","trunc","number","postfix","activeXDocument","definePropertiesModule","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","display","Properties","TAG","SET_METHOD","getMethod","Iterators","ITERATOR","isPrototypeOf","IS_PURE","FunctionName","createIteratorConstructor","setToStringTag","defineBuiltIn","IteratorsCore","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","IteratorPrototype","BUGGY_SAFARI_ITERATORS","returnThis","Iterable","NAME","IteratorConstructor","next","DEFAULT","IS_SET","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","done","lengthOfArrayLike","arraySpeciesCreate","createMethod","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","$this","callbackfn","specificCreate","boundFunction","findIndex","filterReject","useSourceMap","list","base64","cssMapping","sourceMapping","unescape","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","_i","inserted","removeCss","ids","getElementById","styles","_temp","_ref","_ref$replace","_ref$prepend","prepend","_ref$prefix","_styles$i","css","media","sourceMap","file","styleSheet","propertyIsEnumerableModule","toIndexedObject","$Symbol","iterator","V8_VERSION","getOwnPropertySymbols","symbol","version","copyright","license","EXISTS","toAbsoluteIndex","IS_INCLUDES","fromIndex","includes","toIntegerOrInfinity","min","arraySpeciesConstructor","originalArray","inspectSource","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","isRegExp","MATCH","METHOD_NAME","regexp","error1","error2","PrototypeOfArrayIteratorPrototype","arrayIterator","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","max","integer","InternalStateModule","defineIterator","createIterResultObject","setInternalState","getInternalState","iterated","point","kind","innerResult","innerError","ArrayPrototype","propertyKey","getIteratorMethod","usingIterator","iteratorMethod","addToUnscopables","Arguments","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","isExtensible","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","enable","getOwnPropertyNames","fastKey","getWeakData","onFreeze","isArrayIteratorMethod","getIterator","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","step","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","Prototype","ordinaryToPrimitive","TO_PRIMITIVE","input","pref","exoticToPrim","process","Deno","versions","v8","valueOf","replacement","feature","detection","normalize","POLYFILL","NATIVE","getOwnPropertySymbolsModule","$assign","chr","argumentsLength","ceil","entryUnbind","$find","SKIPS_HOLES","isConstructor","SPECIES","$Array","functionToString","$includes","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","$entries","TO_ENTRIES","nativeStartsWith","CORRECT_IS_REGEXP_LOGIC","CONVERT_TO_STRING","pos","first","second","position","size","codeAt","getDescriptor","ENUMERABLE_NEXT","defineProperties","aPossiblePrototype","setter","CORRECT_SETTER","checkCorrectnessOfIteration","callWithSafeIterationClosing","createProperty","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","ENTRIES","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","flattenIntoArray","flatMap","sourceLen","doesNotExceedSafeInteger","original","start","depth","mapper","thisArg","targetIndex","sourceIndex","mapFn","init","InternalMetadataModule","iterate","anInstance","internalStateGetterFor","CONSTRUCTOR_NAME","wrapper","common","Constructor","IS_WEAK","ADDER","NativePrototype","exported","IS_ADDER","getConstructor","setStrong","$getOwnPropertyNames","arraySlice","windowNames","getWindowNames","end","fin","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","ArrayBuffer","preventExtensions","defineBuiltIns","setSpecies","last","define","previous","getEntry","removed","prev","add","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","unsafe","DOMIterables","COLLECTION_NAME","Collection","CollectionPrototype","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","nativeKeys","awaitFirstRender","awaitWindowLoad","getIntersectionObserverPolyfill","MutationObserver","mutationList","newMessageContainers","mutation","attributeName","arrayFrom","addedNodes","hasAttribute","targetedChildNode","Messages","_auto","containersToUpdate","IntersectionObserver","observer","isIntersecting","et","visible","unobserve","threshold","firstContainer","renderStart","isIntersectingFallback","minWidth","Number","minHeight","rootBounds","intersectionRatio","renderComplete","description","intersectionRect","isPureReactComponent","__f","for","$$typeof","isReactComponent","__u","__a","__R","U","__O","pop","fallback","W","revealOrder","Z","J","K","cancelBubble","Q","defaultPrevented","persist","isPropagationStopped","isDefaultPrevented","nativeEvent","nn","class","tn","multiple","selected","defaultValue","en","insertCss","locals","_getContent","_getCss","_insertCss","___CSS_LOADER_API_IMPORT___","getContent","currency","amount","payerId","clientId","merchantId","customerId","buyerCountry","ignoreCache","deviceID","env","stageTag","integrationType","channel","ecToken","devTouchpoint","payer_id","client_id","merchant_id","customer_id","buyer_country","ignore_cache","ec_token","acc","origin","XPropsContext","createContext","XPropsProvider","useState","xprops","xProps","setXProps","useEffect","onProps","newProps","useXProps","useContext","ServerData","ServerDataProvider","serverData","_setServerData","setServerData","updates","useServerData","TransitionContext","setStatus","TransitionStateProvider","onShow","btn","classList","remove","focus","observe","useTransitionState","onClose","linkName","useDidUpdateEffect","deps","mounted","useRef","ScrollContext","addScrollCallback","removeScrollCallback","scrollTo","ScrollProvider","containerRef","callbacks","setCallbacks","handleScroll","callback","passiveOption","currentCallbacks","scrollTop","useScroll","cb","dependencies","useCallback","Overlay","handleClose","handleEscapeKeyPress","charCode","onClick","Container","contentWrapperRef","views","onReady","transitionState","loading","setLoading","products","productMeta","product","messageRequestId","keyCode","tabArray","getComputedStyle","visibility","shiftKey","activeElement","preventDefault","opacity","Modal","useProduct","currencyFormat","formattedStr","foundString","filteredString","Icon","color","aria-hidden","viewBox","fill","xmlns","transform","stroke","stroke-width","stroke-linecap","fill-rule","clip-rule","clip-path","maskUnits","mask","Header","headline","subheadline","isQualifying","qualifyingSubheadline","viewName","isScrolled","setScrolled","countryClassName","aria-label","Button","forwardRef","classes","secondary","ProductListLink","openProductList","Instructions","instructions","instruction","renderBullet","InlineLinks","textChunk","linkText","linkUrl","href","NoInterest","terms","buttonText","disclaimer","footer","linkToProductList","buttonRef","handleApplyNowClick","clickTitle","refId","urlBase","local","stage","sandbox","production","intervalId","useApplyNow","lineContent","aria-describedby","getComputedVariables","offers","minAmount","calculator","belowThreshold","maxAmount","aboveThreshold","getLocale","decimalSeparator","toLocaleString","delocalize","localizedDecimalSeparator","separator","localize","minimumFractionDigits","maximumFractionDigits","getDisplayValue","delocalizedValue","centVal","formattedValue","setCurrency","reducer","action","isLoading","autoSubmit","inputValue","prevValue","newInputValue","formattedAmount","view","OfferCard","termsLabel","aprRemoveTrailingZeros","apr","aprFieldTitle","zeroApr","nonZeroApr","offerHeader","totalInterest","formattedTotalInterest","formattedTotalCost","OfferAccordion","aprDisclaimer","activeSelection","setActiveSelection","setOpen","currencySymbolFormat","offerPayment","offerNumInstallments","eMoney","formattedPeriodicPayment","LoadingShimmer","numOffers","offerCountry","TermsTable","setNumOffers","qualifyingOffers","qualifying","idx","Calculator","setExpandedState","calculateRef","viewWithOffers","onCalculate","useReducer","viewWithOffersAmount","inputAmount","debouncedCalculate","useMemo","changeInput","submit","useCalculator","title","inputLabel","inputPlaceholder","inputCurrencySymbol","hasUsedInputField","setHasUsedInputField","hasInitialAmount","hasEnteredAmount","emptyState","displayValue","setDisplayValue","genericError","replaceRegExp","getError","onSubmit","aria-required","placeholder","onInput","selectionStart","selectionEnd","targetValue","onInputValue","newDisplayValue","finalValue","parseFloat","toFixed","selectionOffset","setSelectionRange","onKeyDown","ctrlKey","metaKey","select","aria-live","LongTerm","disclosure","navLinkPrefix","cta","expandedState","zeroAPR","mixedAPR","nonZeroAPR","totalNonZero","totalZero","aprType","getAPRDetails","isQualifyingAmount","buttonTextEligible","buttonTextIneligible","PayIn1","Donut","strokeWidth","strokeLinecap","cx","cy","radius","fontSize","segmentStrokeWidth","currentNum","numOfPayments","timeStamp","periodicPayment","percentage","segStrokeWidth","strokeDasharray","segments","stroke-dasharray","stroke-dashoffset","text-anchor","ShortTerm","estimatedInstallments","donutTimestamps","learnMoreLink","hasInstallments","donutScreenReaderString","total_payment","payment_date","localeFormattedPayment","installment","Tile","setViewName","ProductList","productTiles","availableTiles","payLater","tile","credit","BodyContent","primaryViewName","defaultViewName","productViews","useProductMeta","closeButton","viewComponents","PAYPAL_CREDIT_NO_INTEREST","PAY_LATER_LONG_TERM","PAY_LATER_PAY_IN_1","PAY_LATER_SHORT_TERM","PRODUCT_LIST","setupModal"],"mappings":"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K,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK,KACLC,GAAK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","file":"smart-credit-modal-v2.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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 231);\n","/* @flow */\n\nimport { NODE_TYPE } from './constants';\n\nexport type NodePropsType = {\n [string] : any // eslint-disable-line flowtype/no-weak-types\n};\n\nexport type EmptyProps = {||};\n\nexport type NodeRenderer = (N) => O;\nexport type NodeRendererFactory = (L) => NodeRenderer;\n\ntype Primitive = string | boolean | number;\ntype NullablePrimitive = Primitive | null | void;\n\nexport type NodeType = ElementNode | TextNode | FragmentNode | ComponentNode<*>; // eslint-disable-line no-use-before-define\nexport type ChildNodeType = ElementNode | TextNode | ComponentNode<*>; // eslint-disable-line no-use-before-define\nexport type ChildType = ChildNodeType | Primitive | $ReadOnlyArray;\nexport type ChildrenType = $ReadOnlyArray;\nexport type NullableChildType = $ReadOnlyArray | ChildNodeType | NullablePrimitive;\nexport type NullableChildrenType = $ReadOnlyArray;\n\nexport type ComponentFunctionType

= (P, ChildrenType) => NullableChildType;\n\nexport type CreateElementNode =

(string, P, ...NullableChildrenType) => ElementNode; // eslint-disable-line no-undef, no-use-before-define\nexport type CreateComponentNode =

(ComponentFunctionType

, P, ...NullableChildrenType) => ComponentNode<*>; // eslint-disable-line no-undef, no-use-before-define\nexport type CreateNullComponentNode =

(ComponentFunctionType

, null, ...NullableChildrenType) => ComponentNode<*>; // eslint-disable-line no-undef, no-use-before-define\n\nexport type CreateNode = CreateNullComponentNode & CreateComponentNode & CreateElementNode;\n\nfunction renderChildren(children : $ReadOnlyArray>, renderer : NodeRenderer<*, *>) : $ReadOnlyArray { // eslint-disable-line no-use-before-define\n const result = [];\n\n for (const child of children) {\n const renderedChild = child.render(renderer);\n\n if (!renderedChild) {\n continue;\n } else if (Array.isArray(renderedChild)) {\n for (const subchild of renderedChild) {\n if (subchild) {\n result.push(subchild);\n }\n }\n } else {\n result.push(renderedChild);\n }\n }\n\n return result;\n}\n\nexport class ElementNode {\n type : (typeof NODE_TYPE.ELEMENT) = NODE_TYPE.ELEMENT;\n\n name : string;\n props : NodePropsType;\n children : $ReadOnlyArray>; // eslint-disable-line no-use-before-define\n onRender : ?(T) => void; // eslint-disable-line no-undef\n\n constructor(name : string, props : NodePropsType, children : $ReadOnlyArray>) { // eslint-disable-line no-use-before-define\n this.name = name;\n this.props = props || {};\n this.children = children;\n\n const onRender = this.props.onRender;\n if (typeof onRender === 'function') {\n this.onRender = onRender;\n delete props.onRender;\n }\n }\n\n render(renderer : NodeRenderer<*, *>) : T {\n const el = renderer(this);\n if (this.onRender) {\n this.onRender(el);\n }\n return el;\n }\n\n renderChildren(renderer : NodeRenderer<*, *>) : $ReadOnlyArray {\n return renderChildren(this.children, renderer);\n }\n}\n\nexport class FragmentNode {\n type : (typeof NODE_TYPE.FRAGMENT) = NODE_TYPE.FRAGMENT;\n\n children : $ReadOnlyArray>; // eslint-disable-line no-use-before-define\n\n constructor(children : $ReadOnlyArray>) { // eslint-disable-line no-use-before-define\n this.children = children;\n }\n\n render(renderer : NodeRenderer<*, *>) : $ReadOnlyArray {\n return renderChildren(this.children, renderer);\n }\n}\n\nexport class TextNode {\n type : (typeof NODE_TYPE.TEXT) = NODE_TYPE.TEXT;\n\n text : string;\n\n constructor(text : string) {\n this.text = text;\n }\n\n render(renderer : NodeRenderer<*, *>) : T {\n return renderer(this);\n }\n}\n\n// eslint-disable-next-line no-unused-vars\nexport class ComponentNode

{\n type : (typeof NODE_TYPE.COMPONENT) = NODE_TYPE.COMPONENT;\n\n component : ComponentFunctionType;\n props : NodePropsType;\n // eslint-disable-next-line no-use-before-define\n children : $ReadOnlyArray>;\n\n constructor(component : ComponentFunctionType, props : NodePropsType, children : $ReadOnlyArray>) {\n this.component = component;\n this.props = props || {};\n this.children = children;\n\n this.props.children = children;\n }\n\n renderComponent(renderer : NodeRenderer<*, *>) : * {\n const child = normalizeChild(this.component(this.props, this.children)); // eslint-disable-line no-use-before-define\n if (child) {\n return child.render(renderer);\n }\n }\n\n render(renderer : NodeRenderer<*, *>) : T {\n return renderer(this);\n }\n\n renderChildren(renderer : NodeRenderer<*, *>) : $ReadOnlyArray {\n return renderChildren(this.children, renderer);\n }\n}\n\nfunction normalizeChildren(children : NullableChildrenType) : $ReadOnlyArray> {\n const result = [];\n\n for (const child of children) {\n if (!child) {\n continue;\n } else if (typeof child === 'string' || typeof child === 'number') {\n result.push(new TextNode(child.toString()));\n } else if (typeof child === 'boolean') {\n continue;\n } else if (Array.isArray(child)) {\n for (const subchild of normalizeChildren(child)) {\n result.push(subchild);\n }\n } else if (child && (child.type === NODE_TYPE.ELEMENT || child.type === NODE_TYPE.TEXT || child.type === NODE_TYPE.COMPONENT)) {\n result.push(child);\n } else {\n throw new TypeError(`Unrecognized node type: ${ typeof child }`);\n }\n }\n\n return result;\n}\n\nfunction normalizeChild(child) : ElementNode | TextNode | ComponentNode<*> | FragmentNode | void {\n const children = normalizeChildren(Array.isArray(child) ? child : [ child ]);\n\n if (children.length === 1) {\n return children[0];\n } else if (children.length > 1) {\n return new FragmentNode(children);\n }\n}\n\nexport const node : CreateNode =

(element, props : P, ...children) => {\n children = normalizeChildren(children);\n\n if (typeof element === 'string') {\n // $FlowFixMe\n return new ElementNode(element, props, children);\n }\n\n if (typeof element === 'function') {\n // $FlowFixMe\n return new ComponentNode<*>(element, props, children);\n }\n\n throw new TypeError(`Expected jsx element to be a string or a function`);\n};\n\nexport const Fragment : ComponentFunctionType = (props, children) => {\n return children;\n};\n","/* @flow */\n\nexport const NODE_TYPE = {\n ELEMENT: ('element' : 'element'),\n TEXT: ('text' : 'text'),\n COMPONENT: ('component' : 'component'),\n FRAGMENT: ('fragment' : 'fragment')\n};\n","/* @flow */\n\nimport { ComponentNode, TextNode, type NodeRenderer, ElementNode } from '../node';\nimport { NODE_TYPE } from '../constants';\nimport { uniqueID } from '../util';\n\ntype DomNodeRenderer = NodeRenderer;\ntype DomTextRenderer = NodeRenderer;\ntype DomComponentRenderer = NodeRenderer, HTMLElement | TextNode | $ReadOnlyArray | void>;\ntype DomRenderer = DomComponentRenderer & DomNodeRenderer & DomTextRenderer;\n\nconst ELEMENT_TAG = {\n HTML: 'html',\n IFRAME: 'iframe',\n SCRIPT: 'script',\n SVG: 'svg',\n DEFAULT: 'default'\n};\n\nconst ELEMENT_PROP = {\n ID: 'id',\n INNER_HTML: 'innerHTML',\n EL: 'el',\n XLINK_HREF: 'xlink:href'\n};\n\nconst ELEMENT_DEFAULT_XML_NAMESPACE : {| [$Values] : string |} = {\n [ ELEMENT_TAG.SVG ]: 'http://www.w3.org/2000/svg'\n};\n\nconst ATTRIBUTE_DEFAULT_XML_NAMESPACE : {| [$Values] : string |} = {\n [ ELEMENT_PROP.XLINK_HREF ]: 'http://www.w3.org/1999/xlink'\n};\n\nfunction fixScripts(el : HTMLElement | Element, doc : Document = window.document) {\n for (const script of el.querySelectorAll('script')) {\n const parentNode = script.parentNode;\n\n if (!parentNode) {\n continue;\n }\n\n const newScript = doc.createElement('script');\n newScript.text = script.textContent;\n parentNode.replaceChild(newScript, script);\n }\n}\n\nfunction createElement(doc : Document, node : ElementNode) : HTMLElement | Element {\n if (node.props[ELEMENT_PROP.EL]) {\n return node.props[ELEMENT_PROP.EL];\n } else {\n return doc.createElement(node.name);\n }\n}\n\nfunction createElementWithXMLNamespace(doc : Document, node : ElementNode, xmlNamespace : string) : HTMLElement | Element {\n return doc.createElementNS(xmlNamespace, node.name);\n}\n\nfunction createTextElement(doc : Document, node : TextNode) : Text {\n return doc.createTextNode(node.text);\n}\n\nfunction addProps(el : HTMLElement | Element, node) {\n const props = node.props;\n\n for (const prop of Object.keys(props)) {\n const val = props[prop];\n\n if (val === null || typeof val === 'undefined' || prop === ELEMENT_PROP.EL || prop === ELEMENT_PROP.INNER_HTML) {\n continue;\n }\n\n if (prop.match(/^on[A-Z][a-z]/) && typeof val === 'function') {\n el.addEventListener(prop.slice(2).toLowerCase(), val);\n } else if (typeof val === 'string' || typeof val === 'number') {\n const xmlNamespace = ATTRIBUTE_DEFAULT_XML_NAMESPACE[prop];\n if (xmlNamespace) {\n el.setAttributeNS(xmlNamespace, prop, val.toString());\n } else {\n el.setAttribute(prop, val.toString());\n }\n } else if (typeof val === 'boolean') {\n if (val === true) {\n el.setAttribute(prop, '');\n }\n }\n }\n\n if (el.tagName.toLowerCase() === ELEMENT_TAG.IFRAME && !props.id) {\n el.setAttribute(ELEMENT_PROP.ID, `jsx-iframe-${ uniqueID() }`);\n }\n}\nconst ADD_CHILDREN : { [string] : (HTMLElement | Element, ElementNode, DomNodeRenderer) => void } = {\n\n [ ELEMENT_TAG.IFRAME ]: (el, node) => {\n const firstChild = node.children[0];\n\n if (node.children.length !== 1 || !(firstChild && firstChild.type === NODE_TYPE.ELEMENT) || firstChild.name !== ELEMENT_TAG.HTML) {\n throw new Error(`Expected only single html element node as child of ${ ELEMENT_TAG.IFRAME } element`);\n }\n \n el.addEventListener('load', () => {\n\n // $FlowFixMe\n const win = el.contentWindow;\n \n if (!win) {\n throw new Error(`Expected frame to have contentWindow`);\n }\n\n const doc = win.document;\n const docElement = doc.documentElement;\n\n while (docElement.children && docElement.children.length) {\n docElement.removeChild(docElement.children[0]);\n }\n\n // eslint-disable-next-line no-use-before-define\n const child : HTMLElement = firstChild.render(dom({ doc }));\n \n while (child.children.length) {\n docElement.appendChild(child.children[0]);\n }\n });\n },\n\n [ ELEMENT_TAG.SCRIPT ]: (el, node) => {\n const firstChild = node.children[0];\n\n if (node.children.length !== 1 || !(firstChild && firstChild.type === NODE_TYPE.TEXT)) {\n throw new Error(`Expected only single text node as child of ${ ELEMENT_TAG.SCRIPT } element`);\n }\n \n // $FlowFixMe\n el.text = firstChild.text;\n },\n\n [ ELEMENT_TAG.DEFAULT ]: (el, node, renderer) => {\n for (const child of node.renderChildren(renderer)) {\n el.appendChild(child);\n }\n }\n};\n\nfunction addChildren(el : HTMLElement | Element, node : ElementNode, doc : Document, renderer : DomNodeRenderer) {\n if (node.props.hasOwnProperty(ELEMENT_PROP.INNER_HTML)) {\n\n if (node.children.length) {\n throw new Error(`Expected no children to be passed when ${ ELEMENT_PROP.INNER_HTML } prop is set`);\n }\n\n const html = node.props[ELEMENT_PROP.INNER_HTML];\n\n if (typeof html !== 'string') {\n throw new TypeError(`${ ELEMENT_PROP.INNER_HTML } prop must be string`);\n }\n\n if (node.name === ELEMENT_TAG.SCRIPT) {\n // $FlowFixMe\n el.text = html;\n } else {\n el.innerHTML = html;\n fixScripts(el, doc);\n }\n\n } else {\n const addChildrenToElement = ADD_CHILDREN[node.name] || ADD_CHILDREN[ELEMENT_TAG.DEFAULT];\n addChildrenToElement(el, node, renderer);\n }\n}\n\ntype DomOptions = {|\n doc? : Document\n|};\n\nconst getDefaultDomOptions = () : DomOptions => {\n // $FlowFixMe\n return {};\n};\n\nexport function dom(opts? : DomOptions = getDefaultDomOptions()) : DomRenderer {\n const { doc = document } = opts;\n \n const xmlNamespaceDomRenderer = (node : ElementNode, xmlNamespace : string) : HTMLElement => {\n if (node.type === NODE_TYPE.COMPONENT) {\n return node.renderComponent(childNode => xmlNamespaceDomRenderer(childNode, xmlNamespace));\n }\n \n if (node.type === NODE_TYPE.TEXT) {\n // $FlowFixMe\n return createTextElement(doc, node);\n }\n \n if (node.type === NODE_TYPE.ELEMENT) {\n const el = createElementWithXMLNamespace(doc, node, xmlNamespace);\n addProps(el, node);\n addChildren(el, node, doc, childNode => xmlNamespaceDomRenderer(childNode, xmlNamespace));\n // $FlowFixMe\n return el;\n }\n\n throw new TypeError(`Unhandleable node`);\n };\n \n const domRenderer : DomRenderer = (node) => {\n if (node.type === NODE_TYPE.COMPONENT) {\n return node.renderComponent(domRenderer);\n }\n \n if (node.type === NODE_TYPE.TEXT) {\n // $FlowFixMe\n return createTextElement(doc, node);\n }\n \n if (node.type === NODE_TYPE.ELEMENT) {\n const xmlNamespace = ELEMENT_DEFAULT_XML_NAMESPACE[node.name.toLowerCase()];\n\n if (xmlNamespace) {\n // $FlowFixMe\n return xmlNamespaceDomRenderer(node, xmlNamespace);\n }\n\n const el = createElement(doc, node);\n addProps(el, node);\n addChildren(el, node, doc, domRenderer);\n // $FlowFixMe\n return el;\n }\n\n throw new TypeError(`Unhandleable node`);\n };\n\n return domRenderer;\n}\n","/* @flow */\n\nconst ALPHA_CHARS = '0123456789abcdef';\n\nexport function uniqueID() : string {\n return 'xxxxxxxxxx'.replace(/./g, () => ALPHA_CHARS.charAt(Math.floor(Math.random() * ALPHA_CHARS.length)));\n}\n\n// eslint-disable-next-line flowtype/no-weak-types\nexport function isDefined(val : any) : boolean %checks {\n return (val !== null && typeof val !== 'undefined');\n}\n","/* @flow */\n/* eslint unicorn/prefer-spread: off */\n\nimport { ComponentNode, TextNode, ElementNode, type NodePropsType, type NodeRenderer } from '../node';\nimport { NODE_TYPE } from '../constants';\n\ntype HTMLRenderer = NodeRenderer, string>;\n\nconst ELEMENT_PROP = {\n INNER_HTML: 'innerHTML'\n};\n\nconst SELF_CLOSING_TAGS = {\n br: true\n};\n\nfunction htmlEncode(text : string) : string {\n return text\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/\\//g, '/');\n}\n\nfunction propsToHTML(props : NodePropsType) : string {\n const keys = Object.keys(props).filter(key => {\n const val = props[key];\n\n if (key === ELEMENT_PROP.INNER_HTML) {\n return false;\n }\n\n if (typeof val === 'string' || typeof val === 'number' || val === true) {\n return true;\n }\n\n return false;\n });\n\n if (!keys.length) {\n return '';\n }\n\n const pairs = keys.map(key => {\n const val = props[key];\n\n if (val === true) {\n return `${ htmlEncode(key) }`;\n }\n\n if (typeof val !== 'string' && typeof val !== 'number') {\n throw new TypeError(`Unexpected prop type: ${ typeof val }`);\n }\n\n if (val === '') {\n return htmlEncode(key);\n }\n\n return `${ htmlEncode(key) }=\"${ htmlEncode(val.toString()) }\"`;\n });\n\n return ` ${ pairs.join(' ') }`;\n}\n\nexport function html() : HTMLRenderer {\n\n const htmlRenderer = (node) => {\n if (node.type === NODE_TYPE.COMPONENT) {\n return [].concat(node.renderComponent(htmlRenderer)).join('');\n }\n\n if (node.type === NODE_TYPE.ELEMENT) {\n const renderedProps = propsToHTML(node.props);\n\n if (SELF_CLOSING_TAGS[node.name]) {\n return `<${ node.name }${ renderedProps } />`;\n } else {\n const renderedChildren = (typeof node.props[ELEMENT_PROP.INNER_HTML] === 'string')\n ? node.props[ELEMENT_PROP.INNER_HTML]\n : node.renderChildren(htmlRenderer).join('');\n\n return `<${ node.name }${ renderedProps }>${ renderedChildren }`;\n }\n }\n\n if (node.type === NODE_TYPE.TEXT) {\n return htmlEncode(node.text);\n }\n\n throw new TypeError(`Unhandleable node: ${ node.type }`);\n };\n\n return htmlRenderer;\n}\n","var n,l,u,i,t,r,o,f,e,c={},s=[],a=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function v(n,l){for(var u in l)n[u]=l[u];return n}function h(n){var l=n.parentNode;l&&l.removeChild(n)}function y(l,u,i){var t,r,o,f={};for(o in u)\"key\"==o?t=u[o]:\"ref\"==o?r=u[o]:f[o]=u[o];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):i),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===f[o]&&(f[o]=l.defaultProps[o]);return p(l,f,t,r,null)}function p(n,i,t,r,o){var f={type:n,props:i,key:t,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++u:o};return null==o&&null!=l.vnode&&l.vnode(f),f}function d(){return{current:null}}function _(n){return n.children}function k(n,l,u,i,t){var r;for(r in u)\"children\"===r||\"key\"===r||r in l||m(n,r,null,u[r],i);for(r in l)t&&\"function\"!=typeof l[r]||\"children\"===r||\"key\"===r||\"value\"===r||\"checked\"===r||u[r]===l[r]||m(n,r,l[r],u[r],i)}function b(n,l,u){\"-\"===l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||a.test(l)?u:u+\"px\"}function m(n,l,u,i,t){var r;n:if(\"style\"===l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof i&&(n.style.cssText=i=\"\"),i)for(l in i)u&&l in u||b(n.style,l,\"\");if(u)for(l in u)i&&u[l]===i[l]||b(n.style,l,u[l])}else if(\"o\"===l[0]&&\"n\"===l[1])r=l!==(l=l.replace(/Capture$/,\"\")),l=l.toLowerCase()in n?l.toLowerCase().slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?i||n.addEventListener(l,r?w:g,r):n.removeEventListener(l,r?w:g,r);else if(\"dangerouslySetInnerHTML\"!==l){if(t)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"href\"!==l&&\"list\"!==l&&\"form\"!==l&&\"tabIndex\"!==l&&\"download\"!==l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&-1==l.indexOf(\"-\")?n.removeAttribute(l):n.setAttribute(l,u))}}function g(n){t=!0;try{return this.l[n.type+!1](l.event?l.event(n):n)}finally{t=!1}}function w(n){t=!0;try{return this.l[n.type+!0](l.event?l.event(n):n)}finally{t=!1}}function x(n,l){this.props=n,this.context=l}function A(n,l){if(null==l)return n.__?A(n.__,n.__.__k.indexOf(n)+1):null;for(var u;ll&&r.sort(function(n,l){return n.__v.__b-l.__v.__b}));$.__r=0}function H(n,l,u,i,t,r,o,f,e,a){var v,h,y,d,k,b,m,g=i&&i.__k||s,w=g.length;for(u.__k=[],v=0;v0?p(d.type,d.props,d.key,d.ref?d.ref:null,d.__v):d)){if(d.__=u,d.__b=u.__b+1,null===(y=g[v])||y&&d.key==y.key&&d.type===y.type)g[v]=void 0;else for(h=0;h=0;l--)if((u=n.__k[l])&&(i=L(u)))return i;return null}function M(n,u,i,t,r,o,f,e,c){var s,a,h,y,p,d,k,b,m,g,w,A,P,C,T,$=u.type;if(void 0!==u.constructor)return null;null!=i.__h&&(c=i.__h,e=u.__e=i.__e,u.__h=null,o=[e]),(s=l.__b)&&s(u);try{n:if(\"function\"==typeof $){if(b=u.props,m=(s=$.contextType)&&t[s.__c],g=s?m?m.props.value:s.__:t,i.__c?k=(a=u.__c=i.__c).__=a.__E:(\"prototype\"in $&&$.prototype.render?u.__c=a=new $(b,g):(u.__c=a=new x(b,g),a.constructor=$,a.render=B),m&&m.sub(a),a.props=b,a.state||(a.state={}),a.context=g,a.__n=t,h=a.__d=!0,a.__h=[],a._sb=[]),null==a.__s&&(a.__s=a.state),null!=$.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=v({},a.__s)),v(a.__s,$.getDerivedStateFromProps(b,a.__s))),y=a.props,p=a.state,a.__v=u,h)null==$.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else{if(null==$.getDerivedStateFromProps&&b!==y&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(b,g),!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(b,a.__s,g)||u.__v===i.__v){for(u.__v!==i.__v&&(a.props=b,a.state=a.__s,a.__d=!1),u.__e=i.__e,u.__k=i.__k,u.__k.forEach(function(n){n&&(n.__=u)}),w=0;w2&&(f.children=arguments.length>3?n.call(arguments,2):i),p(l.type,f,t||l.key,r||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+e++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,i;return this.getChildContext||(u=[],(i={})[l]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(T)},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=s.slice,l={__e:function(n,l,u,i){for(var t,r,o;l=l.__;)if((t=l.__c)&&!t.__)try{if((r=t.constructor)&&null!=r.getDerivedStateFromError&&(t.setState(r.getDerivedStateFromError(n)),o=t.__d),null!=t.componentDidCatch&&(t.componentDidCatch(n,i||{}),o=t.__d),o)return t.__E=t}catch(l){n=l}throw n}},u=0,i=function(n){return null!=n&&void 0===n.constructor},t=!1,x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=v({},this.state),\"function\"==typeof n&&(n=n(v({},u),this.props)),n&&v(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),T(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),T(this))},x.prototype.render=_,r=[],f=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$.__r=0,e=0;export{x as Component,_ as Fragment,F as cloneElement,G as createContext,y as createElement,d as createRef,y as h,E as hydrate,i as isValidElement,l as options,D as render,j as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","/* @flow */\n/* eslint max-lines: 0 */\n\nexport const COUNTRY = {\n AD: (\"AD\": \"AD\"),\n AE: (\"AE\": \"AE\"),\n AG: (\"AG\": \"AG\"),\n AI: (\"AI\": \"AI\"),\n AL: (\"AL\": \"AL\"),\n AM: (\"AM\": \"AM\"),\n AN: (\"AN\": \"AN\"),\n AO: (\"AO\": \"AO\"),\n AR: (\"AR\": \"AR\"),\n AT: (\"AT\": \"AT\"),\n AU: (\"AU\": \"AU\"),\n AW: (\"AW\": \"AW\"),\n AZ: (\"AZ\": \"AZ\"),\n BA: (\"BA\": \"BA\"),\n BB: (\"BB\": \"BB\"),\n BE: (\"BE\": \"BE\"),\n BF: (\"BF\": \"BF\"),\n BG: (\"BG\": \"BG\"),\n BH: (\"BH\": \"BH\"),\n BI: (\"BI\": \"BI\"),\n BJ: (\"BJ\": \"BJ\"),\n BM: (\"BM\": \"BM\"),\n BN: (\"BN\": \"BN\"),\n BO: (\"BO\": \"BO\"),\n BR: (\"BR\": \"BR\"),\n BS: (\"BS\": \"BS\"),\n BT: (\"BT\": \"BT\"),\n BW: (\"BW\": \"BW\"),\n BY: (\"BY\": \"BY\"),\n BZ: (\"BZ\": \"BZ\"),\n CA: (\"CA\": \"CA\"),\n CD: (\"CD\": \"CD\"),\n CG: (\"CG\": \"CG\"),\n CH: (\"CH\": \"CH\"),\n CI: (\"CI\": \"CI\"),\n CK: (\"CK\": \"CK\"),\n CL: (\"CL\": \"CL\"),\n CM: (\"CM\": \"CM\"),\n CN: (\"CN\": \"CN\"),\n CO: (\"CO\": \"CO\"),\n CR: (\"CR\": \"CR\"),\n CV: (\"CV\": \"CV\"),\n CY: (\"CY\": \"CY\"),\n CZ: (\"CZ\": \"CZ\"),\n DE: (\"DE\": \"DE\"),\n DJ: (\"DJ\": \"DJ\"),\n DK: (\"DK\": \"DK\"),\n DM: (\"DM\": \"DM\"),\n DO: (\"DO\": \"DO\"),\n DZ: (\"DZ\": \"DZ\"),\n EC: (\"EC\": \"EC\"),\n EE: (\"EE\": \"EE\"),\n EG: (\"EG\": \"EG\"),\n ER: (\"ER\": \"ER\"),\n ES: (\"ES\": \"ES\"),\n ET: (\"ET\": \"ET\"),\n FI: (\"FI\": \"FI\"),\n FJ: (\"FJ\": \"FJ\"),\n FK: (\"FK\": \"FK\"),\n FM: (\"FM\": \"FM\"),\n FO: (\"FO\": \"FO\"),\n FR: (\"FR\": \"FR\"),\n GA: (\"GA\": \"GA\"),\n GB: (\"GB\": \"GB\"),\n GD: (\"GD\": \"GD\"),\n GE: (\"GE\": \"GE\"),\n GF: (\"GF\": \"GF\"),\n GI: (\"GI\": \"GI\"),\n GL: (\"GL\": \"GL\"),\n GM: (\"GM\": \"GM\"),\n GN: (\"GN\": \"GN\"),\n GP: (\"GP\": \"GP\"),\n GR: (\"GR\": \"GR\"),\n GT: (\"GT\": \"GT\"),\n GW: (\"GW\": \"GW\"),\n GY: (\"GY\": \"GY\"),\n HK: (\"HK\": \"HK\"),\n HN: (\"HN\": \"HN\"),\n HR: (\"HR\": \"HR\"),\n HU: (\"HU\": \"HU\"),\n ID: (\"ID\": \"ID\"),\n IE: (\"IE\": \"IE\"),\n IL: (\"IL\": \"IL\"),\n IN: (\"IN\": \"IN\"),\n IS: (\"IS\": \"IS\"),\n IT: (\"IT\": \"IT\"),\n JM: (\"JM\": \"JM\"),\n JO: (\"JO\": \"JO\"),\n JP: (\"JP\": \"JP\"),\n KE: (\"KE\": \"KE\"),\n KG: (\"KG\": \"KG\"),\n KH: (\"KH\": \"KH\"),\n KI: (\"KI\": \"KI\"),\n KM: (\"KM\": \"KM\"),\n KN: (\"KN\": \"KN\"),\n KR: (\"KR\": \"KR\"),\n KW: (\"KW\": \"KW\"),\n KY: (\"KY\": \"KY\"),\n KZ: (\"KZ\": \"KZ\"),\n LA: (\"LA\": \"LA\"),\n LC: (\"LC\": \"LC\"),\n LI: (\"LI\": \"LI\"),\n LK: (\"LK\": \"LK\"),\n LS: (\"LS\": \"LS\"),\n LT: (\"LT\": \"LT\"),\n LU: (\"LU\": \"LU\"),\n LV: (\"LV\": \"LV\"),\n MA: (\"MA\": \"MA\"),\n MC: (\"MC\": \"MC\"),\n MD: (\"MD\": \"MD\"),\n ME: (\"ME\": \"ME\"),\n MG: (\"MG\": \"MG\"),\n MH: (\"MH\": \"MH\"),\n MK: (\"MK\": \"MK\"),\n ML: (\"ML\": \"ML\"),\n MN: (\"MN\": \"MN\"),\n MQ: (\"MQ\": \"MQ\"),\n MR: (\"MR\": \"MR\"),\n MS: (\"MS\": \"MS\"),\n MT: (\"MT\": \"MT\"),\n MU: (\"MU\": \"MU\"),\n MV: (\"MV\": \"MV\"),\n MW: (\"MW\": \"MW\"),\n MX: (\"MX\": \"MX\"),\n MY: (\"MY\": \"MY\"),\n MZ: (\"MZ\": \"MZ\"),\n NA: (\"NA\": \"NA\"),\n NC: (\"NC\": \"NC\"),\n NE: (\"NE\": \"NE\"),\n NF: (\"NF\": \"NF\"),\n NG: (\"NG\": \"NG\"),\n NI: (\"NI\": \"NI\"),\n NL: (\"NL\": \"NL\"),\n NO: (\"NO\": \"NO\"),\n NP: (\"NP\": \"NP\"),\n NR: (\"NR\": \"NR\"),\n NU: (\"NU\": \"NU\"),\n NZ: (\"NZ\": \"NZ\"),\n OM: (\"OM\": \"OM\"),\n PA: (\"PA\": \"PA\"),\n PE: (\"PE\": \"PE\"),\n PF: (\"PF\": \"PF\"),\n PG: (\"PG\": \"PG\"),\n PH: (\"PH\": \"PH\"),\n PL: (\"PL\": \"PL\"),\n PM: (\"PM\": \"PM\"),\n PN: (\"PN\": \"PN\"),\n PT: (\"PT\": \"PT\"),\n PW: (\"PW\": \"PW\"),\n PY: (\"PY\": \"PY\"),\n QA: (\"QA\": \"QA\"),\n RE: (\"RE\": \"RE\"),\n RO: (\"RO\": \"RO\"),\n RS: (\"RS\": \"RS\"),\n RU: (\"RU\": \"RU\"),\n RW: (\"RW\": \"RW\"),\n SA: (\"SA\": \"SA\"),\n SB: (\"SB\": \"SB\"),\n SC: (\"SC\": \"SC\"),\n SE: (\"SE\": \"SE\"),\n SG: (\"SG\": \"SG\"),\n SH: (\"SH\": \"SH\"),\n SI: (\"SI\": \"SI\"),\n SJ: (\"SJ\": \"SJ\"),\n SK: (\"SK\": \"SK\"),\n SL: (\"SL\": \"SL\"),\n SM: (\"SM\": \"SM\"),\n SN: (\"SN\": \"SN\"),\n SO: (\"SO\": \"SO\"),\n SR: (\"SR\": \"SR\"),\n ST: (\"ST\": \"ST\"),\n SV: (\"SV\": \"SV\"),\n SZ: (\"SZ\": \"SZ\"),\n TC: (\"TC\": \"TC\"),\n TD: (\"TD\": \"TD\"),\n TG: (\"TG\": \"TG\"),\n TH: (\"TH\": \"TH\"),\n TJ: (\"TJ\": \"TJ\"),\n TM: (\"TM\": \"TM\"),\n TN: (\"TN\": \"TN\"),\n TO: (\"TO\": \"TO\"),\n TR: (\"TR\": \"TR\"),\n TT: (\"TT\": \"TT\"),\n TV: (\"TV\": \"TV\"),\n TW: (\"TW\": \"TW\"),\n TZ: (\"TZ\": \"TZ\"),\n UA: (\"UA\": \"UA\"),\n UG: (\"UG\": \"UG\"),\n US: (\"US\": \"US\"),\n UY: (\"UY\": \"UY\"),\n VA: (\"VA\": \"VA\"),\n VC: (\"VC\": \"VC\"),\n VE: (\"VE\": \"VE\"),\n VG: (\"VG\": \"VG\"),\n VN: (\"VN\": \"VN\"),\n VU: (\"VU\": \"VU\"),\n WF: (\"WF\": \"WF\"),\n WS: (\"WS\": \"WS\"),\n YE: (\"YE\": \"YE\"),\n YT: (\"YT\": \"YT\"),\n ZA: (\"ZA\": \"ZA\"),\n ZM: (\"ZM\": \"ZM\"),\n ZW: (\"ZW\": \"ZW\"),\n};\n\nexport const LANG = {\n AR: (\"ar\": \"ar\"),\n BG: (\"bg\": \"bg\"),\n CS: (\"cs\": \"cs\"),\n DA: (\"da\": \"da\"),\n DE: (\"de\": \"de\"),\n EL: (\"el\": \"el\"),\n EN: (\"en\": \"en\"),\n ES: (\"es\": \"es\"),\n ET: (\"et\": \"et\"),\n FI: (\"fi\": \"fi\"),\n FR: (\"fr\": \"fr\"),\n HE: (\"he\": \"he\"),\n HU: (\"hu\": \"hu\"),\n ID: (\"id\": \"id\"),\n IT: (\"it\": \"it\"),\n JA: (\"ja\": \"ja\"),\n KO: (\"ko\": \"ko\"),\n LT: (\"lt\": \"lt\"),\n LV: (\"lv\": \"lv\"),\n MS: (\"ms\": \"ms\"),\n NL: (\"nl\": \"nl\"),\n NO: (\"no\": \"no\"),\n PL: (\"pl\": \"pl\"),\n PT: (\"pt\": \"pt\"),\n RO: (\"ro\": \"ro\"),\n RU: (\"ru\": \"ru\"),\n SI: (\"si\": \"si\"),\n SK: (\"sk\": \"sk\"),\n SL: (\"sl\": \"sl\"),\n SQ: (\"sq\": \"sq\"),\n SV: (\"sv\": \"sv\"),\n TH: (\"th\": \"th\"),\n TL: (\"tl\": \"tl\"),\n TR: (\"tr\": \"tr\"),\n VI: (\"vi\": \"vi\"),\n ZH: (\"zh\": \"zh\"),\n ZH_HANT: (\"zh_Hant\": \"zh_Hant\"),\n};\n\nexport type CountryLangs = {|\n AD: \"en\" | \"fr\" | \"es\" | \"zh\",\n AE: \"en\" | \"fr\" | \"es\" | \"zh\" | \"ar\",\n AG: \"en\" | \"fr\" | \"es\" | \"zh\",\n AI: \"en\" | \"fr\" | \"es\" | \"zh\",\n AL: \"sq\" | \"en\",\n AM: \"en\" | \"fr\" | \"es\" | \"zh\",\n AN: \"en\" | \"fr\" | \"es\" | \"zh\",\n AO: \"en\" | \"fr\" | \"es\" | \"zh\",\n AR: \"es\" | \"en\",\n AT: \"de\" | \"en\",\n AU: \"en\",\n AW: \"en\" | \"fr\" | \"es\" | \"zh\",\n AZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n BA: \"en\",\n BB: \"en\" | \"fr\" | \"es\" | \"zh\",\n BE: \"en\" | \"nl\" | \"fr\",\n BF: \"fr\" | \"en\" | \"es\" | \"zh\",\n BG: \"bg\" | \"en\",\n BH: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n BI: \"fr\" | \"en\" | \"es\" | \"zh\",\n BJ: \"fr\" | \"en\" | \"es\" | \"zh\",\n BM: \"en\" | \"fr\" | \"es\" | \"zh\",\n BN: \"ms\" | \"en\",\n BO: \"es\" | \"en\" | \"fr\" | \"zh\",\n BR: \"pt\" | \"en\",\n BS: \"en\" | \"fr\" | \"es\" | \"zh\",\n BT: \"en\",\n BW: \"en\" | \"fr\" | \"es\" | \"zh\",\n BY: \"en\",\n BZ: \"en\" | \"es\" | \"fr\" | \"zh\",\n CA: \"en\" | \"fr\",\n CD: \"fr\" | \"en\" | \"es\" | \"zh\",\n CG: \"en\" | \"fr\" | \"es\" | \"zh\",\n CH: \"de\" | \"fr\" | \"en\",\n CI: \"fr\" | \"en\",\n CK: \"en\" | \"fr\" | \"es\" | \"zh\",\n CL: \"es\" | \"en\" | \"fr\" | \"zh\",\n CM: \"fr\" | \"en\",\n CN: \"zh\",\n CO: \"es\" | \"en\" | \"fr\" | \"zh\",\n CR: \"es\" | \"en\" | \"fr\" | \"zh\",\n CV: \"en\" | \"fr\" | \"es\" | \"zh\",\n CY: \"en\",\n CZ: \"cs\" | \"en\",\n DE: \"de\" | \"en\",\n DJ: \"fr\" | \"en\" | \"es\" | \"zh\",\n DK: \"da\" | \"en\",\n DM: \"en\" | \"fr\" | \"es\" | \"zh\",\n DO: \"es\" | \"en\" | \"fr\" | \"zh\",\n DZ: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n EC: \"es\" | \"en\" | \"fr\" | \"zh\",\n EE: \"et\" | \"en\" | \"ru\",\n EG: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n ER: \"en\" | \"fr\" | \"es\" | \"zh\",\n ES: \"es\" | \"en\",\n ET: \"en\" | \"fr\" | \"es\" | \"zh\",\n FI: \"fi\" | \"en\",\n FJ: \"en\" | \"fr\" | \"es\" | \"zh\",\n FK: \"en\" | \"fr\" | \"es\" | \"zh\",\n FM: \"en\",\n FO: \"da\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n FR: \"fr\" | \"en\",\n GA: \"fr\" | \"en\" | \"es\" | \"zh\",\n GB: \"en\",\n GD: \"en\" | \"fr\" | \"es\" | \"zh\",\n GE: \"en\" | \"fr\" | \"es\" | \"zh\",\n GF: \"en\" | \"fr\" | \"es\" | \"zh\",\n GI: \"en\" | \"fr\" | \"es\" | \"zh\",\n GL: \"da\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n GM: \"en\" | \"fr\" | \"es\" | \"zh\",\n GN: \"fr\" | \"en\" | \"es\" | \"zh\",\n GP: \"en\" | \"fr\" | \"es\" | \"zh\",\n GR: \"el\" | \"en\",\n GT: \"es\" | \"en\" | \"fr\" | \"zh\",\n GW: \"en\" | \"fr\" | \"es\" | \"zh\",\n GY: \"en\" | \"fr\" | \"es\" | \"zh\",\n HK: \"en\" | \"zh_Hant\",\n HN: \"es\" | \"en\" | \"fr\" | \"zh\",\n HR: \"en\",\n HU: \"hu\" | \"en\",\n ID: \"id\" | \"en\",\n IE: \"en\" | \"fr\" | \"es\" | \"zh\",\n IL: \"he\" | \"en\",\n IN: \"en\",\n IS: \"en\",\n IT: \"it\" | \"en\",\n JM: \"en\" | \"es\" | \"fr\" | \"zh\",\n JO: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n JP: \"ja\" | \"en\",\n KE: \"en\" | \"fr\" | \"es\" | \"zh\",\n KG: \"en\" | \"fr\" | \"es\" | \"zh\",\n KH: \"en\",\n KI: \"en\" | \"fr\" | \"es\" | \"zh\",\n KM: \"fr\" | \"en\" | \"es\" | \"zh\",\n KN: \"en\" | \"fr\" | \"es\" | \"zh\",\n KR: \"ko\" | \"en\",\n KW: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n KY: \"en\" | \"fr\" | \"es\" | \"zh\",\n KZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n LA: \"en\",\n LC: \"en\" | \"fr\" | \"es\" | \"zh\",\n LI: \"en\" | \"fr\" | \"es\" | \"zh\",\n LK: \"si\" | \"en\",\n LS: \"en\" | \"fr\" | \"es\" | \"zh\",\n LT: \"lt\" | \"en\" | \"ru\" | \"zh\",\n LU: \"en\" | \"de\" | \"fr\" | \"es\" | \"zh\",\n LV: \"lv\" | \"en\" | \"ru\",\n MA: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n MC: \"fr\" | \"en\",\n MD: \"en\",\n ME: \"en\",\n MG: \"en\" | \"fr\" | \"es\" | \"zh\",\n MH: \"en\" | \"fr\" | \"es\" | \"zh\",\n MK: \"en\",\n ML: \"fr\" | \"en\" | \"es\" | \"zh\",\n MN: \"en\",\n MQ: \"en\" | \"fr\" | \"es\" | \"zh\",\n MR: \"en\" | \"fr\" | \"es\" | \"zh\",\n MS: \"en\" | \"fr\" | \"es\" | \"zh\",\n MT: \"en\",\n MU: \"en\" | \"fr\" | \"es\" | \"zh\",\n MV: \"en\",\n MW: \"en\" | \"fr\" | \"es\" | \"zh\",\n MX: \"es\" | \"en\",\n MY: \"ms\" | \"en\",\n MZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n NA: \"en\" | \"fr\" | \"es\" | \"zh\",\n NC: \"en\" | \"fr\" | \"es\" | \"zh\",\n NE: \"fr\" | \"en\" | \"es\" | \"zh\",\n NF: \"en\" | \"fr\" | \"es\" | \"zh\",\n NG: \"en\",\n NI: \"es\" | \"en\" | \"fr\" | \"zh\",\n NL: \"nl\" | \"en\",\n NO: \"no\" | \"en\",\n NP: \"en\",\n NR: \"en\" | \"fr\" | \"es\" | \"zh\",\n NU: \"en\" | \"fr\" | \"es\" | \"zh\",\n NZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n OM: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n PA: \"es\" | \"en\" | \"fr\" | \"zh\",\n PE: \"es\" | \"en\" | \"fr\" | \"zh\",\n PF: \"en\" | \"fr\" | \"es\" | \"zh\",\n PG: \"en\" | \"fr\" | \"es\" | \"zh\",\n PH: \"tl\" | \"en\",\n PL: \"pl\" | \"en\",\n PM: \"en\" | \"fr\" | \"es\" | \"zh\",\n PN: \"en\" | \"fr\" | \"es\" | \"zh\",\n PT: \"pt\" | \"en\",\n PW: \"en\" | \"fr\" | \"es\" | \"zh\",\n PY: \"es\" | \"en\",\n QA: \"en\" | \"fr\" | \"es\" | \"zh\" | \"ar\",\n RE: \"en\" | \"fr\" | \"es\" | \"zh\",\n RO: \"ro\" | \"en\",\n RS: \"en\" | \"fr\" | \"es\" | \"zh\",\n RU: \"ru\" | \"en\",\n RW: \"fr\" | \"en\" | \"es\" | \"zh\",\n SA: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n SB: \"en\" | \"fr\" | \"es\" | \"zh\",\n SC: \"fr\" | \"en\" | \"es\" | \"zh\",\n SE: \"sv\" | \"en\",\n SG: \"en\",\n SH: \"en\" | \"fr\" | \"es\" | \"zh\",\n SI: \"sl\" | \"en\",\n SJ: \"en\" | \"fr\" | \"es\" | \"zh\",\n SK: \"sk\" | \"en\",\n SL: \"en\" | \"fr\" | \"es\" | \"zh\",\n SM: \"en\" | \"fr\" | \"es\" | \"zh\",\n SN: \"fr\" | \"en\" | \"es\" | \"zh\",\n SO: \"en\" | \"fr\" | \"es\" | \"zh\",\n SR: \"en\" | \"fr\" | \"es\" | \"zh\",\n ST: \"en\" | \"fr\" | \"es\" | \"zh\",\n SV: \"es\" | \"en\" | \"fr\" | \"zh\",\n SZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n TC: \"en\" | \"fr\" | \"es\" | \"zh\",\n TD: \"fr\" | \"en\" | \"es\" | \"zh\",\n TG: \"fr\" | \"en\" | \"es\" | \"zh\",\n TH: \"th\" | \"en\",\n TJ: \"en\" | \"fr\" | \"es\" | \"zh\",\n TM: \"en\" | \"fr\" | \"es\" | \"zh\",\n TN: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n TO: \"en\",\n TR: \"tr\" | \"en\",\n TT: \"en\" | \"fr\" | \"es\" | \"zh\",\n TV: \"en\" | \"fr\" | \"es\" | \"zh\",\n TW: \"zh_Hant\" | \"en\",\n TZ: \"en\" | \"fr\" | \"es\" | \"zh\",\n UA: \"en\" | \"ru\" | \"fr\" | \"es\" | \"zh\",\n UG: \"en\" | \"fr\" | \"es\" | \"zh\",\n US: \"en\" | \"fr\" | \"es\" | \"zh\",\n UY: \"es\" | \"en\" | \"fr\" | \"zh\",\n VA: \"en\" | \"fr\" | \"es\" | \"zh\",\n VC: \"en\" | \"fr\" | \"es\" | \"zh\",\n VE: \"es\" | \"en\" | \"fr\" | \"zh\",\n VG: \"en\" | \"fr\" | \"es\" | \"zh\",\n VN: \"vi\" | \"en\",\n VU: \"en\" | \"fr\" | \"es\" | \"zh\",\n WF: \"en\" | \"fr\" | \"es\" | \"zh\",\n WS: \"en\",\n YE: \"ar\" | \"en\" | \"fr\" | \"es\" | \"zh\",\n YT: \"en\" | \"fr\" | \"es\" | \"zh\",\n ZA: \"en\" | \"fr\" | \"es\" | \"zh\",\n ZM: \"en\" | \"fr\" | \"es\" | \"zh\",\n ZW: \"en\",\n|};\n\ntype CountryMap = {\n [$Values]: $ReadOnlyArray<$Values>,\n};\n\nexport const COUNTRY_LANGS: CountryMap = {\n AD: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AE: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH, LANG.AR],\n AG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AI: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AL: [LANG.SQ, LANG.EN],\n AM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AN: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AO: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AR: [LANG.ES, LANG.EN],\n AT: [LANG.DE, LANG.EN],\n AU: [LANG.EN],\n AW: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n AZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BA: [LANG.EN],\n BB: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BE: [LANG.EN, LANG.NL, LANG.FR],\n BF: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n BG: [LANG.BG, LANG.EN],\n BH: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BI: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n BJ: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n BM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BN: [LANG.MS, LANG.EN],\n BO: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n BR: [LANG.PT, LANG.EN],\n BS: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BT: [LANG.EN],\n BW: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n BY: [LANG.EN],\n BZ: [LANG.EN, LANG.ES, LANG.FR, LANG.ZH],\n CA: [LANG.EN, LANG.FR],\n CD: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n CG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n CH: [LANG.DE, LANG.FR, LANG.EN],\n CI: [LANG.FR, LANG.EN],\n CK: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n CL: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n CM: [LANG.FR, LANG.EN],\n CN: [LANG.ZH],\n CO: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n CR: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n CV: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n CY: [LANG.EN],\n CZ: [LANG.CS, LANG.EN],\n DE: [LANG.DE, LANG.EN],\n DJ: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n DK: [LANG.DA, LANG.EN],\n DM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n DO: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n DZ: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n EC: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n EE: [LANG.ET, LANG.EN, LANG.RU],\n EG: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ER: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ES: [LANG.ES, LANG.EN],\n ET: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n FI: [LANG.FI, LANG.EN],\n FJ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n FK: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n FM: [LANG.EN],\n FO: [LANG.DA, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n FR: [LANG.FR, LANG.EN],\n GA: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n GB: [LANG.EN],\n GD: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GE: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GF: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GI: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GL: [LANG.DA, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GN: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n GP: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GR: [LANG.EL, LANG.EN],\n GT: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n GW: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n GY: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n HK: [LANG.EN, LANG.ZH_HANT, LANG.ZH],\n HN: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n HR: [LANG.EN],\n HU: [LANG.HU, LANG.EN],\n ID: [LANG.ID, LANG.EN],\n IE: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n IL: [LANG.HE, LANG.EN],\n IN: [LANG.EN],\n IS: [LANG.EN],\n IT: [LANG.IT, LANG.EN],\n JM: [LANG.EN, LANG.ES, LANG.FR, LANG.ZH],\n JO: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n JP: [LANG.JA, LANG.EN],\n KE: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KH: [LANG.EN],\n KI: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KM: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n KN: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KR: [LANG.KO, LANG.EN],\n KW: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KY: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n KZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n LA: [LANG.EN],\n LC: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n LI: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n LK: [LANG.SI, LANG.EN],\n LS: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n LT: [LANG.LT, LANG.EN, LANG.RU, LANG.ZH],\n LU: [LANG.EN, LANG.DE, LANG.FR, LANG.ES, LANG.ZH],\n LV: [LANG.LV, LANG.EN, LANG.RU],\n MA: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MC: [LANG.FR, LANG.EN],\n MD: [LANG.EN],\n ME: [LANG.EN],\n MG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MH: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MK: [LANG.EN],\n ML: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n MN: [LANG.EN],\n MQ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MR: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MS: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MT: [LANG.EN],\n MU: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MV: [LANG.EN],\n MW: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n MX: [LANG.ES, LANG.EN],\n MY: [LANG.MS, LANG.EN],\n MZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NA: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NC: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NE: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n NF: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NG: [LANG.EN],\n NI: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n NL: [LANG.NL, LANG.EN],\n NO: [LANG.NO, LANG.EN],\n NP: [LANG.EN],\n NR: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NU: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n NZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n OM: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PA: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n PE: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n PF: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PH: [LANG.TL, LANG.EN],\n PL: [LANG.PL, LANG.EN],\n PM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PN: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PT: [LANG.PT, LANG.EN],\n PW: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n PY: [LANG.ES, LANG.EN],\n QA: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH, LANG.AR],\n RE: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n RO: [LANG.RO, LANG.EN],\n RS: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n RU: [LANG.RU, LANG.EN],\n RW: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n SA: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SB: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SC: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n SE: [LANG.SV, LANG.EN],\n SG: [LANG.EN],\n SH: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SI: [LANG.SL, LANG.EN],\n SJ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SK: [LANG.SK, LANG.EN],\n SL: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SN: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n SO: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SR: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ST: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n SV: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n SZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TC: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TD: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n TG: [LANG.FR, LANG.EN, LANG.ES, LANG.ZH],\n TH: [LANG.TH, LANG.EN],\n TJ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TN: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TO: [LANG.EN],\n TR: [LANG.TR, LANG.EN],\n TT: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TV: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n TW: [LANG.ZH_HANT, LANG.ZH, LANG.EN],\n TZ: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n UA: [LANG.EN, LANG.RU, LANG.FR, LANG.ES, LANG.ZH],\n UG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n US: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n UY: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n VA: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n VC: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n VE: [LANG.ES, LANG.EN, LANG.FR, LANG.ZH],\n VG: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n VN: [LANG.VI, LANG.EN],\n VU: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n WF: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n WS: [LANG.EN],\n YE: [LANG.AR, LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n YT: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ZA: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ZM: [LANG.EN, LANG.FR, LANG.ES, LANG.ZH],\n ZW: [LANG.EN],\n};\n\nexport type LocaleType = {|\n country: $Values,\n lang: $Values,\n|};\n","/* @flow */\n\nexport const INTENT = {\n CAPTURE: (\"capture\": \"capture\"),\n AUTHORIZE: (\"authorize\": \"authorize\"),\n ORDER: (\"order\": \"order\"),\n TOKENIZE: (\"tokenize\": \"tokenize\"),\n SUBSCRIPTION: (\"subscription\": \"subscription\"),\n};\n\nexport const COMMIT = {\n TRUE: (true: true),\n FALSE: (false: false),\n};\n\nexport const VAULT = {\n TRUE: (true: true),\n FALSE: (false: false),\n};\n\nexport const CURRENCY = {\n AED: (\"AED\": \"AED\"),\n ALL: (\"ALL\": \"ALL\"),\n ANG: (\"ANG\": \"ANG\"),\n AOA: (\"AOA\": \"AOA\"),\n AUD: (\"AUD\": \"AUD\"),\n AWG: (\"AWG\": \"AWG\"),\n BAM: (\"BAM\": \"BAM\"),\n BBD: (\"BBD\": \"BBD\"),\n BGN: (\"BGN\": \"BGN\"),\n BIF: (\"BIF\": \"BIF\"),\n BMD: (\"BMD\": \"BMD\"),\n BND: (\"BND\": \"BND\"),\n BOB: (\"BOB\": \"BOB\"),\n BRL: (\"BRL\": \"BRL\"),\n BSD: (\"BSD\": \"BSD\"),\n BTN: (\"BTN\": \"BTN\"),\n CAD: (\"CAD\": \"CAD\"),\n CDF: (\"CDF\": \"CDF\"),\n CHF: (\"CHF\": \"CHF\"),\n CLP: (\"CLP\": \"CLP\"),\n COP: (\"COP\": \"COP\"),\n CRC: (\"CRC\": \"CRC\"),\n CVE: (\"CVE\": \"CVE\"),\n CZK: (\"CZK\": \"CZK\"),\n DJF: (\"DJF\": \"DJF\"),\n DKK: (\"DKK\": \"DKK\"),\n DOP: (\"DOP\": \"DOP\"),\n DZD: (\"DZD\": \"DZD\"),\n EGP: (\"EGP\": \"EGP\"),\n ETB: (\"ETB\": \"ETB\"),\n EUR: (\"EUR\": \"EUR\"),\n FJD: (\"FJD\": \"FJD\"),\n FKP: (\"FKP\": \"FKP\"),\n GBP: (\"GBP\": \"GBP\"),\n GIP: (\"GIP\": \"GIP\"),\n GMD: (\"GMD\": \"GMD\"),\n GNF: (\"GNF\": \"GNF\"),\n GTQ: (\"GTQ\": \"GTQ\"),\n GYD: (\"GYD\": \"GYD\"),\n HKD: (\"HKD\": \"HKD\"),\n HNL: (\"HNL\": \"HNL\"),\n HRK: (\"HRK\": \"HRK\"),\n HUF: (\"HUF\": \"HUF\"),\n IDR: (\"IDR\": \"IDR\"),\n ILS: (\"ILS\": \"ILS\"),\n INR: (\"INR\": \"INR\"),\n ISK: (\"ISK\": \"ISK\"),\n JMD: (\"JMD\": \"JMD\"),\n JPY: (\"JPY\": \"JPY\"),\n KES: (\"KES\": \"KES\"),\n KMF: (\"KMF\": \"KMF\"),\n KRW: (\"KRW\": \"KRW\"),\n KYD: (\"KYD\": \"KYD\"),\n LAK: (\"LAK\": \"LAK\"),\n LKR: (\"LKR\": \"LKR\"),\n MDL: (\"MDL\": \"MDL\"),\n MGA: (\"MGA\": \"MGA\"),\n MKD: (\"MKD\": \"MKD\"),\n MNT: (\"MNT\": \"MNT\"),\n MRO: (\"MRO\": \"MRO\"),\n MUR: (\"MUR\": \"MUR\"),\n MVR: (\"MVR\": \"MVR\"),\n MXN: (\"MXN\": \"MXN\"),\n MYR: (\"MYR\": \"MYR\"),\n NAD: (\"NAD\": \"NAD\"),\n NIO: (\"NIO\": \"NIO\"),\n NOK: (\"NOK\": \"NOK\"),\n NPR: (\"NPR\": \"NPR\"),\n NZD: (\"NZD\": \"NZD\"),\n PEN: (\"PEN\": \"PEN\"),\n PGK: (\"PGK\": \"PGK\"),\n PHP: (\"PHP\": \"PHP\"),\n PLN: (\"PLN\": \"PLN\"),\n PYG: (\"PYG\": \"PYG\"),\n QAR: (\"QAR\": \"QAR\"),\n RON: (\"RON\": \"RON\"),\n RSD: (\"RSD\": \"RSD\"),\n RUB: (\"RUB\": \"RUB\"),\n SAR: (\"SAR\": \"SAR\"),\n SBD: (\"SBD\": \"SBD\"),\n SCR: (\"SCR\": \"SCR\"),\n SEK: (\"SEK\": \"SEK\"),\n SGD: (\"SGD\": \"SGD\"),\n SHP: (\"SHP\": \"SHP\"),\n SLL: (\"SLL\": \"SLL\"),\n SOS: (\"SOS\": \"SOS\"),\n SRD: (\"SRD\": \"SRD\"),\n SZL: (\"SZL\": \"SZL\"),\n THB: (\"THB\": \"THB\"),\n TJS: (\"TJS\": \"TJS\"),\n TOP: (\"TOP\": \"TOP\"),\n TTD: (\"TTD\": \"TTD\"),\n TWD: (\"TWD\": \"TWD\"),\n TZS: (\"TZS\": \"TZS\"),\n USD: (\"USD\": \"USD\"),\n UYU: (\"UYU\": \"UYU\"),\n VND: (\"VND\": \"VND\"),\n VUV: (\"VUV\": \"VUV\"),\n WST: (\"WST\": \"WST\"),\n XAF: (\"XAF\": \"XAF\"),\n XCD: (\"XCD\": \"XCD\"),\n YER: (\"YER\": \"YER\"),\n};\n","/* @flow */\n\nexport const SDK_PATH = \"/sdk/js\";\n\nexport const SDK_SETTINGS = {\n NAMESPACE: (\"data-namespace\": \"data-namespace\"),\n CLIENT_TOKEN: (\"data-client-token\": \"data-client-token\"),\n MERCHANT_ID: (\"data-merchant-id\": \"data-merchant-id\"),\n PARTNER_ATTRIBUTION_ID:\n (\"data-partner-attribution-id\": \"data-partner-attribution-id\"),\n STAGE_HOST: (\"data-stage-host\": \"data-stage-host\"),\n API_STAGE_HOST: (\"data-api-stage-host\": \"data-api-stage-host\"),\n CSP_NONCE: (\"data-csp-nonce\": \"data-csp-nonce\"),\n ENABLE_3DS: (\"data-enable-3ds\": \"data-enable-3ds\"),\n SDK_INTEGRATION_SOURCE:\n (\"data-sdk-integration-source\": \"data-sdk-integration-source\"),\n USER_ID_TOKEN: (\"data-user-id-token\": \"data-user-id-token\"),\n AMOUNT: (\"data-amount\": \"data-amount\"),\n CLIENT_METADATA_ID: (\"data-client-metadata-id\": \"data-client-metadata-id\"),\n PAGE_TYPE: (\"data-page-type\": \"data-page-type\"),\n USER_EXPERIENCE_FLOW:\n (\"data-user-experience-flow\": \"data-user-experience-flow\"),\n POPUPS_DISABLED: (\"data-popups-disabled\": \"data-popups-disabled\"),\n};\n\nexport const SDK_QUERY_KEYS = {\n COMPONENTS: (\"components\": \"components\"),\n\n ENV: (\"env\": \"env\"),\n DEBUG: (\"debug\": \"debug\"),\n CACHEBUST: (\"cachebust\": \"cachebust\"),\n\n CLIENT_ID: (\"client-id\": \"client-id\"),\n MERCHANT_ID: (\"merchant-id\": \"merchant-id\"),\n\n LOCALE: (\"locale\": \"locale\"),\n\n CURRENCY: (\"currency\": \"currency\"),\n INTENT: (\"intent\": \"intent\"),\n COMMIT: (\"commit\": \"commit\"),\n VAULT: (\"vault\": \"vault\"),\n\n BUYER_COUNTRY: (\"buyer-country\": \"buyer-country\"),\n\n ENABLE_FUNDING: (\"enable-funding\": \"enable-funding\"),\n DISABLE_FUNDING: (\"disable-funding\": \"disable-funding\"),\n DISABLE_CARD: (\"disable-card\": \"disable-card\"),\n\n INTEGRATION_DATE: (\"integration-date\": \"integration-date\"),\n STAGE_HOST: (\"stage-host\": \"stage-host\"),\n STAGE_ALIAS: (\"stage-alias\": \"stage-alias\"),\n CDN_REGISTRY: (\"cdn-registry\": \"cdn-registry\"),\n VERSION: (\"version\": \"version\"),\n};\n\nexport const COMPONENTS = {\n BUTTONS: (\"buttons\": \"buttons\"),\n HOSTED_FIELDS: (\"hosted-fields\": \"hosted-fields\"),\n CARD_FIELDS: (\"card-fields\": \"card-fields\"),\n};\n\nexport const DEBUG = {\n TRUE: (true: true),\n FALSE: (false: false),\n};\n\nexport const QUERY_BOOL = {\n TRUE: (\"true\": \"true\"),\n FALSE: (\"false\": \"false\"),\n};\n\nexport const UNKNOWN = (\"unknown\": \"unknown\");\n\nexport const PROTOCOL = {\n HTTP: (\"http\": \"http\"),\n HTTPS: (\"https\": \"https\"),\n};\n\nexport const PAGE_TYPES = {\n HOME: (\"home\": \"home\"),\n PRODUCT: (\"product\": \"product\"),\n CART: (\"cart\": \"cart\"),\n CHECKOUT: (\"checkout\": \"checkout\"),\n PRODUCT_LISTING: (\"product-listing\": \"product-listing\"),\n SEARCH_RESULTS: (\"search-results\": \"search-results\"),\n PRODUCT_DETAILS: (\"product-details\": \"product-details\"),\n MINI_CART: (\"mini-cart\": \"mini-cart\"),\n};\n\nexport const MERCHANT_ID_MAX = 10;\n","/* @flow */\n\nimport { COUNTRY } from \"./locale\";\nimport { CURRENCY, INTENT, COMMIT, VAULT } from \"./order\";\nimport { COMPONENTS, DEBUG } from \"./params\";\n\nexport const DEFAULT_COUNTRY = COUNTRY.US;\nexport const DEFAULT_CURRENCY = CURRENCY.USD;\nexport const DEFAULT_INTENT = INTENT.CAPTURE;\nexport const DEFAULT_COMMIT = COMMIT.TRUE;\nexport const DEFAULT_SALE_COMMIT = COMMIT.TRUE;\nexport const DEFAULT_NONSALE_COMMIT = COMMIT.TRUE;\nexport const DEFAULT_VAULT = VAULT.FALSE;\nexport const DEFAULT_COMPONENTS = COMPONENTS.BUTTONS;\nexport const DEFAULT_DEBUG = DEBUG.FALSE;\n","/* @flow */\n\nexport const ENV = {\n LOCAL: (\"local\": \"local\"),\n STAGE: (\"stage\": \"stage\"),\n SANDBOX: (\"sandbox\": \"sandbox\"),\n PRODUCTION: (\"production\": \"production\"),\n TEST: (\"test\": \"test\"),\n};\n\nexport const MOBILE_ENV = {\n ANDROID: (\"android\": \"android\"),\n IOS: (\"iOS\": \"iOS\"),\n};\n","/* @flow */\n\nexport const FPTI_KEY = {\n FEED: (\"feed_name\": \"feed_name\"),\n STATE: (\"state_name\": \"state_name\"),\n EVENT_NAME: (\"event_name\": \"event_name\"),\n TRANSITION: (\"transition_name\": \"transition_name\"),\n PAGE: (\"page_name\": \"page_name\"),\n BUTTON_TYPE: (\"button_type\": \"button_type\"),\n SESSION_UID: (\"page_session_id\": \"page_session_id\"),\n BUTTON_SESSION_UID: (\"button_session_id\": \"button_session_id\"),\n TOKEN: (\"token\": \"token\"),\n CONTEXT_ID: (\"context_id\": \"context_id\"),\n CONTEXT_TYPE: (\"context_type\": \"context_type\"),\n REFERER: (\"referer_url\": \"referer_url\"),\n MERCHANT_DOMAIN: (\"merchant_domain\": \"merchant_domain\"),\n PAY_ID: (\"pay_id\": \"pay_id\"),\n SELLER_ID: (\"seller_id\": \"seller_id\"),\n CLIENT_ID: (\"client_id\": \"client_id\"),\n DATA_SOURCE: (\"serverside_data_source\": \"serverside_data_source\"),\n BUTTON_SOURCE: (\"button_source\": \"button_source\"),\n ERROR_CODE: (\"ext_error_code\": \"ext_error_code\"),\n ERROR_DESC: (\"ext_error_desc\": \"ext_error_desc\"),\n PAGE_LOAD_TIME: (\"page_load_time\": \"page_load_time\"),\n EXPERIMENT_NAME: (\"pxp_exp_id\": \"pxp_exp_id\"),\n TREATMENT_NAME: (\"pxp_trtmnt_id\": \"pxp_trtmnt_id\"),\n TRANSITION_TIME: (\"transition_time\": \"transition_time\"),\n FUNDING_LIST: (\"eligible_payment_methods\": \"eligible_payment_methods\"),\n FUNDING_COUNT: (\"eligible_payment_count\": \"eligible_payment_count\"),\n CHOSEN_FUNDING: (\"selected_payment_method\": \"selected_payment_method\"),\n BUTTON_LAYOUT: (\"button_layout\": \"button_layout\"),\n VERSION: (\"checkoutjs_version\": \"checkoutjs_version\"),\n LOCALE: (\"locale\": \"locale\"),\n BUYER_COUNTRY: (\"buyer_cntry\": \"buyer_cntry\"),\n INTEGRATION_IDENTIFIER: (\"integration_identifier\": \"integration_identifier\"),\n PARTNER_ATTRIBUTION_ID: (\"bn_code\": \"bn_code\"),\n PAGE_TYPE: (\"pp_placement\": \"pp_placement\"),\n SDK_NAME: (\"sdk_name\": \"sdk_name\"),\n SDK_VERSION: (\"sdk_version\": \"sdk_version\"),\n SDK_ENVIRONMENT: (\"sdk_environment\": \"sdk_environment\"),\n MOBILE_APP_VERSION: (\"mobile_app_version\": \"mobile_app_version\"),\n MOBILE_BUNDLE_IDENTIFIER: (\"mapv\": \"mapv\"),\n USER_AGENT: (\"user_agent\": \"user_agent\"),\n USER_ACTION: (\"user_action\": \"user_action\"),\n CONTEXT_CORRID: (\"context_correlation_id\": \"context_correlation_id\"),\n SDK_CACHE: (\"sdk_cache\": \"sdk_cache\"),\n SDK_LOAD_TIME: (\"sdk_load_time\": \"sdk_load_time\"),\n IS_VAULT: (\"is_vault\": \"is_vault\"),\n DISABLE_FUNDING: (\"disable_funding\": \"disable_funding\"),\n DISABLE_CARD: (\"disable_card\": \"disable_card\"),\n RESPONSE_DURATION: (\"response_duration\": \"response_duration\"),\n SDK_INTEGRATION_SOURCE: (\"sdk_integration_source\": \"sdk_integration_source\"),\n PAYMENT_FLOW: (\"payment_flow\": \"payment_flow\"),\n BUTTON_VERSION: (\"button_version\": \"button_version\"),\n FI_LIST: (\"fi_list\": \"fi_list\"),\n FI_ID: (\"fi_id\": \"fi_id\"),\n PRODUCT: (\"product\": \"product\"),\n CHOSEN_FI_TYPE: (\"chosen_fi_type\": \"chosen_fi_type\"),\n SELECTED_FI:\n (\"merchant_selected_funding_source\": \"merchant_selected_funding_source\"),\n POTENTIAL_PAYMENT_METHODS:\n (\"potential_payment_methods\": \"potential_payment_methods\"),\n PAY_NOW: (\"pay_now\": \"pay_now\"),\n STICKINESS_ID: (\"stickiness_id\": \"stickiness_id\"),\n TIMESTAMP: (\"t\": \"t\"),\n OPTION_SELECTED: (\"optsel\": \"optsel\"),\n USER_IDENTITY_METHOD: (\"user_identity_method\": \"user_identity_method\"),\n FIELDS_COMPONENT_SESSION_ID:\n (\"fields_component_session_id\": \"fields_component_session_id\"),\n CPL_COMP_METRICS: (\"cpl_comp_metrics\": \"cpl_comp_metrics\"),\n CPL_CHUNK_METRICS: (\"cpl_chunk_metrics\": \"cpl_chunk_metrics\"),\n CPL_QUERY_METRICS: (\"cpl_query_metrics\": \"cpl_query_metrics\"),\n};\n\nexport const FPTI_USER_ACTION = {\n COMMIT: (\"commit\": \"commit\"),\n CONTINUE: (\"continue\": \"continue\"),\n};\n\nexport const FPTI_DATA_SOURCE = {\n PAYMENTS_SDK: (\"checkout\": \"checkout\"),\n};\n\nexport const FPTI_FEED = {\n PAYMENTS_SDK: (\"payments_sdk\": \"payments_sdk\"),\n};\n\nexport const FPTI_SDK_NAME = {\n PAYMENTS_SDK: (\"payments_sdk\": \"payments_sdk\"),\n};\n","/* @flow */\n\nexport const FUNDING = {\n PAYPAL: (\"paypal\": \"paypal\"),\n VENMO: (\"venmo\": \"venmo\"),\n APPLEPAY: (\"applepay\": \"applepay\"),\n ITAU: (\"itau\": \"itau\"),\n CREDIT: (\"credit\": \"credit\"),\n PAYLATER: (\"paylater\": \"paylater\"),\n CARD: (\"card\": \"card\"),\n IDEAL: (\"ideal\": \"ideal\"),\n SEPA: (\"sepa\": \"sepa\"),\n BANCONTACT: (\"bancontact\": \"bancontact\"),\n GIROPAY: (\"giropay\": \"giropay\"),\n SOFORT: (\"sofort\": \"sofort\"),\n EPS: (\"eps\": \"eps\"),\n MYBANK: (\"mybank\": \"mybank\"),\n P24: (\"p24\": \"p24\"),\n VERKKOPANKKI: (\"verkkopankki\": \"verkkopankki\"),\n PAYU: (\"payu\": \"payu\"),\n BLIK: (\"blik\": \"blik\"),\n TRUSTLY: (\"trustly\": \"trustly\"),\n ZIMPLER: (\"zimpler\": \"zimpler\"),\n MAXIMA: (\"maxima\": \"maxima\"),\n OXXO: (\"oxxo\": \"oxxo\"),\n BOLETO: (\"boleto\": \"boleto\"),\n BOLETOBANCARIO: (\"boletobancario\": \"boletobancario\"),\n WECHATPAY: (\"wechatpay\": \"wechatpay\"),\n MERCADOPAGO: (\"mercadopago\": \"mercadopago\"),\n MULTIBANCO: (\"multibanco\": \"multibanco\"),\n SATISPAY: (\"satispay\": \"satispay\"),\n PAIDY: (\"paidy\": \"paidy\"),\n};\n\nexport const FUNDING_BRAND_LABEL = {\n PAYPAL: (\"PayPal\": \"PayPal\"),\n CREDIT: (\"PayPal Credit\": \"PayPal Credit\"),\n};\n\nexport const CARD = {\n VISA: (\"visa\": \"visa\"),\n MASTERCARD: (\"mastercard\": \"mastercard\"),\n AMEX: (\"amex\": \"amex\"),\n DISCOVER: (\"discover\": \"discover\"),\n HIPER: (\"hiper\": \"hiper\"),\n ELO: (\"elo\": \"elo\"),\n JCB: (\"jcb\": \"jcb\"),\n CUP: (\"cup\": \"cup\"),\n};\n\nexport const WALLET_INSTRUMENT = {\n BALANCE: (\"balance\": \"balance\"),\n CARD: (\"card\": \"card\"),\n BANK: (\"bank\": \"bank\"),\n CREDIT: (\"credit\": \"credit\"),\n};\n\nexport const FUNDING_PRODUCTS = {\n PAY_IN_3: (\"payIn3\": \"payIn3\"),\n PAY_IN_4: (\"payIn4\": \"payIn4\"),\n PAYLATER: (\"paylater\": \"paylater\"),\n CREDIT: (\"credit\": \"credit\"),\n};\n","/* @flow */\n\nexport const PLATFORM = {\n DESKTOP: (\"desktop\": \"desktop\"),\n MOBILE: (\"mobile\": \"mobile\"),\n};\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","/* @flow */\nimport { sfvcScreens } from \"./screenHeights\";\n\nexport function getUserAgent(): string {\n return window.navigator.mockUserAgent || window.navigator.userAgent;\n}\n\nconst TABLET_PATTERN =\n /ip(a|ro)d|silk|xoom|playbook|tablet|kindle|Nexus 7|GT-P10|SC-01C|SHW-M180S|SM-T320|SGH-T849|SCH-I800|SHW-M180L|SPH-P100|SGH-I987|zt180|HTC( Flyer|_Flyer)|Sprint ATP51|ViewPad7|pandigital(sprnova|nova)|Ideos S7|Dell Streak 7|Advent Vega|A101IT|A70BHT|MID7015|Next2|nook|FOLIO|MB511.*RUTEM|Mac OS.*Silk/i;\n\nexport function isDevice(userAgent?: string = getUserAgent()): boolean {\n if (\n userAgent.match(\n /Android|webOS|iPhone|iPad|iPod|bada|Symbian|Palm|CriOS|BlackBerry|IEMobile|WindowsMobile|Opera Mini/i\n )\n ) {\n return true;\n }\n\n return false;\n}\n\nexport function isTablet(userAgent?: string = getUserAgent()): boolean {\n return TABLET_PATTERN.test(userAgent);\n}\n\nexport function isWebView(): boolean {\n const userAgent = getUserAgent();\n return (\n /(iPhone|iPod|iPad|Macintosh).*AppleWebKit(?!.*Safari)|.*WKWebView/i.test(\n userAgent\n ) ||\n /\\bwv\\b/.test(userAgent) ||\n /Android.*Version\\/(\\d)\\.(\\d)/i.test(userAgent)\n );\n}\n\nexport function isStandAlone(): boolean {\n return (\n window.navigator.standalone === true ||\n window.matchMedia(\"(display-mode: standalone)\").matches\n );\n}\n\nexport function isFacebookWebView(ua?: string = getUserAgent()): boolean {\n return /FBAN/.test(ua) || /FBAV/.test(ua);\n}\n\nexport function isFirefox(ua?: string = getUserAgent()): boolean {\n return /Firefox/i.test(ua);\n}\n\nexport function isFirefoxIOS(ua?: string = getUserAgent()): boolean {\n return /FxiOS/i.test(ua);\n}\n\nexport function isEdgeIOS(ua?: string = getUserAgent()): boolean {\n return /EdgiOS/i.test(ua);\n}\n\nexport function isOperaMini(ua?: string = getUserAgent()): boolean {\n return /Opera Mini/i.test(ua);\n}\n\nexport function isAndroid(ua?: string = getUserAgent()): boolean {\n return /Android/.test(ua);\n}\n\nexport function isIos(ua?: string = getUserAgent()): boolean {\n return /iPhone|iPod|iPad/.test(ua);\n}\n\nexport function isIOS14(ua?: string = getUserAgent()): boolean {\n return /iPhone.*OS.*(1)?(?:(1)[0-4]| [0-9])_/.test(ua);\n}\n\nexport function isGoogleSearchApp(ua?: string = getUserAgent()): boolean {\n return /\\bGSA\\b/.test(ua);\n}\n\nexport function isQQBrowser(ua?: string = getUserAgent()): boolean {\n return /QQBrowser/.test(ua);\n}\n\nexport function isIosWebview(ua?: string = getUserAgent()): boolean {\n if (isIos(ua)) {\n if (isGoogleSearchApp(ua)) {\n return true;\n }\n return /.+AppleWebKit(?!.*Safari)|.*WKWebView/.test(ua);\n }\n return false;\n}\n\nexport function isSFVC(ua?: string = getUserAgent()): boolean {\n if (isIos(ua)) {\n const height = window.innerHeight;\n const scale =\n Math.round((window.screen.width / window.innerWidth) * 100) / 100;\n const computedHeight = Math.round(height * scale);\n\n let device = null;\n if (isIOS14(ua)) {\n device = sfvcScreens[window.outerHeight];\n } else {\n if (scale !== 1) {\n return true;\n }\n\n device = sfvcScreens[window.outerHeight];\n }\n\n if (!device) {\n return true;\n }\n\n if (scale > 1 && device.zoomHeight && device.zoomHeight[scale]) {\n return device.zoomHeight[scale].indexOf(computedHeight) !== -1;\n } else {\n return (\n device.textSizeHeights.indexOf(computedHeight) !== -1 ||\n device.textSizeHeightsNoTabs.indexOf(computedHeight) !== -1\n );\n }\n }\n return false;\n}\n\nexport function isSFVCorSafari(ua?: string = getUserAgent()): boolean {\n if (isIos(ua)) {\n const sfvc = isSFVC(ua);\n\n const device = isIOS14(ua) ? sfvcScreens[window.outerHeight] : null;\n\n if (!device) {\n return false;\n }\n\n const height = window.innerHeight;\n const scale =\n Math.round((window.screen.width / window.innerWidth) * 100) / 100;\n\n const computedHeight = Math.round(height * scale);\n const possibleSafariSizes = device.maybeSafari;\n\n let maybeSafari = false;\n if (\n scale > 1 &&\n possibleSafariSizes[scale] &&\n possibleSafariSizes[scale].indexOf(computedHeight) !== -1\n ) {\n maybeSafari = true;\n }\n\n return sfvc || maybeSafari;\n }\n return false;\n}\n\nexport function isAndroidWebview(ua?: string = getUserAgent()): boolean {\n if (isAndroid(ua)) {\n return /Version\\/[\\d.]+/.test(ua) && !isOperaMini(ua);\n }\n return false;\n}\n\nexport function isIE(): boolean {\n if (window.document.documentMode) {\n return true;\n }\n\n return Boolean(\n window.navigator &&\n window.navigator.userAgent &&\n /Edge|MSIE|rv:11/i.test(window.navigator.userAgent)\n );\n}\n\nexport function isIECompHeader(): boolean {\n const mHttp = window.document.querySelector(\n 'meta[http-equiv=\"X-UA-Compatible\"]'\n );\n const mContent = window.document.querySelector('meta[content=\"IE=edge\"]');\n if (mHttp && mContent) {\n return true;\n }\n return false;\n}\n\nexport function isElectron(): boolean {\n if (\n typeof process !== \"undefined\" &&\n process.versions &&\n process.versions.electron\n ) {\n return true;\n }\n return false;\n}\n\nexport function isIEIntranet(): boolean {\n // This status check only works for older versions of IE with document.documentMode set\n\n if (window.document.documentMode) {\n try {\n const status = window.status;\n\n window.status = \"testIntranetMode\";\n\n if (window.status === \"testIntranetMode\") {\n window.status = status;\n\n return true;\n }\n\n return false;\n } catch (err) {\n return false;\n }\n }\n\n return false;\n}\n\nexport function isMacOsCna(): boolean {\n const userAgent = getUserAgent();\n return /Macintosh.*AppleWebKit(?!.*Safari)/i.test(userAgent);\n}\n\nexport function supportsPopups(ua?: string = getUserAgent()): boolean {\n return !(\n isIosWebview(ua) ||\n isAndroidWebview(ua) ||\n isOperaMini(ua) ||\n isFirefoxIOS(ua) ||\n isEdgeIOS(ua) ||\n isFacebookWebView(ua) ||\n isQQBrowser(ua) ||\n isElectron() ||\n isMacOsCna() ||\n isStandAlone()\n );\n}\n\nexport function isChrome(ua?: string = getUserAgent()): boolean {\n return (\n /Chrome|Chromium|CriOS/.test(ua) && !/SamsungBrowser|Silk|EdgA/.test(ua)\n );\n}\n\nexport function isSafari(ua?: string = getUserAgent()): boolean {\n return /Safari/.test(ua) && !isChrome(ua) && !/Silk|FxiOS|EdgiOS/.test(ua);\n}\n\nexport function isApplePaySupported(): boolean {\n try {\n if (\n window.ApplePaySession &&\n window.ApplePaySession.supportsVersion(3) &&\n window.ApplePaySession.canMakePayments()\n ) {\n return true;\n }\n } catch (e) {\n return false;\n }\n\n return false;\n}\n\nexport function isCrossSiteTrackingEnabled(expectedCookieKey: string): boolean {\n return window.document.cookie.indexOf(expectedCookieKey) === -1;\n}\n","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","/* @flow */\n/* eslint max-lines: 0 */\n\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport { WeakMap } from \"@krakenjs/cross-domain-safe-weakmap/src\";\n\nimport type { CancelableType } from \"./types\";\n\nexport function isElement(element: mixed): boolean {\n let passed = false;\n\n try {\n if (element instanceof window.Element) {\n passed = true;\n } else if (\n element !== null &&\n typeof element === \"object\" &&\n element.nodeType === 1 &&\n typeof element.style === \"object\" &&\n typeof element.ownerDocument === \"object\"\n ) {\n passed = true;\n }\n } catch (_) {\n // we don't have an element\n }\n\n return passed;\n}\n\nexport function getFunctionName(fn: T): string {\n return fn.name || fn.__name__ || fn.displayName || \"anonymous\";\n}\n\nexport function setFunctionName(fn: T, name: string): T {\n try {\n delete fn.name;\n fn.name = name;\n } catch (err) {\n // pass\n }\n\n fn.__name__ = fn.displayName = name;\n return fn;\n}\n\nexport function base64encode(str: string): string {\n if (typeof btoa === \"function\") {\n return btoa(\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (m, p1) => {\n return String.fromCharCode(parseInt(p1, 16));\n })\n ).replace(/[=]/g, \"\");\n }\n\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(str, \"utf8\").toString(\"base64\").replace(/[=]/g, \"\");\n }\n\n throw new Error(`Can not find window.btoa or Buffer`);\n}\n\nexport function base64decode(str: string): string {\n if (typeof atob === \"function\") {\n return decodeURIComponent(\n // $FlowFixMe[method-unbinding]\n Array.prototype.map\n .call(atob(str), (c) => {\n // eslint-disable-next-line prefer-template\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\")\n );\n }\n\n if (typeof Buffer !== \"undefined\") {\n return Buffer.from(str, \"base64\").toString(\"utf8\");\n }\n\n throw new Error(`Can not find window.atob or Buffer`);\n}\n\nexport function uniqueID(): string {\n const chars = \"0123456789abcdef\";\n\n const randomID = \"xxxxxxxxxx\".replace(/./g, () => {\n return chars.charAt(Math.floor(Math.random() * chars.length));\n });\n\n const timeID = base64encode(\n new Date().toISOString().slice(11, 19).replace(\"T\", \".\")\n )\n .replace(/[^a-zA-Z0-9]/g, \"\")\n .toLowerCase();\n\n return `uid_${randomID}_${timeID}`;\n}\n\nexport function getGlobal(): Object {\n if (typeof window !== \"undefined\") {\n return window;\n }\n if (typeof global !== \"undefined\") {\n return global;\n }\n if (typeof __GLOBAL__ !== \"undefined\") {\n return __GLOBAL__;\n }\n throw new Error(`No global found`);\n}\n\nlet objectIDs;\n\nexport function getObjectID(obj: Object): string {\n objectIDs = objectIDs || new WeakMap();\n\n if (\n obj === null ||\n obj === undefined ||\n (typeof obj !== \"object\" && typeof obj !== \"function\")\n ) {\n throw new Error(`Invalid object`);\n }\n\n let uid = objectIDs.get(obj);\n\n if (!uid) {\n uid = `${typeof obj}:${uniqueID()}`;\n objectIDs.set(obj, uid);\n }\n\n return uid;\n}\n\nfunction serializeArgs(args: $ReadOnlyArray): string {\n try {\n // $FlowFixMe[method-unbinding]\n return JSON.stringify(Array.prototype.slice.call(args), (subkey, val) => {\n // Treat each distinct function as unique for purposes of memoization\n // e.g. even if someFunction.stringify() is the same, we may use a different memoize cache\n // if the actual function is different.\n if (typeof val === \"function\") {\n return `memoize[${getObjectID(val)}]`;\n }\n\n // By default JSON.stringify(domElement) returns '{}'. This ensures that stays true even for non-standard\n // elements (e.g. React-rendered dom elements) with custom properties\n if (isElement(val)) {\n return {};\n }\n\n return val;\n });\n } catch (err) {\n throw new Error(`Arguments not serializable -- can not be used to memoize`);\n }\n}\n\nexport function getEmptyObject(): {||} {\n // $FlowFixMe\n return {};\n}\n\ntype MemoizeOptions = {|\n name?: string,\n time?: number,\n thisNamespace?: boolean,\n|};\n\nconst getDefaultMemoizeOptions = (): MemoizeOptions => {\n // $FlowFixMe\n return {};\n};\n\nexport type Memoized = F & {| reset: () => void |};\n\nlet memoizeGlobalIndex = 0;\nlet memoizeGlobalIndexValidFrom = 0;\n\nexport function memoize(\n method: F,\n options?: MemoizeOptions = getDefaultMemoizeOptions()\n): Memoized {\n const { thisNamespace = false, time: cacheTime } = options;\n\n let simpleCache;\n let thisCache;\n\n let memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n\n const memoizedFunction = function memoizedFunction(...args): mixed {\n if (memoizeIndex < memoizeGlobalIndexValidFrom) {\n simpleCache = null;\n thisCache = null;\n memoizeIndex = memoizeGlobalIndex;\n memoizeGlobalIndex += 1;\n }\n\n let cache;\n\n if (thisNamespace) {\n thisCache = thisCache || new WeakMap();\n cache = thisCache.getOrSet(this, getEmptyObject);\n } else {\n cache = simpleCache = simpleCache || {};\n }\n\n let cacheKey;\n\n try {\n cacheKey = serializeArgs(args);\n } catch {\n return method.apply(this, arguments);\n }\n\n let cacheResult = cache[cacheKey];\n\n if (cacheResult && cacheTime && Date.now() - cacheResult.time < cacheTime) {\n delete cache[cacheKey];\n cacheResult = null;\n }\n\n if (cacheResult) {\n return cacheResult.value;\n }\n\n const time = Date.now();\n const value = method.apply(this, arguments);\n\n cache[cacheKey] = { time, value };\n\n return value;\n };\n\n memoizedFunction.reset = () => {\n simpleCache = null;\n thisCache = null;\n };\n\n // $FlowFixMe\n const result: F = memoizedFunction;\n\n return setFunctionName(\n result,\n `${options.name || getFunctionName(method)}::memoized`\n );\n}\n\nmemoize.clear = () => {\n memoizeGlobalIndexValidFrom = memoizeGlobalIndex;\n};\n\nexport function promiseIdentity(\n item: ZalgoPromise | T\n): ZalgoPromise {\n // $FlowFixMe\n return ZalgoPromise.resolve(item);\n}\n\nexport function memoizePromise(\n // eslint-disable-next-line flowtype/no-weak-types\n method: (...args: $ReadOnlyArray) => ZalgoPromise\n // eslint-disable-next-line flowtype/no-weak-types\n): (...args: $ReadOnlyArray) => ZalgoPromise {\n let cache = {};\n\n function memoizedPromiseFunction(\n // eslint-disable-next-line flowtype/no-weak-types\n ...args: $ReadOnlyArray\n ): ZalgoPromise {\n const key: string = serializeArgs(args);\n\n if (cache.hasOwnProperty(key)) {\n return cache[key];\n }\n\n cache[key] = ZalgoPromise.try(() => method.apply(this, arguments)).finally(\n () => {\n delete cache[key];\n }\n );\n\n return cache[key];\n }\n\n memoizedPromiseFunction.reset = () => {\n cache = {};\n };\n\n return setFunctionName(\n memoizedPromiseFunction,\n `${getFunctionName(method)}::promiseMemoized`\n );\n}\n\ntype PromisifyOptions = {|\n name?: string,\n|};\n\nconst getDefaultPromisifyOptions = (): PromisifyOptions => {\n // $FlowFixMe\n return {};\n};\n\nexport function promisify(\n // eslint-disable-next-line flowtype/no-weak-types\n method: (...args: $ReadOnlyArray) => R,\n options: PromisifyOptions = getDefaultPromisifyOptions()\n // eslint-disable-next-line flowtype/no-weak-types\n): (...args: $ReadOnlyArray) => ZalgoPromise {\n function promisifiedFunction(): ZalgoPromise {\n return ZalgoPromise.try(method, this, arguments);\n }\n\n if (options.name) {\n promisifiedFunction.displayName = `${options.name}:promisified`;\n }\n\n return setFunctionName(\n promisifiedFunction,\n `${getFunctionName(method)}::promisified`\n );\n}\n\nexport function inlineMemoize(\n // eslint-disable-next-line flowtype/no-weak-types\n method: (...args: $ReadOnlyArray) => R,\n // eslint-disable-next-line flowtype/no-weak-types\n logic: (...args: $ReadOnlyArray) => R,\n // eslint-disable-next-line flowtype/no-weak-types\n args: $ReadOnlyArray = []\n): R {\n // $FlowFixMe\n const cache: {| [string]: R |} = (method.__inline_memoize_cache__ =\n // $FlowFixMe\n method.__inline_memoize_cache__ || {});\n const key = serializeArgs(args);\n\n if (cache.hasOwnProperty(key)) {\n return cache[key];\n }\n\n const result = (cache[key] = logic(...args));\n\n return result;\n}\n\n// eslint-disable-next-line no-unused-vars\nexport function noop(...args: $ReadOnlyArray) {\n // pass\n}\n\nexport function once(method: Function): Function {\n let called = false;\n\n const onceFunction = function (): mixed {\n if (!called) {\n called = true;\n return method.apply(this, arguments);\n }\n };\n\n return setFunctionName(onceFunction, `${getFunctionName(method)}::once`);\n}\n\nexport function hashStr(str: string): number {\n let hash = 0;\n for (let i = 0; i < str.length; i++) {\n hash += str[i].charCodeAt(0) * Math.pow((i % 10) + 1, 5);\n }\n return Math.floor(Math.pow(Math.sqrt(hash), 5));\n}\n\nexport function strHashStr(str: string): string {\n let hash = \"\";\n\n for (let i = 0; i < str.length; i++) {\n let total = str[i].charCodeAt(0) * i;\n\n if (str[i + 1]) {\n total += str[i + 1].charCodeAt(0) * (i - 1);\n }\n\n hash += String.fromCharCode(97 + (Math.abs(total) % 26));\n }\n\n return hash;\n}\n\nexport function match(str: string, pattern: RegExp): ?string {\n const regmatch = str.match(pattern);\n if (regmatch) {\n return regmatch[1];\n }\n}\n\nexport function awaitKey(obj: Object, key: string): ZalgoPromise {\n return new ZalgoPromise((resolve) => {\n let value = obj[key];\n\n if (value) {\n return resolve(value);\n }\n\n delete obj[key];\n\n Object.defineProperty(obj, key, {\n configurable: true,\n\n set(item) {\n value = item;\n\n if (value) {\n resolve(value);\n }\n },\n\n get(): T {\n return value;\n },\n });\n });\n}\n\nexport function stringifyError(err: mixed, level: number = 1): string {\n if (level >= 3) {\n return \"stringifyError stack overflow\";\n }\n\n try {\n if (!err) {\n // $FlowFixMe[method-unbinding]\n return ``;\n }\n\n if (typeof err === \"string\") {\n return err;\n }\n\n if (err instanceof Error) {\n const stack = err && err.stack;\n const message = err && err.message;\n\n if (stack && message) {\n if (stack.indexOf(message) !== -1) {\n return stack;\n } else {\n return `${message}\\n${stack}`;\n }\n } else if (stack) {\n return stack;\n } else if (message) {\n return message;\n }\n }\n\n if (err && err.toString && typeof err.toString === \"function\") {\n // $FlowFixMe\n return err.toString();\n }\n\n // $FlowFixMe[method-unbinding]\n return Object.prototype.toString.call(err);\n } catch (newErr) {\n return `Error while stringifying error: ${stringifyError(\n newErr,\n level + 1\n )}`;\n }\n}\n\nexport function stringifyErrorMessage(err: mixed): string {\n // $FlowFixMe[method-unbinding]\n const defaultMessage = ``;\n\n if (!err) {\n return defaultMessage;\n }\n\n if (err instanceof Error) {\n return err.message || defaultMessage;\n }\n\n if (typeof err.message === \"string\") {\n return err.message || defaultMessage;\n }\n\n return defaultMessage;\n}\n\nexport function stringify(item: mixed): string {\n if (typeof item === \"string\") {\n return item;\n }\n\n if (item && item.toString && typeof item.toString === \"function\") {\n // $FlowFixMe\n return item.toString();\n }\n\n // $FlowFixMe[method-unbinding]\n return Object.prototype.toString.call(item);\n}\n\nexport function domainMatches(hostname: string, domain: string): boolean {\n hostname = hostname.split(\"://\")[1];\n const index = hostname.indexOf(domain);\n return index !== -1 && hostname.slice(index) === domain;\n}\n\nexport function patchMethod(obj: Object, name: string, handler: Function) {\n const original = obj[name];\n\n obj[name] = function patchedMethod(): mixed {\n return handler({\n context: this,\n // $FlowFixMe[method-unbinding]\n args: Array.prototype.slice.call(arguments),\n original,\n callOriginal: () => original.apply(this, arguments),\n });\n };\n}\n\nexport function extend(obj: T, source: Object): T {\n if (!source) {\n return obj;\n }\n\n if (Object.assign) {\n return Object.assign(obj, source);\n }\n\n for (const key in source) {\n if (source.hasOwnProperty(key)) {\n obj[key] = source[key];\n }\n }\n\n return obj;\n}\n\nexport function values(obj: { [string]: T }): $ReadOnlyArray {\n if (Object.values) {\n // $FlowFixMe\n return Object.values(obj);\n }\n\n const result: Array = [];\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n // $FlowFixMe[escaped-generic]\n result.push(obj[key]);\n }\n }\n\n // $FlowFixMe\n return result;\n}\n\n// eslint-disable-next-line no-undef\nexport const memoizedValues: ({ [string]: T }) => $ReadOnlyArray =\n memoize(values);\n\nexport function perc(pixels: number, percentage: number): number {\n return Math.round((pixels * percentage) / 100);\n}\n\nexport function min(...args: $ReadOnlyArray): number {\n return Math.min(...args);\n}\n\nexport function max(...args: $ReadOnlyArray): number {\n return Math.max(...args);\n}\n\nexport function roundUp(num: number, nearest: number): number {\n const remainder = num % nearest;\n return remainder ? num - remainder + nearest : num;\n}\n\nexport function regexMap(\n str: string,\n regexp: RegExp,\n handler: () => T\n): $ReadOnlyArray {\n const results = [];\n\n // $FlowFixMe\n str.replace(regexp, function regexMapMatcher(item) {\n results.push(handler ? handler.apply(null, arguments) : item);\n });\n\n // $FlowFixMe\n return results;\n}\n\nexport function svgToBase64(svg: string): string {\n return `data:image/svg+xml;base64,${base64encode(svg)}`;\n}\n\nexport function objFilter(\n obj: { [string]: T },\n filter?: (T, ?string) => mixed = Boolean\n): { [string]: R } {\n const result = {};\n\n for (const key in obj) {\n if (!obj.hasOwnProperty(key) || !filter(obj[key], key)) {\n continue;\n }\n\n result[key] = obj[key];\n }\n\n return result;\n}\n\nexport function identity(item: T): T {\n return item;\n}\n\nexport function regexTokenize(\n text: string,\n regexp: RegExp\n): $ReadOnlyArray {\n const result = [];\n text.replace(regexp, (token) => {\n result.push(token);\n return \"\";\n });\n return result;\n}\n\nexport function promiseDebounce(\n method: () => ZalgoPromise | T,\n delay: number = 50\n): () => ZalgoPromise {\n let promise;\n let timeout;\n\n const promiseDebounced = function (): ZalgoPromise {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n const localPromise = (promise = promise || new ZalgoPromise());\n\n timeout = setTimeout(() => {\n promise = null;\n timeout = null;\n\n ZalgoPromise.try(method).then(\n (result) => {\n localPromise.resolve(result);\n },\n (err) => {\n localPromise.reject(err);\n }\n );\n }, delay);\n\n return localPromise;\n };\n\n return setFunctionName(\n promiseDebounced,\n `${getFunctionName(method)}::promiseDebounced`\n );\n}\n\nexport function safeInterval(\n method: Function,\n time: number\n): {| cancel: () => void |} {\n let timeout;\n\n function loop() {\n timeout = setTimeout(() => {\n method();\n loop();\n }, time);\n }\n\n loop();\n\n return {\n cancel() {\n clearTimeout(timeout);\n },\n };\n}\n\nexport function isInteger(str: string): boolean {\n return Boolean(str.match(/^[0-9]+$/));\n}\n\nexport function isFloat(str: string): boolean {\n return Boolean(str.match(/^[0-9]+\\.[0-9]+$/));\n}\n\nexport function serializePrimitive(value: string | number | boolean): string {\n return value.toString();\n}\n\nexport function deserializePrimitive(value: string): string | number | boolean {\n if (value === \"true\") {\n return true;\n } else if (value === \"false\") {\n return false;\n } else if (isInteger(value)) {\n return parseInt(value, 10);\n } else if (isFloat(value)) {\n return parseFloat(value);\n } else {\n return value;\n }\n}\n\nexport function dotify(\n obj: Object,\n prefix: string = \"\",\n newobj: Object = {}\n): { [string]: string } {\n prefix = prefix ? `${prefix}.` : prefix;\n for (const key in obj) {\n if (\n !obj.hasOwnProperty(key) ||\n obj[key] === undefined ||\n obj[key] === null ||\n typeof obj[key] === \"function\"\n ) {\n continue;\n } else if (\n obj[key] &&\n Array.isArray(obj[key]) &&\n obj[key].length &&\n obj[key].every((val) => typeof val !== \"object\")\n ) {\n newobj[`${prefix}${key}[]`] = obj[key].join(\",\");\n } else if (obj[key] && typeof obj[key] === \"object\") {\n newobj = dotify(obj[key], `${prefix}${key}`, newobj);\n } else {\n newobj[`${prefix}${key}`] = serializePrimitive(obj[key]);\n }\n }\n return newobj;\n}\n\nexport function undotify(obj: { [string]: string }): Object {\n const result = {};\n\n for (let key in obj) {\n if (!obj.hasOwnProperty(key) || typeof obj[key] !== \"string\") {\n continue;\n }\n\n let value = obj[key];\n\n if (key.match(/^.+\\[\\]$/)) {\n key = key.slice(0, -2);\n value = value.split(\",\").map(deserializePrimitive);\n } else {\n value = deserializePrimitive(value);\n }\n\n let keyResult = result;\n const parts = key.split(\".\");\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n const isLast = i + 1 === parts.length;\n const isIndex = !isLast && isInteger(parts[i + 1]);\n\n if (\n part === \"constructor\" ||\n part === \"prototype\" ||\n part === \"__proto__\"\n ) {\n throw new Error(`Disallowed key: ${part}`);\n }\n\n if (isLast) {\n // $FlowFixMe\n keyResult[part] = value;\n } else {\n // $FlowFixMe\n keyResult = keyResult[part] = keyResult[part] || (isIndex ? [] : {});\n }\n }\n }\n\n return result;\n}\n\nexport type EventEmitterType = {|\n on: (eventName: string, handler: Function) => CancelableType,\n once: (eventName: string, handler: Function) => CancelableType,\n trigger: (\n eventName: string,\n ...args: $ReadOnlyArray\n ) => ZalgoPromise,\n triggerOnce: (\n eventName: string,\n ...args: $ReadOnlyArray\n ) => ZalgoPromise,\n reset: () => void,\n|};\n\nexport function eventEmitter(): EventEmitterType {\n const triggered = {};\n let handlers = {};\n\n const emitter = {\n on(eventName: string, handler: Function): CancelableType {\n const handlerList = (handlers[eventName] = handlers[eventName] || []);\n\n handlerList.push(handler);\n\n let cancelled = false;\n\n return {\n cancel() {\n if (!cancelled) {\n cancelled = true;\n handlerList.splice(handlerList.indexOf(handler), 1);\n }\n },\n };\n },\n\n once(eventName: string, handler: Function): CancelableType {\n const listener = emitter.on(eventName, () => {\n listener.cancel();\n handler();\n });\n\n return listener;\n },\n\n trigger(\n eventName: string,\n ...args: $ReadOnlyArray\n ): ZalgoPromise {\n const handlerList = handlers[eventName];\n const promises = [];\n\n if (handlerList) {\n for (const handler of handlerList) {\n promises.push(ZalgoPromise.try(() => handler(...args)));\n }\n }\n\n return ZalgoPromise.all(promises).then(noop);\n },\n\n triggerOnce(\n eventName: string,\n ...args: $ReadOnlyArray\n ): ZalgoPromise {\n if (triggered[eventName]) {\n return ZalgoPromise.resolve();\n }\n\n triggered[eventName] = true;\n return emitter.trigger(eventName, ...args);\n },\n\n reset() {\n handlers = {};\n },\n };\n\n return emitter;\n}\n\nexport function camelToDasherize(string: string): string {\n return string.replace(/([A-Z])/g, (g) => {\n return `-${g.toLowerCase()}`;\n });\n}\n\nexport function dasherizeToCamel(string: string): string {\n return string.replace(/-([a-z])/g, (g) => {\n return g[1].toUpperCase();\n });\n}\n\nexport function capitalizeFirstLetter(string: string): string {\n return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n}\n\nexport function get(item: Object, path: string, def: mixed): mixed {\n if (!path) {\n return def;\n }\n\n const pathParts = path.split(\".\");\n\n // Loop through each section of our key path\n\n for (let i = 0; i < pathParts.length; i++) {\n // If we have an object, we can get the key\n if (typeof item === \"object\" && item !== null) {\n item = item[pathParts[i]];\n\n // Otherwise, we should return the default (undefined if not provided)\n } else {\n return def;\n }\n }\n\n // If our final result is undefined, we should return the default\n\n return item === undefined ? def : item;\n}\n\nexport function safeTimeout(method: Function, time: number) {\n const interval = safeInterval(() => {\n time -= 100;\n if (time <= 0) {\n interval.cancel();\n method();\n }\n }, 100);\n}\n\nexport function defineLazyProp(\n obj: Object | $ReadOnlyArray,\n key: string | number,\n getter: () => T\n) {\n if (Array.isArray(obj)) {\n if (typeof key !== \"number\") {\n throw new TypeError(`Array key must be number`);\n }\n } else if (typeof obj === \"object\" && obj !== null) {\n if (typeof key !== \"string\") {\n throw new TypeError(`Object key must be string`);\n }\n }\n\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: true,\n get: () => {\n // $FlowFixMe\n delete obj[key];\n const value = getter();\n // $FlowFixMe\n obj[key] = value;\n return value;\n },\n set: (value: T) => {\n // $FlowFixMe\n delete obj[key];\n // $FlowFixMe\n obj[key] = value;\n },\n });\n}\n\n// eslint-disable-next-line no-undef\nexport function arrayFrom(item: Iterable): $ReadOnlyArray {\n // $FlowFixMe[method-unbinding]\n return Array.prototype.slice.call(item);\n}\n\nexport function isObject(item: mixed): boolean {\n return typeof item === \"object\" && item !== null;\n}\n\nexport function isObjectObject(obj: mixed): boolean {\n return (\n // $FlowFixMe[method-unbinding]\n isObject(obj) && Object.prototype.toString.call(obj) === \"[object Object]\"\n );\n}\n\nexport function isPlainObject(obj: mixed): boolean {\n if (!isObjectObject(obj)) {\n return false;\n }\n\n // $FlowFixMe\n const constructor = obj.constructor;\n\n if (typeof constructor !== \"function\") {\n return false;\n }\n\n const prototype = constructor.prototype;\n\n if (!isObjectObject(prototype)) {\n return false;\n }\n\n if (!prototype.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n\n return true;\n}\n\nexport function replaceObject | Object>(\n item: T,\n replacer: (mixed, string | number, string) => mixed,\n fullKey: string = \"\"\n): T {\n if (Array.isArray(item)) {\n const length = item.length;\n const result: Array = [];\n\n for (let i = 0; i < length; i++) {\n defineLazyProp(result, i, () => {\n const itemKey = fullKey ? `${fullKey}.${i}` : `${i}`;\n const el = item[i];\n\n let child = replacer(el, i, itemKey);\n\n if (isPlainObject(child) || Array.isArray(child)) {\n // $FlowFixMe\n child = replaceObject(child, replacer, itemKey);\n }\n\n return child;\n });\n }\n\n // $FlowFixMe\n return result;\n } else if (isPlainObject(item)) {\n const result = {};\n\n for (const key in item) {\n if (!item.hasOwnProperty(key)) {\n continue;\n }\n\n defineLazyProp(result, key, () => {\n const itemKey = fullKey ? `${fullKey}.${key}` : `${key}`;\n // $FlowFixMe\n const el = item[key];\n\n let child = replacer(el, key, itemKey);\n\n if (isPlainObject(child) || Array.isArray(child)) {\n // $FlowFixMe\n child = replaceObject(child, replacer, itemKey);\n }\n\n return child;\n });\n }\n\n // $FlowFixMe\n return result;\n } else {\n throw new Error(`Pass an object or array`);\n }\n}\n\nexport function copyProp(\n source: Object,\n target: Object,\n name: string,\n def: mixed\n) {\n if (source.hasOwnProperty(name)) {\n const descriptor = Object.getOwnPropertyDescriptor(source, name);\n // $FlowFixMe\n Object.defineProperty(target, name, descriptor);\n } else {\n target[name] = def;\n }\n}\n\ntype RegexResultType = {|\n text: string,\n groups: $ReadOnlyArray,\n start: number,\n end: number,\n length: number,\n replace: (text: string) => string,\n|};\n\nexport function regex(\n pattern: string | RegExp,\n string: string,\n start: number = 0\n): ?RegexResultType {\n if (typeof pattern === \"string\") {\n // eslint-disable-next-line security/detect-non-literal-regexp\n pattern = new RegExp(pattern);\n }\n\n const result = string.slice(start).match(pattern);\n\n if (!result) {\n return;\n }\n\n // $FlowFixMe\n const index: number = result.index;\n const regmatch = result[0];\n\n return {\n text: regmatch,\n groups: result.slice(1),\n start: start + index,\n end: start + index + regmatch.length,\n length: regmatch.length,\n\n replace(text: string): string {\n if (!regmatch) {\n return \"\";\n }\n\n return `${regmatch.slice(0, start + index)}${text}${regmatch.slice(\n index + regmatch.length\n )}`;\n },\n };\n}\n\nexport function regexAll(\n pattern: string | RegExp,\n string: string\n): $ReadOnlyArray {\n const matches = [];\n let start = 0;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const regmatch = regex(pattern, string, start);\n\n if (!regmatch) {\n break;\n }\n\n matches.push(regmatch);\n start = match.end;\n }\n\n return matches;\n}\n\nexport function isDefined(value: ?mixed): boolean {\n return value !== null && value !== undefined;\n}\n\nexport function cycle(method: Function): ZalgoPromise {\n return ZalgoPromise.try(method).then(() => cycle(method));\n}\n\nexport function debounce(\n method: (...args: $ReadOnlyArray) => T,\n time: number = 100\n): (...args: $ReadOnlyArray) => void {\n let timeout;\n\n const debounceWrapper = function () {\n clearTimeout(timeout);\n\n timeout = setTimeout(() => {\n return method.apply(this, arguments);\n }, time);\n };\n\n return setFunctionName(\n debounceWrapper,\n `${getFunctionName(method)}::debounced`\n );\n}\n\nexport function isRegex(item: mixed): boolean {\n // $FlowFixMe[method-unbinding]\n return Object.prototype.toString.call(item) === \"[object RegExp]\";\n}\n\ntype FunctionProxy = (method: T) => T;\n\nexport const weakMapMemoize: FunctionProxy<*> = (\n // eslint-disable-next-line flowtype/no-weak-types\n method: (arg: any) => R\n // eslint-disable-next-line flowtype/no-weak-types\n): ((...args: $ReadOnlyArray) => R) => {\n const weakmap = new WeakMap();\n\n // eslint-disable-next-line flowtype/no-weak-types\n return function weakmapMemoized(arg: any): R {\n return weakmap.getOrSet(arg, () => method.call(this, arg));\n };\n};\n\ntype FunctionPromiseProxy<\n R: mixed,\n T: (...args: $ReadOnlyArray) => ZalgoPromise\n> = (T) => T;\n\nexport const weakMapMemoizePromise: FunctionPromiseProxy<*, *> = (\n // eslint-disable-next-line flowtype/no-weak-types\n method: (arg: any) => ZalgoPromise\n // eslint-disable-next-line flowtype/no-weak-types\n): ((...args: $ReadOnlyArray) => ZalgoPromise) => {\n const weakmap = new WeakMap();\n\n // eslint-disable-next-line flowtype/no-weak-types\n return function weakmapMemoizedPromise(arg: any): ZalgoPromise {\n return weakmap.getOrSet(arg, () =>\n method.call(this, arg).finally(() => {\n weakmap.delete(arg);\n })\n );\n };\n};\n\nexport function getOrSet(\n obj: O,\n key: string,\n getter: () => T\n): T {\n if (obj.hasOwnProperty(key)) {\n return obj[key];\n }\n\n const val = getter();\n obj[key] = val;\n return val;\n}\n\nexport type CleanupType = {|\n set: (string, T) => T, // eslint-disable-line no-undef\n register: (Function) => {| cancel: () => void |},\n all: (err?: mixed) => ZalgoPromise,\n|};\n\nexport function cleanup(obj: Object): CleanupType {\n const tasks = [];\n let cleaned = false;\n let cleanErr;\n\n const cleaner = {\n set(name: string, item: T): T {\n if (!cleaned) {\n obj[name] = item;\n cleaner.register(() => {\n delete obj[name];\n });\n }\n return item;\n },\n\n register(method: Function): {| cancel: () => void |} {\n const task = once(() => method(cleanErr));\n\n if (cleaned) {\n method(cleanErr);\n } else {\n tasks.push(task);\n }\n\n return {\n cancel: () => {\n const index = tasks.indexOf(task);\n if (index !== -1) {\n tasks.splice(index, 1);\n }\n },\n };\n },\n\n all(err?: mixed): ZalgoPromise {\n cleanErr = err;\n\n const results = [];\n cleaned = true;\n\n while (tasks.length) {\n const task = tasks.shift();\n results.push(task());\n }\n\n return ZalgoPromise.all(results).then(noop);\n },\n };\n\n return cleaner;\n}\n\nexport function tryCatch(\n fn: () => T\n): {| result: T, error: void |} | {| result: void, error: mixed |} {\n let result;\n let error;\n\n try {\n result = fn();\n } catch (err) {\n error = err;\n }\n\n // $FlowFixMe\n return { result, error };\n}\n\n// eslint-disable-next-line flowtype/no-mutable-array\nexport function removeFromArray>(arr: T, item: X) {\n const index = arr.indexOf(item);\n if (index !== -1) {\n arr.splice(index, 1);\n }\n}\n\nexport function assertExists(name: string, thing: void | null | T): T {\n if (thing === null || typeof thing === \"undefined\") {\n throw new Error(`Expected ${name} to be present`);\n }\n\n return thing;\n}\n\nexport function unique(arr: $ReadOnlyArray): $ReadOnlyArray {\n const result = {};\n for (const item of arr) {\n result[item] = true;\n }\n return Object.keys(result);\n}\n\nexport const constHas = (\n constant: T,\n value: X\n): boolean => {\n return memoizedValues(constant).indexOf(value) !== -1;\n};\n\nexport function dedupeErrors(handler: (mixed) => T): (mixed) => T | void {\n const seenErrors = [];\n const seenStringifiedErrors = {};\n\n return (err) => {\n if (seenErrors.indexOf(err) !== -1) {\n return;\n }\n\n seenErrors.push(err);\n\n const stringifiedError = stringifyError(err);\n if (seenStringifiedErrors[stringifiedError]) {\n return;\n }\n\n seenStringifiedErrors[stringifiedError] = true;\n return handler(err);\n };\n}\n\nexport class ExtendableError extends Error {\n constructor(message: string) {\n super(message);\n // eslint-disable-next-line unicorn/custom-error-definition\n this.name = this.constructor.name;\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error(message).stack;\n }\n }\n}\n","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeFunction from \"@babel/runtime/helpers/esm/isNativeFunction\";\nimport construct from \"@babel/runtime/helpers/esm/construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","/* @flow */\n/* eslint max-lines: off */\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport {\n linkFrameWindow,\n isWindowClosed,\n assertSameDomain,\n type SameDomainWindowType,\n type CrossDomainWindowType,\n} from \"@krakenjs/cross-domain-utils/src\";\nimport { WeakMap } from \"@krakenjs/cross-domain-safe-weakmap/src\";\n\nimport {\n isElement,\n inlineMemoize,\n memoize,\n noop,\n stringify,\n capitalizeFirstLetter,\n once,\n extend,\n safeInterval,\n uniqueID,\n arrayFrom,\n ExtendableError,\n strHashStr,\n} from \"./util\";\nimport { isDevice } from \"./device\";\nimport { KEY_CODES, ATTRIBUTES, UID_HASH_LENGTH } from \"./constants\";\nimport type { CancelableType } from \"./types\";\n\ntype ElementRefType = string | HTMLElement;\n\nexport function getBody(): HTMLBodyElement {\n // eslint-disable-next-line compat/compat\n const body = document.body;\n\n if (!body) {\n throw new Error(`Body element not found`);\n }\n\n return body;\n}\n\nexport function isDocumentReady(): boolean {\n // eslint-disable-next-line compat/compat\n return Boolean(document.body) && document.readyState === \"complete\";\n}\n\nexport function isDocumentInteractive(): boolean {\n // eslint-disable-next-line compat/compat\n return Boolean(document.body) && document.readyState === \"interactive\";\n}\n\nexport function urlEncode(str: string): string {\n return encodeURIComponent(str);\n}\n\nexport function waitForWindowReady(): ZalgoPromise {\n return inlineMemoize(waitForWindowReady, (): ZalgoPromise => {\n return new ZalgoPromise((resolve) => {\n if (isDocumentReady()) {\n resolve();\n }\n\n window.addEventListener(\"load\", () => resolve());\n });\n });\n}\n\ntype WaitForDocumentReady = () => ZalgoPromise;\n\nexport const waitForDocumentReady: WaitForDocumentReady = memoize(() => {\n return new ZalgoPromise((resolve) => {\n if (isDocumentReady() || isDocumentInteractive()) {\n return resolve();\n }\n\n const interval = setInterval(() => {\n if (isDocumentReady() || isDocumentInteractive()) {\n clearInterval(interval);\n return resolve();\n }\n }, 10);\n });\n});\n\nexport function waitForDocumentBody(): ZalgoPromise {\n return ZalgoPromise.try(() => {\n if (document.body) {\n return document.body;\n }\n\n return waitForDocumentReady().then(() => {\n if (document.body) {\n return document.body;\n }\n\n throw new Error(\"Document ready but document.body not present\");\n });\n });\n}\n\nexport function parseQuery(queryString: string): Object {\n return inlineMemoize(\n parseQuery,\n (): Object => {\n const params = {};\n\n if (!queryString) {\n return params;\n }\n\n if (queryString.indexOf(\"=\") === -1) {\n return params;\n }\n\n for (let pair of queryString.split(\"&\")) {\n pair = pair.split(\"=\");\n\n if (pair[0] && pair[1]) {\n params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n }\n\n return params;\n },\n [queryString]\n );\n}\n\nexport function getQueryParam(name: string): string {\n return parseQuery(window.location.search.slice(1))[name];\n}\n\nexport function urlWillRedirectPage(url: string): boolean {\n if (url.indexOf(\"#\") === -1) {\n return true;\n }\n\n if (url.indexOf(\"#\") === 0) {\n return false;\n }\n\n if (url.split(\"#\")[0] === window.location.href.split(\"#\")[0]) {\n return false;\n }\n\n return true;\n}\n\nexport type Query = {\n [string]: boolean | string,\n};\n\nexport function formatQuery(obj: Query = {}): string {\n return Object.keys(obj)\n .filter((key) => {\n return typeof obj[key] === \"string\" || typeof obj[key] === \"boolean\";\n })\n .map((key) => {\n const val = obj[key];\n\n if (typeof val !== \"string\" && typeof val !== \"boolean\") {\n throw new TypeError(`Invalid type for query`);\n }\n\n return `${urlEncode(key)}=${urlEncode(val.toString())}`;\n })\n .join(\"&\");\n}\n\nexport function extendQuery(originalQuery: string, props: Query = {}): string {\n if (!props || !Object.keys(props).length) {\n return originalQuery;\n }\n\n return formatQuery({\n ...parseQuery(originalQuery),\n ...props,\n });\n}\n\nexport function extendUrl(\n url: string,\n options: {| query?: Query, hash?: Query |}\n): string {\n const query = options.query || {};\n const hash = options.hash || {};\n\n let originalUrl;\n let originalQuery;\n let originalHash;\n\n [originalUrl, originalHash] = url.split(\"#\");\n [originalUrl, originalQuery] = originalUrl.split(\"?\");\n\n const queryString = extendQuery(originalQuery, query);\n const hashString = extendQuery(originalHash, hash);\n\n if (queryString) {\n originalUrl = `${originalUrl}?${queryString}`;\n }\n\n if (hashString) {\n originalUrl = `${originalUrl}#${hashString}`;\n }\n\n return originalUrl;\n}\n\nexport function redirect(\n url: string,\n win: CrossDomainWindowType = window\n): ZalgoPromise {\n return new ZalgoPromise((resolve) => {\n win.location = url;\n if (!urlWillRedirectPage(url)) {\n resolve();\n }\n });\n}\n\nexport function hasMetaViewPort(): boolean {\n const meta = document.querySelector(\"meta[name=viewport]\");\n\n if (isDevice() && window.screen.width < 660 && !meta) {\n return false;\n }\n\n return true;\n}\n\nexport function isElementVisible(el: HTMLElement): boolean {\n return Boolean(\n el.offsetWidth || el.offsetHeight || el.getClientRects().length\n );\n}\n\nexport function getPerformance(): ?Performance {\n return inlineMemoize(getPerformance, (): ?Performance => {\n const performance = window.performance;\n\n if (\n performance &&\n performance.now &&\n performance.timing &&\n performance.timing.connectEnd &&\n performance.timing.navigationStart &&\n Math.abs(performance.now() - Date.now()) > 1000 &&\n performance.now() -\n (performance.timing.connectEnd - performance.timing.navigationStart) >\n 0\n ) {\n return performance;\n }\n });\n}\n\nexport function enablePerformance(): boolean {\n return Boolean(getPerformance());\n}\n\nexport function getPageRenderTime(): ZalgoPromise {\n return waitForDocumentReady().then(() => {\n const performance = getPerformance();\n\n if (!performance) {\n return;\n }\n\n const timing = performance.timing;\n\n if (timing.connectEnd && timing.domInteractive) {\n return timing.domInteractive - timing.connectEnd;\n }\n });\n}\n\nexport function htmlEncode(html: string = \"\"): string {\n return html\n .toString()\n .replace(/&/g, \"&\")\n .replace(//g, \">\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(/\\//g, \"/\");\n}\n\nexport function isBrowser(): boolean {\n return typeof window !== \"undefined\" && window.location !== undefined;\n}\n\nexport function querySelectorAll(\n selector: string,\n doc: HTMLElement = window.document\n): $ReadOnlyArray {\n // $FlowFixMe[method-unbinding]\n return Array.prototype.slice.call(doc.querySelectorAll(selector));\n}\n\n/**\n * Sets up event handlers for click events and\n * enter/space keypresses.\n * @callback handler\n * @param {HTMLElement} element\n * @param {handler} handler\n */\nexport function onClick(element: HTMLElement, handler: (Event) => void) {\n element.addEventListener(\"touchstart\", noop, { passive: true });\n element.addEventListener(\"click\", handler);\n element.addEventListener(\"keypress\", (event: Event) => {\n if (\n // $FlowFixMe\n event.keyCode === KEY_CODES.ENTER ||\n // $FlowFixMe\n event.keyCode === KEY_CODES.SPACE\n ) {\n return handler(event);\n }\n });\n}\n\nexport function getScript({\n host = window.location.host,\n path,\n reverse = false,\n}: {|\n host?: string,\n path: string,\n reverse?: boolean,\n|}): ?HTMLScriptElement {\n return inlineMemoize(\n getScript,\n (): ?HTMLScriptElement => {\n const url = `${host}${path}`;\n // $FlowFixMe[method-unbinding]\n const scripts = Array.prototype.slice.call(\n document.getElementsByTagName(\"script\")\n );\n\n if (reverse) {\n scripts.reverse();\n }\n\n for (const script of scripts) {\n if (!script.src) {\n continue;\n }\n\n const src = script.src.replace(/^https?:\\/\\//, \"\").split(\"?\")[0];\n\n if (src === url) {\n return script;\n }\n }\n },\n [path]\n );\n}\n\nexport function isLocalStorageEnabled(): boolean {\n return inlineMemoize(isLocalStorageEnabled, () => {\n try {\n if (typeof window === \"undefined\") {\n return false;\n }\n\n if (window.localStorage) {\n const value = Math.random().toString();\n window.localStorage.setItem(\"__test__localStorage__\", value);\n const result = window.localStorage.getItem(\"__test__localStorage__\");\n window.localStorage.removeItem(\"__test__localStorage__\");\n if (value === result) {\n return true;\n }\n }\n } catch (err) {\n // pass\n }\n return false;\n });\n}\n\nexport function getBrowserLocales(): $ReadOnlyArray<{|\n country?: string,\n lang: string,\n|}> {\n const nav = window.navigator;\n\n const locales = nav.languages ? [...nav.languages] : [];\n\n if (nav.language) {\n locales.push(nav.language);\n }\n\n if (nav.userLanguage) {\n locales.push(nav.userLanguage);\n }\n\n return locales\n .map((locale) => {\n if (locale && locale.match(/^[a-z]{2}[-_][A-Z]{2}$/)) {\n const [lang, country] = locale.split(/[-_]/);\n return { country, lang };\n }\n\n if (locale && locale.match(/^[a-z]{2}$/)) {\n return { lang: locale };\n }\n\n return null;\n })\n .filter(Boolean);\n}\n\nexport function appendChild(container: HTMLElement, child: HTMLElement | Text) {\n container.appendChild(child);\n}\n\nexport function getElementSafe(\n id: ElementRefType,\n doc: Document | HTMLElement = document\n): ?HTMLElement {\n if (isElement(id)) {\n // $FlowFixMe\n return id;\n }\n\n if (typeof id === \"string\") {\n return doc.querySelector(id);\n }\n}\n\nexport function getElement(\n id: ElementRefType,\n doc: Document | HTMLElement = document\n): HTMLElement {\n const element = getElementSafe(id, doc);\n\n if (element) {\n return element;\n }\n\n throw new Error(`Can not find element: ${stringify(id)}`);\n}\n\nexport function elementReady(id: ElementRefType): ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n const name = stringify(id);\n let el = getElementSafe(id);\n\n if (el) {\n return resolve(el);\n }\n\n if (isDocumentReady()) {\n return reject(\n new Error(`Document is ready and element ${name} does not exist`)\n );\n }\n\n const interval = setInterval(() => {\n el = getElementSafe(id);\n\n if (el) {\n resolve(el);\n clearInterval(interval);\n return;\n }\n\n if (isDocumentReady()) {\n clearInterval(interval);\n return reject(\n new Error(`Document is ready and element ${name} does not exist`)\n );\n }\n }, 10);\n });\n}\n\n// eslint-disable-next-line unicorn/custom-error-definition\nexport class PopupOpenError extends ExtendableError {}\n\ntype PopupOptions = {|\n name?: string,\n width?: number,\n height?: number,\n top?: number,\n left?: number,\n status?: 0 | 1,\n resizable?: 0 | 1,\n toolbar?: 0 | 1,\n menubar?: 0 | 1,\n scrollbars?: 0 | 1,\n closeOnUnload?: 0 | 1,\n|};\n\nexport function popup(\n url: string,\n options?: PopupOptions\n): CrossDomainWindowType {\n // $FlowFixMe\n options = options || {};\n\n const { closeOnUnload = 1, name = \"\", width, height } = options;\n\n let top = 0;\n let left = 0;\n\n if (width) {\n if (window.outerWidth) {\n left = Math.round((window.outerWidth - width) / 2) + window.screenX;\n } else if (window.screen.width) {\n left = Math.round((window.screen.width - width) / 2);\n }\n }\n\n if (height) {\n if (window.outerHeight) {\n top = Math.round((window.outerHeight - height) / 2) + window.screenY;\n } else if (window.screen.height) {\n top = Math.round((window.screen.height - height) / 2);\n }\n }\n\n delete options.closeOnUnload;\n delete options.name;\n\n if (width && height) {\n // $FlowFixMe\n options = {\n top,\n left,\n width,\n height,\n status: 1,\n toolbar: 0,\n menubar: 0,\n resizable: 1,\n scrollbars: 1,\n ...options,\n };\n }\n\n const params = Object.keys(options)\n // eslint-disable-next-line array-callback-return\n .map((key) => {\n // $FlowFixMe\n if (options[key] !== null && options[key] !== undefined) {\n return `${key}=${stringify(options[key])}`;\n }\n })\n .filter(Boolean)\n .join(\",\");\n\n let win;\n\n try {\n win = window.open(url, name, params);\n } catch (err) {\n throw new PopupOpenError(\n `Can not open popup window - ${err.stack || err.message}`\n );\n }\n\n if (isWindowClosed(win)) {\n const err = new PopupOpenError(`Can not open popup window - blocked`);\n throw err;\n }\n\n if (closeOnUnload) {\n window.addEventListener(\"unload\", () => win.close());\n }\n\n return win;\n}\n\nexport function writeToWindow(win: SameDomainWindowType, html: string) {\n try {\n win.document.open();\n win.document.write(html);\n win.document.close();\n } catch (err) {\n try {\n win.location = `javascript: document.open(); document.write(${JSON.stringify(\n html\n )}); document.close();`;\n } catch (err2) {\n // pass\n }\n }\n}\n\nexport function writeElementToWindow(\n win: SameDomainWindowType,\n el: HTMLElement\n) {\n const tag = el.tagName.toLowerCase();\n\n if (tag !== \"html\") {\n throw new Error(`Expected element to be html, got ${tag}`);\n }\n\n const documentElement = win.document.documentElement;\n\n for (const child of arrayFrom(documentElement.children)) {\n documentElement.removeChild(child);\n }\n\n for (const child of arrayFrom(el.children)) {\n documentElement.appendChild(child);\n }\n}\n\nexport function setStyle(\n el: HTMLElement,\n styleText: string,\n doc: Document = window.document\n) {\n // $FlowFixMe\n if (el.styleSheet) {\n // $FlowFixMe\n el.styleSheet.cssText = styleText;\n } else {\n el.appendChild(doc.createTextNode(styleText));\n }\n}\n\nexport type ElementOptionsType = {|\n style?: { [string]: string },\n id?: string,\n class?: ?$ReadOnlyArray,\n attributes?: { [string]: string },\n styleSheet?: ?string,\n html?: ?string,\n|};\n\nlet awaitFrameLoadPromises: WeakMap<\n HTMLIFrameElement,\n ZalgoPromise\n>;\n\nexport function awaitFrameLoad(\n frame: HTMLIFrameElement\n): ZalgoPromise {\n awaitFrameLoadPromises = awaitFrameLoadPromises || new WeakMap();\n\n if (awaitFrameLoadPromises.has(frame)) {\n const promise = awaitFrameLoadPromises.get(frame);\n if (promise) {\n return promise;\n }\n }\n\n const promise = new ZalgoPromise((resolve, reject) => {\n frame.addEventListener(\"load\", () => {\n linkFrameWindow(frame);\n resolve(frame);\n });\n\n frame.addEventListener(\"error\", (err: Event) => {\n if (frame.contentWindow) {\n resolve(frame);\n } else {\n reject(err);\n }\n });\n });\n\n awaitFrameLoadPromises.set(frame, promise);\n\n return promise;\n}\n\nexport function awaitFrameWindow(\n frame: HTMLIFrameElement\n): ZalgoPromise {\n return awaitFrameLoad(frame).then((loadedFrame) => {\n if (!loadedFrame.contentWindow) {\n throw new Error(`Could not find window in iframe`);\n }\n\n return loadedFrame.contentWindow;\n });\n}\n\nconst getDefaultCreateElementOptions = (): ElementOptionsType => {\n // $FlowFixMe\n return {};\n};\n\nexport function createElement(\n tag: string = \"div\",\n options: ElementOptionsType = getDefaultCreateElementOptions(),\n container: ?HTMLElement\n): HTMLElement {\n tag = tag.toLowerCase();\n const element = document.createElement(tag);\n\n if (options.style) {\n extend(element.style, options.style);\n }\n\n if (options.class) {\n element.className = options.class.join(\" \");\n }\n\n if (options.id) {\n element.setAttribute(\"id\", options.id);\n }\n\n if (options.attributes) {\n for (const key of Object.keys(options.attributes)) {\n element.setAttribute(key, options.attributes[key]);\n }\n }\n\n if (options.styleSheet) {\n setStyle(element, options.styleSheet);\n }\n\n if (container) {\n appendChild(container, element);\n }\n\n if (options.html) {\n if (tag === \"iframe\") {\n // $FlowFixMe\n if (!container || !element.contentWindow) {\n throw new Error(\n `Iframe html can not be written unless container provided and iframe in DOM`\n );\n }\n\n // $FlowFixMe\n writeToWindow(element.contentWindow, options.html);\n } else {\n element.innerHTML = options.html;\n }\n }\n\n return element;\n}\n\ntype StringMap = {|\n [string]: string,\n|};\n\nexport type IframeElementOptionsType = {|\n style?: StringMap,\n class?: ?$ReadOnlyArray,\n attributes?: StringMap,\n styleSheet?: ?string,\n html?: ?string,\n url?: ?string,\n|};\n\nconst getDefaultIframeOptions = (): IframeElementOptionsType => {\n // $FlowFixMe\n return {};\n};\n\nconst getDefaultStringMap = (): StringMap => {\n // $FlowFixMe\n return {};\n};\n\nexport function iframe(\n options: IframeElementOptionsType = getDefaultIframeOptions(),\n container: ?HTMLElement\n): HTMLIFrameElement {\n const attributes = options.attributes || getDefaultStringMap();\n const style = options.style || getDefaultStringMap();\n\n // $FlowFixMe\n const newAttributes = {\n allowTransparency: \"true\",\n ...attributes,\n };\n\n // $FlowFixMe\n const newStyle = {\n backgroundColor: \"transparent\",\n border: \"none\",\n ...style,\n };\n\n const frame = createElement(\"iframe\", {\n attributes: newAttributes,\n style: newStyle,\n html: options.html,\n class: options.class,\n });\n\n const isIE = window.navigator.userAgent.match(/MSIE|Edge/i);\n\n if (!frame.hasAttribute(\"id\")) {\n frame.setAttribute(\"id\", uniqueID());\n }\n\n // $FlowFixMe\n awaitFrameLoad(frame);\n\n if (container) {\n const el = getElement(container);\n el.appendChild(frame);\n }\n\n if (options.url || isIE) {\n frame.setAttribute(\"src\", options.url || \"about:blank\");\n }\n\n // $FlowFixMe\n return frame;\n}\n\nexport function addEventListener(\n obj: HTMLElement,\n event: string,\n handler: (event: Event) => void\n): CancelableType {\n obj.addEventListener(event, handler);\n return {\n cancel() {\n obj.removeEventListener(event, handler);\n },\n };\n}\n\nexport function bindEvents(\n element: HTMLElement,\n eventNames: $ReadOnlyArray,\n handler: (event: Event) => void\n): CancelableType {\n handler = once(handler);\n\n for (const eventName of eventNames) {\n element.addEventListener(eventName, handler);\n }\n\n return {\n cancel: once(() => {\n for (const eventName of eventNames) {\n element.removeEventListener(eventName, handler);\n }\n }),\n };\n}\n\nconst VENDOR_PREFIXES = [\"webkit\", \"moz\", \"ms\", \"o\"];\n\nexport function setVendorCSS(\n element: HTMLElement,\n name: string,\n value: string\n) {\n // $FlowFixMe\n element.style[name] = value;\n\n const capitalizedName = capitalizeFirstLetter(name);\n\n for (const prefix of VENDOR_PREFIXES) {\n // $FlowFixMe\n element.style[`${prefix}${capitalizedName}`] = value;\n }\n}\n\nconst ANIMATION_START_EVENTS = [\n \"animationstart\",\n \"webkitAnimationStart\",\n \"oAnimationStart\",\n \"MSAnimationStart\",\n];\nconst ANIMATION_END_EVENTS = [\n \"animationend\",\n \"webkitAnimationEnd\",\n \"oAnimationEnd\",\n \"MSAnimationEnd\",\n];\n\nexport function animate(\n element: ElementRefType,\n name: string,\n clean: (Function) => void,\n timeout: number = 1000\n): ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n const el = getElement(element);\n\n if (!el) {\n return resolve();\n }\n\n let hasStarted = false;\n\n // eslint-disable-next-line prefer-const\n let startTimeout;\n let endTimeout;\n // eslint-disable-next-line prefer-const\n let startEvent;\n // eslint-disable-next-line prefer-const\n let endEvent;\n\n function cleanUp() {\n clearTimeout(startTimeout);\n clearTimeout(endTimeout);\n startEvent.cancel();\n endEvent.cancel();\n }\n\n startEvent = bindEvents(el, ANIMATION_START_EVENTS, (event) => {\n // $FlowFixMe\n if (event.target !== el || event.animationName !== name) {\n return;\n }\n\n clearTimeout(startTimeout);\n\n event.stopPropagation();\n\n startEvent.cancel();\n hasStarted = true;\n\n endTimeout = setTimeout(() => {\n cleanUp();\n resolve();\n }, timeout);\n });\n\n endEvent = bindEvents(el, ANIMATION_END_EVENTS, (event) => {\n // $FlowFixMe\n if (event.target !== el || event.animationName !== name) {\n return;\n }\n\n cleanUp();\n\n if (\n // $FlowFixMe\n typeof event.animationName === \"string\" &&\n event.animationName !== name\n ) {\n return reject(\n `Expected animation name to be ${name}, found ${event.animationName}`\n );\n }\n\n return resolve();\n });\n\n setVendorCSS(el, \"animationName\", name);\n\n startTimeout = setTimeout(() => {\n if (!hasStarted) {\n cleanUp();\n return resolve();\n }\n }, 200);\n\n if (clean) {\n clean(cleanUp);\n }\n });\n}\n\nexport function makeElementVisible(element: HTMLElement) {\n element.style.setProperty(\"visibility\", \"\");\n}\n\nexport function makeElementInvisible(element: HTMLElement) {\n element.style.setProperty(\"visibility\", \"hidden\", \"important\");\n}\n\nexport function showElement(element: HTMLElement) {\n element.style.setProperty(\"display\", \"\");\n}\n\nexport function hideElement(element: HTMLElement) {\n element.style.setProperty(\"display\", \"none\", \"important\");\n}\n\nexport function destroyElement(element: HTMLElement) {\n if (element && element.parentNode) {\n element.parentNode.removeChild(element);\n }\n}\n\nexport function showAndAnimate(\n element: HTMLElement,\n name: string,\n clean: (Function) => void\n): ZalgoPromise {\n const animation = animate(element, name, clean);\n showElement(element);\n return animation;\n}\n\nexport function animateAndHide(\n element: HTMLElement,\n name: string,\n clean: (Function) => void\n): ZalgoPromise {\n return animate(element, name, clean).then(() => {\n hideElement(element);\n });\n}\n\nexport function addClass(element: HTMLElement, name: string) {\n element.classList.add(name);\n}\n\nexport function removeClass(element: HTMLElement, name: string) {\n element.classList.remove(name);\n}\n\nexport function isElementClosed(el: HTMLElement): boolean {\n if (\n !el ||\n !el.parentNode ||\n !el.ownerDocument ||\n !el.ownerDocument.documentElement ||\n !el.ownerDocument.documentElement.contains(el)\n ) {\n return true;\n }\n return false;\n}\n\nexport function watchElementForClose(\n element: HTMLElement,\n handler: () => mixed\n): CancelableType {\n handler = once(handler);\n\n let cancelled = false;\n const mutationObservers = [];\n // eslint-disable-next-line prefer-const\n let interval;\n // eslint-disable-next-line prefer-const\n let sacrificialFrame;\n let sacrificialFrameWin;\n\n const cancel = () => {\n cancelled = true;\n for (const observer of mutationObservers) {\n observer.disconnect();\n }\n if (interval) {\n interval.cancel();\n }\n if (sacrificialFrameWin) {\n // eslint-disable-next-line no-use-before-define\n sacrificialFrameWin.removeEventListener(\"unload\", elementClosed);\n }\n if (sacrificialFrame) {\n destroyElement(sacrificialFrame);\n }\n };\n\n const elementClosed = () => {\n if (!cancelled) {\n handler();\n cancel();\n }\n };\n\n if (isElementClosed(element)) {\n elementClosed();\n return { cancel };\n }\n\n // Strategy 1: Mutation observer\n\n if (window.MutationObserver) {\n let mutationElement = element.parentElement;\n while (mutationElement) {\n const mutationObserver = new window.MutationObserver(() => {\n if (isElementClosed(element)) {\n elementClosed();\n }\n });\n\n mutationObserver.observe(mutationElement, { childList: true });\n mutationObservers.push(mutationObserver);\n mutationElement = mutationElement.parentElement;\n }\n }\n\n // Strategy 2: Sacrificial iframe\n\n sacrificialFrame = document.createElement(\"iframe\");\n sacrificialFrame.setAttribute(\"name\", `__detect_close_${uniqueID()}__`);\n sacrificialFrame.style.display = \"none\";\n awaitFrameWindow(sacrificialFrame).then((frameWin) => {\n sacrificialFrameWin = assertSameDomain(frameWin);\n sacrificialFrameWin.addEventListener(\"unload\", elementClosed);\n });\n element.appendChild(sacrificialFrame);\n\n // Strategy 3: Poller\n\n const check = () => {\n if (isElementClosed(element)) {\n elementClosed();\n }\n };\n interval = safeInterval(check, 1000);\n\n return { cancel };\n}\n\nexport function fixScripts(el: HTMLElement, doc: Document = window.document) {\n for (const script of querySelectorAll(\"script\", el)) {\n const parentNode = script.parentNode;\n\n if (!parentNode) {\n continue;\n }\n\n const newScript = doc.createElement(\"script\");\n newScript.text = script.textContent;\n parentNode.replaceChild(newScript, script);\n }\n}\n\ntype OnResizeOptions = {|\n width?: boolean,\n height?: boolean,\n interval?: number,\n win?: SameDomainWindowType,\n|};\n\nexport function onResize(\n el: HTMLElement,\n handler: ({| width: number, height: number |}) => void,\n {\n width = true,\n height = true,\n interval = 100,\n win = window,\n }: OnResizeOptions = {}\n): {| cancel: () => void |} {\n let currentWidth = el.offsetWidth;\n let currentHeight = el.offsetHeight;\n let canceled = false;\n\n handler({ width: currentWidth, height: currentHeight });\n\n const check = () => {\n if (canceled || !isElementVisible(el)) {\n return;\n }\n\n const newWidth = el.offsetWidth;\n const newHeight = el.offsetHeight;\n\n if (\n (width && newWidth !== currentWidth) ||\n (height && newHeight !== currentHeight)\n ) {\n handler({ width: newWidth, height: newHeight });\n }\n\n currentWidth = newWidth;\n currentHeight = newHeight;\n };\n\n let observer;\n let timeout;\n\n win.addEventListener(\"resize\", check);\n\n if (typeof win.ResizeObserver !== \"undefined\") {\n observer = new win.ResizeObserver(check);\n observer.observe(el);\n timeout = safeInterval(check, interval * 10);\n } else if (typeof win.MutationObserver !== \"undefined\") {\n observer = new win.MutationObserver(check);\n observer.observe(el, {\n attributes: true,\n childList: true,\n subtree: true,\n characterData: false,\n });\n timeout = safeInterval(check, interval * 10);\n } else {\n timeout = safeInterval(check, interval);\n }\n\n return {\n cancel: () => {\n canceled = true;\n observer.disconnect();\n window.removeEventListener(\"resize\", check);\n timeout.cancel();\n },\n };\n}\n\nexport function getResourceLoadTime(url: string): ?number {\n const performance = getPerformance();\n\n if (!performance) {\n return;\n }\n\n // $FlowFixMe[method-unbinding]\n if (typeof performance.getEntries !== \"function\") {\n return;\n }\n\n const entries = performance.getEntries();\n\n for (let i = 0; i < entries.length; i++) {\n const entry = entries[i];\n\n if (\n entry &&\n entry.name &&\n entry.name.indexOf(url) === 0 &&\n typeof entry.duration === \"number\"\n ) {\n return Math.floor(entry.duration);\n }\n }\n}\n\nexport function isShadowElement(element: Node): boolean {\n while (element.parentNode) {\n element = element.parentNode;\n }\n\n return element.toString() === \"[object ShadowRoot]\";\n}\n\nexport function getShadowRoot(element: Node): ?Node {\n while (element.parentNode) {\n element = element.parentNode;\n }\n\n if (isShadowElement(element)) {\n return element;\n }\n}\n\nexport function getShadowHost(element: Node): ?HTMLElement {\n const shadowRoot = getShadowRoot(element);\n\n // $FlowFixMe\n if (shadowRoot && shadowRoot.host) {\n // $FlowFixMe\n return shadowRoot.host;\n }\n}\n\nexport function insertShadowSlot(element: HTMLElement): HTMLElement {\n const shadowHost = getShadowHost(element);\n\n if (!shadowHost) {\n throw new Error(`Element is not in shadow dom`);\n }\n\n const slotName = `shadow-slot-${uniqueID()}`;\n const slot = document.createElement(\"slot\");\n slot.setAttribute(\"name\", slotName);\n element.appendChild(slot);\n\n const slotProvider = document.createElement(\"div\");\n slotProvider.setAttribute(\"slot\", slotName);\n shadowHost.appendChild(slotProvider);\n\n if (isShadowElement(shadowHost)) {\n return insertShadowSlot(slotProvider);\n }\n\n return slotProvider;\n}\n\nexport function preventClickFocus(el: HTMLElement) {\n const onFocus = (event: Event) => {\n el.removeEventListener(\"focus\", onFocus);\n event.preventDefault();\n el.blur();\n return false;\n };\n\n el.addEventListener(\"mousedown\", () => {\n el.addEventListener(\"focus\", onFocus);\n setTimeout(() => {\n el.removeEventListener(\"focus\", onFocus);\n }, 1);\n });\n}\n\nexport function getStackTrace(): string {\n try {\n throw new Error(\"_\");\n } catch (err) {\n return err.stack || \"\";\n }\n}\n\nfunction inferCurrentScript(): ?HTMLScriptElement {\n try {\n const stack = getStackTrace();\n const stackDetails = /.*at [^(]*\\((.*):(.+):(.+)\\)$/gi.exec(stack);\n const scriptLocation = stackDetails && stackDetails[1];\n\n if (!scriptLocation) {\n return;\n }\n\n // $FlowFixMe[method-unbinding]\n for (const script of Array.prototype.slice\n .call(document.getElementsByTagName(\"script\"))\n .reverse()) {\n if (script.src && script.src === scriptLocation) {\n return script;\n }\n }\n } catch (err) {\n // pass\n }\n}\n\nlet currentScript =\n // eslint-disable-next-line compat/compat\n typeof document !== \"undefined\" ? document.currentScript : null;\n\ntype GetCurrentScript = () => HTMLScriptElement;\n\nexport const getCurrentScript: GetCurrentScript = memoize(() => {\n if (currentScript) {\n return currentScript;\n }\n\n currentScript = inferCurrentScript();\n\n if (currentScript) {\n return currentScript;\n }\n\n throw new Error(\"Can not determine current script\");\n});\n\nconst currentUID = uniqueID();\n\ntype GetCurrentScriptUID = () => string;\n\nexport const getCurrentScriptUID: GetCurrentScriptUID = memoize(() => {\n let script;\n\n try {\n script = getCurrentScript();\n } catch (err) {\n return currentUID;\n }\n\n let uid = script.getAttribute(ATTRIBUTES.UID);\n\n if (uid && typeof uid === \"string\") {\n return uid;\n }\n\n uid = script.getAttribute(`${ATTRIBUTES.UID}-auto`);\n\n if (uid && typeof uid === \"string\") {\n return uid;\n }\n\n if (script.src) {\n const { src, dataset } = script;\n const stringToHash = JSON.stringify({ src, dataset });\n const hashedString = strHashStr(stringToHash);\n const hashResult = hashedString.slice(\n hashedString.length - UID_HASH_LENGTH\n );\n\n uid = `uid_${hashResult}`;\n } else {\n uid = uniqueID();\n }\n\n script.setAttribute(`${ATTRIBUTES.UID}-auto`, uid);\n\n return uid;\n});\n\ntype SubmitFormOptions = {|\n url: string,\n target: string,\n body?: {| [string]: string | boolean |},\n method?: string,\n|};\n\nexport function submitForm({\n url,\n target,\n body,\n method = \"post\",\n}: SubmitFormOptions) {\n const form = document.createElement(\"form\");\n form.setAttribute(\"target\", target);\n form.setAttribute(\"method\", method);\n form.setAttribute(\"action\", url);\n form.style.display = \"none\";\n\n if (body) {\n for (const key of Object.keys(body)) {\n const input = document.createElement(\"input\");\n input.setAttribute(\"name\", key);\n input.setAttribute(\"value\", body[key]?.toString());\n form.appendChild(input);\n }\n }\n\n getBody().appendChild(form);\n form.submit();\n getBody().removeChild(form);\n}\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","/* @flow */\n\nexport const KEY_CODES = {\n ENTER: 13,\n SPACE: 32,\n};\n\nexport const ATTRIBUTES = {\n UID: \"data-uid\",\n};\n\nexport const UID_HASH_LENGTH = 30;\n","/* @flow */\n\nimport { uniqueID, getGlobal, inlineMemoize } from \"./util\";\nimport { isLocalStorageEnabled } from \"./dom\";\n\ntype Getter = (handler: (Object) => T) => T;\n\nexport type Storage = {|\n getState: Getter<*>,\n getID: () => string,\n isStateFresh: () => boolean,\n getSessionState: Getter<*>,\n getSessionID: () => string,\n|};\n\nconst DEFAULT_SESSION_STORAGE = 20 * 60 * 1000;\n\nexport function getStorage({\n name,\n lifetime = DEFAULT_SESSION_STORAGE,\n}: {|\n name: string,\n lifetime?: number,\n|}): Storage {\n return inlineMemoize(\n getStorage,\n () => {\n const STORAGE_KEY = `__${name}_storage__`;\n const newStateID = uniqueID();\n\n let accessedStorage;\n\n function getState(handler: (storage: Object) => T): T {\n const localStorageEnabled = isLocalStorageEnabled();\n let storage;\n\n if (accessedStorage) {\n storage = accessedStorage;\n }\n\n if (!storage && localStorageEnabled) {\n const rawStorage = window.localStorage.getItem(STORAGE_KEY);\n\n if (rawStorage) {\n storage = JSON.parse(rawStorage);\n }\n }\n\n if (!storage) {\n storage = getGlobal()[STORAGE_KEY];\n }\n\n if (!storage) {\n storage = {\n id: newStateID,\n };\n }\n\n if (!storage.id) {\n storage.id = newStateID;\n }\n\n accessedStorage = storage;\n\n const result = handler(storage);\n\n if (localStorageEnabled) {\n window.localStorage.setItem(STORAGE_KEY, JSON.stringify(storage));\n } else {\n getGlobal()[STORAGE_KEY] = storage;\n }\n\n accessedStorage = null;\n\n return result;\n }\n\n function getID(): string {\n return getState((storage) => storage.id);\n }\n\n function isStateFresh(): boolean {\n return getID() === newStateID;\n }\n\n function getSession(handler: (state: Object) => T): T {\n return getState((storage) => {\n let session = storage.__session__;\n const now = Date.now();\n\n if (session && now - session.created > lifetime) {\n session = null;\n }\n\n if (!session) {\n session = {\n guid: uniqueID(),\n created: now,\n };\n }\n\n storage.__session__ = session;\n\n return handler(session);\n });\n }\n\n function getSessionState(handler: (state: Object) => T): T {\n return getSession((session) => {\n session.state = session.state || {};\n return handler(session.state);\n });\n }\n\n function getSessionID(): string {\n return getSession((session) => session.guid);\n }\n\n return {\n getState,\n getID,\n isStateFresh,\n getSessionState,\n getSessionID,\n };\n },\n [{ name, lifetime }]\n );\n}\n","/* @flow */\n\nimport { noop } from \"./util\";\nimport { getStorage } from \"./storage\";\n\nfunction getBelterExperimentStorage(): Object {\n return getStorage({ name: \"belter_experiment\" });\n}\n\nfunction isEventUnique(name: string): boolean {\n return getBelterExperimentStorage().getSessionState((state) => {\n state.loggedBeacons = state.loggedBeacons || [];\n\n if (state.loggedBeacons.indexOf(name) === -1) {\n state.loggedBeacons.push(name);\n return true;\n }\n\n return false;\n });\n}\n\ntype Payload = {\n [string]: ?(string | boolean),\n};\n\nexport type Experiment = {|\n isEnabled: () => boolean,\n isDisabled: () => boolean,\n getTreatment: () => string,\n log: (string, payload?: Payload) => Experiment,\n logStart: (payload?: Payload) => Experiment,\n logComplete: (payload?: Payload) => Experiment,\n|};\n\nfunction getRandomInteger(range: number): number {\n return Math.floor(Math.random() * range);\n}\n\nfunction getThrottlePercentile(name: string): number {\n return getBelterExperimentStorage().getState((state) => {\n state.throttlePercentiles = state.throttlePercentiles || {};\n state.throttlePercentiles[name] =\n state.throttlePercentiles[name] || getRandomInteger(100);\n return state.throttlePercentiles[name];\n });\n}\n\nconst THROTTLE_GROUP = {\n TEST: \"test\",\n CONTROL: \"control\",\n THROTTLE: \"throttle\",\n};\n\ntype ExperimentOptions = {|\n name: string,\n sample?: number,\n logTreatment?: ({|\n name: string,\n treatment: string,\n payload: Payload,\n throttle: number,\n |}) => void,\n logCheckpoint?: ({|\n name: string,\n treatment: string,\n checkpoint: string,\n payload: Payload,\n throttle: number,\n |}) => void,\n sticky?: boolean,\n|};\n\nexport function experiment({\n name,\n sample = 50,\n logTreatment = noop,\n logCheckpoint = noop,\n sticky = true,\n}: ExperimentOptions): Experiment {\n const throttle = sticky ? getThrottlePercentile(name) : getRandomInteger(100);\n\n let group;\n\n if (throttle < sample && !__TEST__) {\n group = THROTTLE_GROUP.TEST;\n } else if (sample >= 50 || (sample <= throttle && throttle < sample * 2)) {\n group = THROTTLE_GROUP.CONTROL;\n } else {\n group = THROTTLE_GROUP.THROTTLE;\n }\n\n const treatment = `${name}_${group}`;\n\n let started = false;\n let forced = false;\n\n try {\n if (window.localStorage && window.localStorage.getItem(name)) {\n forced = true;\n }\n } catch (err) {\n // pass\n }\n\n const exp = {\n isEnabled(): boolean {\n return group === THROTTLE_GROUP.TEST || forced;\n },\n\n isDisabled(): boolean {\n return group !== THROTTLE_GROUP.TEST && !forced;\n },\n\n getTreatment(): string {\n return treatment;\n },\n\n log(checkpoint: string, payload?: Payload = {}): Experiment {\n if (!started) {\n return exp;\n }\n\n if (isEventUnique(`${treatment}_${JSON.stringify(payload)}`)) {\n logTreatment({ name, treatment, payload, throttle });\n }\n\n if (\n isEventUnique(`${treatment}_${checkpoint}_${JSON.stringify(payload)}`)\n ) {\n logCheckpoint({ name, treatment, checkpoint, payload, throttle });\n }\n\n return exp;\n },\n\n logStart(payload?: Payload = {}): Experiment {\n started = true;\n return exp.log(`start`, payload);\n },\n\n logComplete(payload?: Payload = {}): Experiment {\n return exp.log(`complete`, payload);\n },\n };\n\n return exp;\n}\n","/* @flow */\n\nimport { ZalgoPromise } from \"@krakenjs/zalgo-promise/src\";\nimport { type SameDomainWindowType } from \"@krakenjs/cross-domain-utils/src\";\n\ntype RequestOptionsType = {|\n url: string,\n method?: string,\n headers?: { [key: string]: string },\n json?: $ReadOnlyArray | Object,\n data?: { [key: string]: string },\n body?: string,\n win?: SameDomainWindowType,\n timeout?: number,\n|};\n\ntype ResponseType = {|\n status: number,\n headers: { [string]: string },\n body: Object,\n|};\n\nconst HEADERS = {\n CONTENT_TYPE: \"content-type\",\n ACCEPT: \"accept\",\n};\n\nconst headerBuilders = [];\n\nfunction parseHeaders(rawHeaders: string = \"\"): { [string]: string } {\n const result = {};\n for (const line of rawHeaders.trim().split(\"\\n\")) {\n const [key, ...values] = line.split(\":\");\n result[key.toLowerCase()] = values.join(\":\").trim();\n }\n return result;\n}\n\nexport function request({\n url,\n method = \"get\",\n headers = {},\n json,\n data,\n body,\n win = window,\n timeout = 0,\n}: RequestOptionsType): ZalgoPromise {\n return new ZalgoPromise((resolve, reject) => {\n if ((json && data) || (json && body) || (data && json)) {\n throw new Error(\n `Only options.json or options.data or options.body should be passed`\n );\n }\n\n const normalizedHeaders = {};\n\n for (const key of Object.keys(headers)) {\n normalizedHeaders[key.toLowerCase()] = headers[key];\n }\n\n if (json) {\n normalizedHeaders[HEADERS.CONTENT_TYPE] =\n normalizedHeaders[HEADERS.CONTENT_TYPE] || \"application/json\";\n } else if (data || body) {\n normalizedHeaders[HEADERS.CONTENT_TYPE] =\n normalizedHeaders[HEADERS.CONTENT_TYPE] ||\n \"application/x-www-form-urlencoded; charset=utf-8\";\n }\n\n normalizedHeaders[HEADERS.ACCEPT] =\n normalizedHeaders[HEADERS.ACCEPT] || \"application/json\";\n\n for (const headerBuilder of headerBuilders) {\n const builtHeaders = headerBuilder();\n\n for (const key of Object.keys(builtHeaders)) {\n normalizedHeaders[key.toLowerCase()] = builtHeaders[key];\n }\n }\n\n const xhr = new win.XMLHttpRequest();\n\n xhr.addEventListener(\n \"load\",\n function xhrLoad(): void {\n const responseHeaders = parseHeaders(this.getAllResponseHeaders());\n\n if (!this.status) {\n return reject(\n new Error(\n `Request to ${method.toLowerCase()} ${url} failed: no response status code.`\n )\n );\n }\n\n const contentType = responseHeaders[\"content-type\"];\n const isJSON =\n contentType &&\n (contentType.indexOf(\"application/json\") === 0 ||\n contentType.indexOf(\"text/json\") === 0);\n let responseBody = this.responseText;\n\n try {\n responseBody = JSON.parse(responseBody);\n } catch (err) {\n if (isJSON) {\n return reject(new Error(`Invalid json: ${this.responseText}.`));\n }\n }\n\n const res = {\n status: this.status,\n headers: responseHeaders,\n body: responseBody,\n };\n\n return resolve(res);\n },\n false\n );\n\n xhr.addEventListener(\n \"error\",\n (evt) => {\n reject(\n new Error(\n `Request to ${method.toLowerCase()} ${url} failed: ${evt.toString()}.`\n )\n );\n },\n false\n );\n\n xhr.open(method, url, true);\n\n for (const key in normalizedHeaders) {\n if (normalizedHeaders.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, normalizedHeaders[key]);\n }\n }\n\n if (json) {\n body = JSON.stringify(json);\n } else if (data) {\n body = Object.keys(data)\n .map((key) => {\n return `${encodeURIComponent(key)}=${\n data ? encodeURIComponent(data[key]) : \"\"\n }`;\n })\n .join(\"&\");\n }\n\n xhr.timeout = timeout;\n xhr.ontimeout = function xhrTimeout() {\n reject(\n new Error(`Request to ${method.toLowerCase()} ${url} has timed out`)\n );\n };\n\n xhr.send(body);\n });\n}\n\nexport function addHeaderBuilder(method: () => { [string]: string }) {\n headerBuilders.push(method);\n}\n","/* @flow */\n\nexport function isPromise(item : mixed) : boolean {\n try {\n if (!item) {\n return false;\n }\n\n if (typeof Promise !== 'undefined' && item instanceof Promise) {\n return true;\n }\n\n if (typeof window !== 'undefined' && typeof window.Window === 'function' && item instanceof window.Window) {\n return false;\n }\n\n if (typeof window !== 'undefined' && typeof window.constructor === 'function' && item instanceof window.constructor) {\n return false;\n }\n\n const toString = ({}).toString;\n\n if (toString) {\n const name = toString.call(item);\n\n if (name === '[object Window]' || name === '[object global]' || name === '[object DOMWindow]') {\n return false;\n }\n }\n\n if (typeof item.then === 'function') {\n return true;\n }\n } catch (err) {\n return false;\n }\n\n return false;\n}\n","/* @flow */\n\nimport type { ZalgoPromise } from './promise';\n\nconst dispatchedErrors = [];\nconst possiblyUnhandledPromiseHandlers : Array<(mixed, promise? : ZalgoPromise) => void> = [];\n\nexport function dispatchPossiblyUnhandledError(err : mixed, promise : ZalgoPromise) {\n\n if (dispatchedErrors.indexOf(err) !== -1) {\n return;\n }\n\n dispatchedErrors.push(err);\n\n setTimeout(() => {\n if (__DEBUG__) {\n // $FlowFixMe\n throw new Error(`${ err.stack || err.toString() }\\n\\nFrom promise:\\n\\n${ promise.stack }`);\n }\n\n throw err;\n }, 1);\n\n for (let j = 0; j < possiblyUnhandledPromiseHandlers.length; j++) {\n // $FlowFixMe\n possiblyUnhandledPromiseHandlers[j](err, promise);\n }\n}\n\nexport function onPossiblyUnhandledException(handler : (mixed, promise? : ZalgoPromise) => void) : {| cancel : () => void |} {\n possiblyUnhandledPromiseHandlers.push(handler);\n\n return {\n cancel() {\n possiblyUnhandledPromiseHandlers.splice(possiblyUnhandledPromiseHandlers.indexOf(handler), 1);\n }\n };\n}\n","/* @flow */\n\nimport type { ZalgoPromise } from './promise';\n\nlet activeCount = 0;\nlet flushPromise;\n\nfunction flushActive() {\n if (!activeCount && flushPromise) {\n const promise = flushPromise;\n flushPromise = null;\n promise.resolve();\n }\n}\n\nexport function startActive() {\n activeCount += 1;\n}\n\nexport function endActive() {\n activeCount -= 1;\n flushActive();\n}\n\nexport function awaitActive(Zalgo : Class>) : ZalgoPromise { // eslint-disable-line no-undef\n const promise = flushPromise = flushPromise || new Zalgo();\n flushActive();\n return promise;\n}\n","/* @flow */\n/* eslint no-use-before-define: off */\n\nimport { isPromise } from './utils';\nimport { onPossiblyUnhandledException, dispatchPossiblyUnhandledError } from './exceptions';\nimport { startActive, endActive, awaitActive } from './flush';\n\nexport class ZalgoPromise {\n\n resolved : boolean;\n rejected : boolean;\n errorHandled : boolean;\n value : R;\n error : mixed;\n // eslint-disable-next-line flowtype/no-mutable-array\n handlers : Array<{|\n promise : ZalgoPromise<*>,\n onSuccess : void | (result : R) => mixed,\n onError : void | (error : mixed) => mixed\n |}>;\n dispatching : boolean;\n stack : string;\n\n constructor(handler : ?(resolve : (result : R) => void, reject : (error : mixed) => void) => void) {\n\n this.resolved = false;\n this.rejected = false;\n this.errorHandled = false;\n\n this.handlers = [];\n\n if (handler) {\n\n let result;\n let error;\n let resolved = false;\n let rejected = false;\n let isAsync = false;\n\n startActive();\n\n try {\n handler(res => {\n if (isAsync) {\n this.resolve(res);\n } else {\n resolved = true;\n result = res;\n }\n\n }, err => {\n if (isAsync) {\n this.reject(err);\n } else {\n rejected = true;\n error = err;\n }\n });\n\n } catch (err) {\n endActive();\n this.reject(err);\n return;\n }\n\n endActive();\n\n isAsync = true;\n\n if (resolved) {\n // $FlowFixMe\n this.resolve(result);\n } else if (rejected) {\n this.reject(error);\n }\n }\n\n if (__DEBUG__) {\n try {\n throw new Error(`ZalgoPromise`);\n } catch (err) {\n this.stack = err.stack;\n }\n }\n }\n\n resolve(result : R) : ZalgoPromise {\n if (this.resolved || this.rejected) {\n return this;\n }\n\n if (isPromise(result)) {\n throw new Error('Can not resolve promise with another promise');\n }\n\n this.resolved = true;\n this.value = result;\n this.dispatch();\n\n return this;\n }\n\n reject(error : mixed) : ZalgoPromise {\n if (this.resolved || this.rejected) {\n return this;\n }\n\n if (isPromise(error)) {\n throw new Error('Can not reject promise with another promise');\n }\n\n if (!error) {\n // $FlowFixMe\n const err = (error && typeof error.toString === 'function' ? error.toString() : Object.prototype.toString.call(error));\n error = new Error(`Expected reject to be called with Error, got ${ err }`);\n }\n\n this.rejected = true;\n this.error = error;\n\n if (!this.errorHandled) {\n setTimeout(() => {\n if (!this.errorHandled) {\n dispatchPossiblyUnhandledError(error, this);\n }\n }, 1);\n }\n\n this.dispatch();\n\n return this;\n }\n\n asyncReject(error : mixed) : ZalgoPromise {\n this.errorHandled = true;\n this.reject(error);\n return this;\n }\n\n dispatch() {\n\n const { dispatching, resolved, rejected, handlers } = this;\n\n if (dispatching) {\n return;\n }\n\n if (!resolved && !rejected) {\n return;\n }\n\n this.dispatching = true;\n startActive();\n\n const chain = (firstPromise : ZalgoPromise, secondPromise : ZalgoPromise) => {\n return firstPromise.then(res => {\n secondPromise.resolve(res);\n }, err => {\n secondPromise.reject(err);\n });\n };\n\n for (let i = 0; i < handlers.length; i++) {\n\n const { onSuccess, onError, promise } = handlers[i];\n\n let result;\n\n if (resolved) {\n\n try {\n result = onSuccess ? onSuccess(this.value) : this.value;\n } catch (err) {\n promise.reject(err);\n continue;\n }\n\n } else if (rejected) {\n\n if (!onError) {\n promise.reject(this.error);\n continue;\n }\n\n try {\n result = onError(this.error);\n } catch (err) {\n promise.reject(err);\n continue;\n }\n }\n\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n const promiseResult : ZalgoPromise<*> = result;\n\n if (promiseResult.resolved) {\n promise.resolve(promiseResult.value);\n } else {\n promise.reject(promiseResult.error);\n }\n\n promiseResult.errorHandled = true;\n\n } else if (isPromise(result)) {\n\n if (result instanceof ZalgoPromise && (result.resolved || result.rejected)) {\n if (result.resolved) {\n promise.resolve(result.value);\n } else {\n promise.reject(result.error);\n }\n\n } else {\n // $FlowFixMe\n chain(result, promise);\n }\n\n } else {\n\n promise.resolve(result);\n }\n }\n\n handlers.length = 0;\n this.dispatching = false;\n endActive();\n }\n\n then(onSuccess : void | (result : R) => (ZalgoPromise | Y), onError : void | (error : mixed) => (ZalgoPromise | Y)) : ZalgoPromise {\n\n if (onSuccess && typeof onSuccess !== 'function' && !onSuccess.call) {\n throw new Error('Promise.then expected a function for success handler');\n }\n\n if (onError && typeof onError !== 'function' && !onError.call) {\n throw new Error('Promise.then expected a function for error handler');\n }\n\n const promise = new ZalgoPromise();\n\n this.handlers.push({\n promise,\n onSuccess,\n onError\n });\n\n this.errorHandled = true;\n\n this.dispatch();\n\n return promise;\n }\n\n catch(onError : (error : mixed) => ZalgoPromise | Y) : ZalgoPromise {\n // $FlowFixMe incompatible-call\n const resultPromise : ZalgoPromise = this.then(undefined, onError);\n return resultPromise;\n }\n\n finally(onFinally : () => mixed) : ZalgoPromise {\n\n if (onFinally && typeof onFinally !== 'function' && !onFinally.call) {\n throw new Error('Promise.finally expected a function');\n }\n\n return this.then((result) => {\n return ZalgoPromise.try(onFinally)\n .then(() => {\n return result;\n });\n }, (err) => {\n return ZalgoPromise.try(onFinally)\n .then(() => {\n throw err;\n });\n });\n }\n\n timeout(time : number, err : ?Error) : ZalgoPromise {\n\n if (this.resolved || this.rejected) {\n return this;\n }\n\n const timeout = setTimeout(() => {\n\n if (this.resolved || this.rejected) {\n return;\n }\n\n this.reject(err || new Error(`Promise timed out after ${ time }ms`));\n\n }, time);\n\n return this.then(result => {\n clearTimeout(timeout);\n return result;\n });\n }\n\n // $FlowFixMe\n toPromise() : Promise {\n // $FlowFixMe\n if (typeof Promise === 'undefined') {\n throw new TypeError(`Could not find Promise`);\n }\n // $FlowFixMe\n return Promise.resolve(this); // eslint-disable-line compat/compat\n }\n\n lazy() : ZalgoPromise {\n this.errorHandled = true;\n return this;\n }\n\n static resolve(value : ZalgoPromise | Y) : ZalgoPromise {\n\n if (value instanceof ZalgoPromise) {\n // $FlowFixMe incompatible-type-arg\n const result : ZalgoPromise = value;\n return result;\n }\n\n if (isPromise(value)) {\n // $FlowFixMe\n return new ZalgoPromise((resolve, reject) => value.then(resolve, reject));\n }\n\n return new ZalgoPromise().resolve(value);\n }\n\n static reject(error : mixed) : ZalgoPromise {\n return new ZalgoPromise().reject(error);\n }\n\n static asyncReject(error : mixed) : ZalgoPromise {\n return new ZalgoPromise().asyncReject(error);\n }\n\n static all>(promises : X) : ZalgoPromise<$TupleMap(ZalgoPromise | Y) => Y>> { // eslint-disable-line no-undef\n\n const promise = new ZalgoPromise();\n let count = promises.length;\n // eslint-disable-next-line no-undef, unicorn/prefer-spread\n const results = ([] : $TupleMap(ZalgoPromise | Y) => Y>).slice();\n\n if (!count) {\n promise.resolve(results);\n return promise;\n }\n\n const chain = (i : number, firstPromise : ZalgoPromise, secondPromise : ZalgoPromise) => {\n return firstPromise.then(res => {\n results[i] = res;\n count -= 1;\n if (count === 0) {\n promise.resolve(results);\n }\n }, err => {\n secondPromise.reject(err);\n });\n };\n\n for (let i = 0; i < promises.length; i++) {\n const prom = promises[i];\n\n if (prom instanceof ZalgoPromise) {\n if (prom.resolved) {\n results[i] = prom.value;\n count -= 1;\n continue;\n }\n } else if (!isPromise(prom)) {\n results[i] = prom;\n count -= 1;\n continue;\n }\n\n chain(i, ZalgoPromise.resolve(prom), promise);\n }\n\n if (count === 0) {\n promise.resolve(results);\n }\n\n return promise;\n }\n\n static hash(promises : O) : ZalgoPromise<$ObjMap(ZalgoPromise | Y) => Y>> { // eslint-disable-line no-undef\n const result = {};\n const awaitPromises = [];\n\n for (const key in promises) {\n if (promises.hasOwnProperty(key)) {\n const value = promises[key];\n\n if (isPromise(value)) {\n awaitPromises.push(value.then(res => {\n result[key] = res;\n }));\n } else {\n result[key] = value;\n }\n }\n }\n\n return ZalgoPromise.all(awaitPromises).then(() => result);\n }\n\n static map(items : $ReadOnlyArray, method : (T) => (ZalgoPromise | X)) : ZalgoPromise<$ReadOnlyArray> {\n // $FlowFixMe\n return ZalgoPromise.all(items.map(method));\n }\n\n static onPossiblyUnhandledException(handler : (err : mixed) => void) : {| cancel : () => void |} {\n return onPossiblyUnhandledException(handler);\n }\n\n static try>(method : (...args : $ReadOnlyArray) => (ZalgoPromise | Y), context? : C, args? : A) : ZalgoPromise {\n\n if (method && typeof method !== 'function' && !method.call) {\n throw new Error('Promise.try expected a function');\n }\n\n let result : ZalgoPromise | Y;\n\n startActive();\n\n try {\n result = method.apply(context, args || []);\n } catch (err) {\n endActive();\n return ZalgoPromise.reject(err);\n }\n\n endActive();\n\n // $FlowFixMe incompatible-call\n const resultPromise = ZalgoPromise.resolve(result);\n\n return resultPromise;\n }\n\n static delay(delay : number) : ZalgoPromise {\n return new ZalgoPromise(resolve => {\n setTimeout(resolve, delay);\n });\n }\n\n static isPromise(value : mixed) : boolean {\n\n if (value && value instanceof ZalgoPromise) {\n return true;\n }\n\n return isPromise(value);\n }\n\n static flush() : ZalgoPromise {\n return awaitActive(ZalgoPromise);\n }\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=[],e=n.__b,a=n.__r,v=n.diffed,l=n.__c,m=n.unmount;function d(t,u){n.__h&&n.__h(r,t,o||u),o=0;var i=r.__H||(r.__H={__:[],__h:[]});return t>=i.__.length&&i.__.push({__V:c}),i.__[t]}function p(n){return o=1,y(B,n)}function y(n,u,i){var o=d(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):B(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){r.u=!0;var f=r.shouldComponentUpdate;r.shouldComponentUpdate=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return n.__c});if(u.every(function(n){return!n.__N}))return!f||f.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!f||f.call(this,n,t,r))}}return o.__N||o.__}function h(u,i){var o=d(t++,3);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__H.__h.push(o))}function s(u,i){var o=d(t++,4);!n.__s&&z(o.__H,i)&&(o.__=u,o.i=i,r.__h.push(o))}function _(n){return o=5,F(function(){return{current:n}},[])}function A(n,t,r){o=6,s(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function F(n,r){var u=d(t++,7);return z(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function T(n,t){return o=8,F(function(){return n},t)}function q(n){var u=r.context[n.__c],i=d(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function x(t,r){n.useDebugValue&&n.useDebugValue(r?r(t):t)}function P(n){var u=d(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function V(){var n=d(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function b(){for(var t;t=f.shift();)if(t.__P&&t.__H)try{t.__H.__h.forEach(k),t.__H.__h.forEach(w),t.__H.__h=[]}catch(r){t.__H.__h=[],n.__e(r,t.__v)}}n.__b=function(n){r=null,e&&e(n)},n.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(k),i.__h.forEach(w),i.__h=[])),u=r},n.diffed=function(t){v&&v(t);var o=t.__c;o&&o.__H&&(o.__H.__h.length&&(1!==f.push(o)&&i===n.requestAnimationFrame||((i=n.requestAnimationFrame)||j)(b)),o.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},n.__c=function(t,r){r.some(function(t){try{t.__h.forEach(k),t.__h=t.__h.filter(function(n){return!n.__||w(n)})}catch(u){r.some(function(n){n.__h&&(n.__h=[])}),r=[],n.__e(u,t.__v)}}),l&&l(t,r)},n.unmount=function(t){m&&m(t);var r,u=t.__c;u&&u.__H&&(u.__H.__.forEach(function(n){try{k(n)}catch(n){r=n}}),u.__H=void 0,r&&n.__e(r,u.__v))};var g=\"function\"==typeof requestAnimationFrame;function j(n){var t,r=function(){clearTimeout(u),g&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);g&&(t=requestAnimationFrame(r))}function k(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function w(n){var t=r;n.__c=n.__(),r=t}function z(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function B(n,t){return\"function\"==typeof t?t(n):t}export{T as useCallback,q as useContext,x as useDebugValue,h as useEffect,P as useErrorBoundary,V as useId,A as useImperativeHandle,s as useLayoutEffect,F as useMemo,y as useReducer,_ as useRef,p as useState};\n//# sourceMappingURL=hooks.module.js.map\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","/* @flow */\n\nexport const PROTOCOL = {\n MOCK: ('mock:' : 'mock:'),\n FILE: ('file:' : 'file:'),\n ABOUT: ('about:' : 'about:')\n};\n\nexport const WILDCARD = '*';\n\nexport const WINDOW_TYPE = {\n IFRAME: ('iframe' : 'iframe'),\n POPUP: ('popup' : 'popup')\n};\n","/* @flow */\n/* eslint max-lines: 0 */\n\nimport { isRegex, noop } from './util';\nimport type { CrossDomainWindowType, SameDomainWindowType, DomainMatcher } from './types';\nimport { PROTOCOL, WILDCARD } from './constants';\n\nconst IE_WIN_ACCESS_ERROR = 'Call was rejected by callee.\\r\\n';\n\nexport function getActualProtocol(win : SameDomainWindowType = window) : ?string {\n return win.location.protocol;\n}\n\nexport function getProtocol(win : SameDomainWindowType = window) : ?string {\n if (win.mockDomain) {\n const protocol = win.mockDomain.split('//')[0];\n\n if (protocol) {\n return protocol;\n }\n }\n\n return getActualProtocol(win);\n}\n\nexport function isFileProtocol(win : SameDomainWindowType = window) : boolean {\n return getProtocol(win) === PROTOCOL.FILE;\n}\n\nexport function isAboutProtocol(win : SameDomainWindowType = window) : boolean {\n return getProtocol(win) === PROTOCOL.ABOUT;\n}\n\nexport function isMockProtocol(win : SameDomainWindowType = window) : boolean {\n return getProtocol(win) === PROTOCOL.MOCK;\n}\n\nexport function getParent(win? : CrossDomainWindowType = window) : ?CrossDomainWindowType {\n\n if (!win) {\n return;\n }\n\n try {\n if (win.parent && win.parent !== win) {\n return win.parent;\n }\n } catch (err) {\n // pass\n }\n}\n\nexport function getOpener(win? : CrossDomainWindowType = window) : ?CrossDomainWindowType {\n\n if (!win) {\n return;\n }\n\n // Make sure we're not actually an iframe which has had window.open() called on us\n if (getParent(win)) {\n return;\n }\n\n try {\n return win.opener;\n } catch (err) {\n // pass\n }\n}\n\nexport function canReadFromWindow(win : CrossDomainWindowType | SameDomainWindowType) : boolean {\n try {\n // $FlowFixMe\n noop(win && win.location && win.location.href);\n return true;\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function getActualDomain(win? : SameDomainWindowType = window) : string {\n\n const location = win.location;\n\n if (!location) {\n throw new Error(`Can not read window location`);\n }\n\n const protocol = getActualProtocol(win);\n\n if (!protocol) {\n throw new Error(`Can not read window protocol`);\n }\n\n if (protocol === PROTOCOL.FILE) {\n return `${ PROTOCOL.FILE }//`;\n }\n\n if (protocol === PROTOCOL.ABOUT) {\n\n const parent = getParent(win);\n if (parent && canReadFromWindow(parent)) {\n // $FlowFixMe\n return getActualDomain(parent);\n }\n\n return `${ PROTOCOL.ABOUT }//`;\n }\n\n const host = location.host;\n\n if (!host) {\n throw new Error(`Can not read window host`);\n }\n\n return `${ protocol }//${ host }`;\n}\n\nexport function getDomain(win? : SameDomainWindowType = window) : string {\n\n const domain = getActualDomain(win);\n\n if (domain && win.mockDomain && win.mockDomain.indexOf(PROTOCOL.MOCK) === 0) {\n return win.mockDomain;\n }\n\n return domain;\n}\n\nexport function isBlankDomain(win : CrossDomainWindowType) : boolean {\n try {\n // $FlowFixMe\n if (!win.location.href) {\n return true;\n }\n\n if (win.location.href === 'about:blank') {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isActuallySameDomain(win : CrossDomainWindowType) : boolean {\n\n try {\n if (win === window) {\n return true;\n }\n\n } catch (err) {\n // pass\n }\n\n try {\n const desc = Object.getOwnPropertyDescriptor(win, 'location');\n\n if (desc && desc.enumerable === false) {\n return false;\n }\n\n } catch (err) {\n // pass\n }\n\n try {\n // $FlowFixMe\n if (isAboutProtocol(win) && canReadFromWindow(win)) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n try {\n // $FlowFixMe\n if (isMockProtocol(win) && canReadFromWindow(win)) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n try {\n // $FlowFixMe\n if (getActualDomain(win) === getActualDomain(window)) {\n return true;\n }\n\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isSameDomain(win : CrossDomainWindowType | SameDomainWindowType) : boolean {\n\n if (!isActuallySameDomain(win)) {\n return false;\n }\n\n try {\n if (win === window) {\n return true;\n }\n \n // $FlowFixMe\n if (isAboutProtocol(win) && canReadFromWindow(win)) {\n return true;\n }\n\n // $FlowFixMe\n if (getDomain(window) === getDomain(win)) {\n return true;\n }\n\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\n\nexport function assertSameDomain(win : CrossDomainWindowType | SameDomainWindowType) : SameDomainWindowType {\n if (!isSameDomain(win)) {\n throw new Error(`Expected window to be same domain`);\n }\n\n // $FlowFixMe\n return win;\n}\n\nexport function getParents(win : CrossDomainWindowType) : $ReadOnlyArray {\n\n const result = [];\n\n try {\n\n while (win.parent !== win) {\n result.push(win.parent);\n win = win.parent;\n }\n\n } catch (err) {\n // pass\n }\n\n return result;\n}\n\nexport function isAncestorParent(parent : CrossDomainWindowType, child : CrossDomainWindowType) : boolean {\n\n if (!parent || !child) {\n return false;\n }\n\n const childParent = getParent(child);\n\n if (childParent) {\n return childParent === parent;\n }\n\n if (getParents(child).indexOf(parent) !== -1) {\n return true;\n }\n\n return false;\n}\n\nexport function getFrames(win : CrossDomainWindowType) : $ReadOnlyArray {\n\n const result = [];\n\n let frames;\n\n try {\n frames = win.frames;\n } catch (err) {\n frames = win;\n }\n\n let len;\n\n try {\n len = frames.length;\n } catch (err) {\n // pass\n }\n\n if (len === 0) {\n return result;\n }\n\n if (len) {\n for (let i = 0; i < len; i++) {\n\n let frame;\n\n try {\n frame = frames[i];\n } catch (err) {\n continue;\n }\n\n result.push(frame);\n }\n\n return result;\n }\n\n for (let i = 0; i < 100; i++) {\n let frame;\n\n try {\n frame = frames[i];\n } catch (err) {\n return result;\n }\n\n if (!frame) {\n return result;\n }\n\n result.push(frame);\n }\n\n return result;\n}\n\n\nexport function getAllChildFrames(win : CrossDomainWindowType) : $ReadOnlyArray {\n\n const result = [];\n\n for (const frame of getFrames(win)) {\n result.push(frame);\n\n for (const childFrame of getAllChildFrames(frame)) {\n result.push(childFrame);\n }\n }\n\n return result;\n}\n\nexport function getTop(win? : CrossDomainWindowType = window) : ?CrossDomainWindowType {\n\n try {\n if (win.top) {\n return win.top;\n }\n } catch (err) {\n // pass\n }\n\n if (getParent(win) === win) {\n return win;\n }\n\n try {\n if (isAncestorParent(window, win) && window.top) {\n return window.top;\n }\n } catch (err) {\n // pass\n }\n\n try {\n if (isAncestorParent(win, window) && window.top) {\n return window.top;\n }\n } catch (err) {\n // pass\n }\n\n for (const frame of getAllChildFrames(win)) {\n try {\n if (frame.top) {\n return frame.top;\n }\n } catch (err) {\n // pass\n }\n\n if (getParent(frame) === frame) {\n return frame;\n }\n }\n}\n\nexport function getNextOpener(win? : CrossDomainWindowType = window) : ?CrossDomainWindowType {\n return getOpener(getTop(win) || win);\n}\n\nexport function getUltimateTop(win? : CrossDomainWindowType = window) : CrossDomainWindowType {\n const opener = getNextOpener(win);\n\n if (opener) {\n return getUltimateTop(opener);\n }\n\n return top;\n}\n\nexport function getAllFramesInWindow(win : CrossDomainWindowType) : $ReadOnlyArray {\n const top = getTop(win);\n\n if (!top) {\n throw new Error(`Can not determine top window`);\n }\n\n let result = [ ...getAllChildFrames(top), top ];\n\n // Win may be in shadow dom\n if (result.indexOf(win) === -1) {\n result = [ ...result, win, ...getAllChildFrames(win) ];\n }\n\n return result;\n}\n\nexport function getAllWindows(win? : CrossDomainWindowType = window) : $ReadOnlyArray {\n const frames = getAllFramesInWindow(win);\n const opener = getNextOpener(win);\n\n if (opener) {\n return [ ...getAllWindows(opener), ...frames ];\n } else {\n return frames;\n }\n}\n\nexport function isTop(win : CrossDomainWindowType) : boolean {\n return win === getTop(win);\n}\n\nexport function isFrameWindowClosed(frame : HTMLIFrameElement) : boolean {\n\n if (!frame.contentWindow) {\n return true;\n }\n\n if (!frame.parentNode) {\n return true;\n }\n\n const doc = frame.ownerDocument;\n\n if (doc && doc.documentElement && !doc.documentElement.contains(frame)) {\n let parent = frame;\n\n while (parent.parentNode && parent.parentNode !== parent) {\n parent = parent.parentNode;\n }\n\n // $FlowFixMe\n if (!parent.host || !doc.documentElement.contains(parent.host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction safeIndexOf(collection : $ReadOnlyArray, item : T) : number {\n for (let i = 0; i < collection.length; i++) {\n\n try {\n if (collection[i] === item) {\n return i;\n }\n } catch (err) {\n // pass\n }\n }\n\n return -1;\n}\n\nconst iframeWindows = [];\nconst iframeFrames = [];\n\nexport function isWindowClosed(win : CrossDomainWindowType, allowMock : boolean = true) : boolean {\n\n try {\n if (win === window) {\n return false;\n }\n } catch (err) {\n return true;\n }\n\n try {\n if (!win) {\n return true;\n }\n\n } catch (err) {\n return true;\n }\n\n try {\n if (win.closed) {\n return true;\n }\n\n } catch (err) {\n\n // I love you so much IE\n\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return false;\n }\n\n return true;\n }\n\n\n if (allowMock && isSameDomain(win)) {\n try {\n // $FlowFixMe\n if (win.mockclosed) {\n return true;\n }\n } catch (err) {\n // pass\n }\n }\n\n // Mobile safari\n\n try {\n if (!win.parent || !win.top) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n // Yes, this actually happens in IE. win === win errors out when the window\n // is from an iframe, and the iframe was removed from the page.\n\n try {\n noop(win === win); // eslint-disable-line no-self-compare\n } catch (err) {\n return true;\n }\n\n // IE orphaned frame\n\n const iframeIndex = safeIndexOf(iframeWindows, win);\n\n if (iframeIndex !== -1) {\n const frame = iframeFrames[iframeIndex];\n\n if (frame && isFrameWindowClosed(frame)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction cleanIframes() {\n for (let i = 0; i < iframeWindows.length; i++) {\n let closed = false;\n\n try {\n closed = iframeWindows[i].closed;\n } catch (err) {\n // pass\n }\n\n if (closed) {\n iframeFrames.splice(i, 1);\n iframeWindows.splice(i, 1);\n }\n }\n}\n\nexport function linkFrameWindow(frame : HTMLIFrameElement) {\n\n cleanIframes();\n\n if (frame && frame.contentWindow) {\n try {\n iframeWindows.push(frame.contentWindow);\n iframeFrames.push(frame);\n } catch (err) {\n // pass\n }\n }\n}\n\nexport function getUserAgent(win : ?SameDomainWindowType) : string {\n win = win || window;\n return win.navigator.mockUserAgent || win.navigator.userAgent;\n}\n\n\nexport function getFrameByName(win : CrossDomainWindowType, name : string) : ?CrossDomainWindowType {\n\n const winFrames = getFrames(win);\n\n for (const childFrame of winFrames) {\n try {\n // $FlowFixMe\n if (isSameDomain(childFrame) && childFrame.name === name && winFrames.indexOf(childFrame) !== -1) {\n return childFrame;\n }\n } catch (err) {\n // pass\n }\n }\n\n try {\n // $FlowFixMe\n if (winFrames.indexOf(win.frames[name]) !== -1) {\n // $FlowFixMe\n return win.frames[name];\n }\n } catch (err) {\n // pass\n }\n\n try {\n if (winFrames.indexOf(win[name]) !== -1) {\n return win[name];\n }\n } catch (err) {\n // pass\n }\n}\n\nexport function findChildFrameByName(win : CrossDomainWindowType, name : string) : ?CrossDomainWindowType {\n\n const frame = getFrameByName(win, name);\n\n if (frame) {\n return frame;\n }\n\n for (const childFrame of getFrames(win)) {\n const namedFrame = findChildFrameByName(childFrame, name);\n\n if (namedFrame) {\n return namedFrame;\n }\n }\n}\n\nexport function findFrameByName(win : CrossDomainWindowType, name : string) : ?CrossDomainWindowType {\n const frame = getFrameByName(win, name);\n\n if (frame) {\n return frame;\n }\n\n const top = getTop(win) || win;\n\n return findChildFrameByName(top, name);\n}\n\nexport function isParent(win : CrossDomainWindowType, frame : CrossDomainWindowType) : boolean {\n\n const frameParent = getParent(frame);\n\n if (frameParent) {\n return frameParent === win;\n }\n\n for (const childFrame of getFrames(win)) {\n if (childFrame === frame) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function isOpener(parent : CrossDomainWindowType, child : CrossDomainWindowType) : boolean {\n\n return parent === getOpener(child);\n}\n\nexport function getAncestor(win? : CrossDomainWindowType = window) : ?CrossDomainWindowType {\n win = win || window;\n\n const opener = getOpener(win);\n\n if (opener) {\n return opener;\n }\n\n const parent = getParent(win);\n\n if (parent) {\n return parent;\n }\n}\n\nexport function getAncestors(win : CrossDomainWindowType) : $ReadOnlyArray {\n\n const results = [];\n\n let ancestor = win;\n\n while (ancestor) {\n ancestor = getAncestor(ancestor);\n if (ancestor) {\n results.push(ancestor);\n }\n }\n\n return results;\n}\n\n\nexport function isAncestor(parent : CrossDomainWindowType, child : CrossDomainWindowType) : boolean {\n\n const actualParent = getAncestor(child);\n\n if (actualParent) {\n if (actualParent === parent) {\n return true;\n }\n\n return false;\n }\n\n if (child === parent) {\n return false;\n }\n\n if (getTop(child) === child) {\n return false;\n }\n\n for (const frame of getFrames(parent)) {\n if (frame === child) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function isPopup(win? : CrossDomainWindowType = window) : boolean {\n return Boolean(getOpener(win));\n}\n\nexport function isIframe(win? : CrossDomainWindowType = window) : boolean {\n return Boolean(getParent(win));\n}\n\nexport function isFullpage(win? : CrossDomainWindowType = window) : boolean {\n return Boolean(!isIframe(win) && !isPopup(win));\n}\n\nfunction anyMatch(collection1, collection2) : boolean {\n\n for (const item1 of collection1) {\n for (const item2 of collection2) {\n if (item1 === item2) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function getDistanceFromTop(win : CrossDomainWindowType = window) : number {\n let distance = 0;\n let parent = win;\n\n while (parent) {\n parent = getParent(parent);\n if (parent) {\n distance += 1;\n }\n }\n\n return distance;\n}\n\nexport function getNthParent(win : CrossDomainWindowType, n : number = 1) : ?CrossDomainWindowType {\n let parent = win;\n\n for (let i = 0; i < n; i++) {\n if (!parent) {\n return;\n }\n\n parent = getParent(parent);\n }\n\n return parent;\n}\n\nexport function getNthParentFromTop(win : CrossDomainWindowType, n : number = 1) : ?CrossDomainWindowType {\n return getNthParent(win, getDistanceFromTop(win) - n);\n}\n\nexport function isSameTopWindow(win1 : CrossDomainWindowType, win2 : CrossDomainWindowType) : boolean {\n\n const top1 = getTop(win1) || win1;\n const top2 = getTop(win2) || win2;\n\n try {\n if (top1 && top2) {\n if (top1 === top2) {\n return true;\n }\n\n return false;\n }\n } catch (err) {\n // pass\n }\n\n const allFrames1 = getAllFramesInWindow(win1);\n const allFrames2 = getAllFramesInWindow(win2);\n\n if (anyMatch(allFrames1, allFrames2)) {\n return true;\n }\n\n const opener1 = getOpener(top1);\n const opener2 = getOpener(top2);\n\n if (opener1 && anyMatch(getAllFramesInWindow(opener1), allFrames2)) {\n return false;\n }\n\n if (opener2 && anyMatch(getAllFramesInWindow(opener2), allFrames1)) {\n return false;\n }\n\n return false;\n}\n\nexport function matchDomain(pattern : DomainMatcher, origin : DomainMatcher) : boolean {\n\n if (typeof pattern === 'string') {\n\n if (typeof origin === 'string') {\n return pattern === WILDCARD || origin === pattern;\n }\n\n if (isRegex(origin)) {\n return false;\n }\n\n if (Array.isArray(origin)) {\n return false;\n }\n }\n\n if (isRegex(pattern)) {\n\n if (isRegex(origin)) {\n return pattern.toString() === origin.toString();\n }\n\n if (Array.isArray(origin)) {\n return false;\n }\n\n // $FlowFixMe\n return Boolean(origin.match(pattern));\n }\n\n if (Array.isArray(pattern)) {\n\n if (Array.isArray(origin)) {\n return JSON.stringify(pattern) === JSON.stringify(origin);\n }\n\n if (isRegex(origin)) {\n return false;\n }\n\n return pattern.some(subpattern => matchDomain(subpattern, origin));\n }\n\n return false;\n}\n\nexport function stringifyDomainPattern(pattern : DomainMatcher) : string {\n if (Array.isArray(pattern)) {\n return `(${ pattern.join(' | ') })`;\n } else if (isRegex(pattern)) {\n return `RegExp(${ pattern.toString() })`;\n } else {\n return pattern.toString();\n }\n}\n\nexport function getDomainFromUrl(url : string) : string {\n\n let domain;\n\n if (url.match(/^(https?|mock|file):\\/\\//)) {\n domain = url;\n } else {\n return getDomain();\n }\n\n domain = domain.split('/').slice(0, 3).join('/');\n\n return domain;\n}\n\nexport function onCloseWindow(win : CrossDomainWindowType, callback : Function, delay : number = 1000, maxtime : number = Infinity) : {| cancel : () => void |} {\n\n let timeout;\n\n const check = () => {\n\n if (isWindowClosed(win)) {\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n return callback();\n }\n\n if (maxtime <= 0) {\n clearTimeout(timeout);\n } else {\n maxtime -= delay;\n timeout = setTimeout(check, delay);\n }\n };\n\n check();\n\n return {\n cancel() {\n if (timeout) {\n clearTimeout(timeout);\n }\n }\n };\n}\n\n// eslint-disable-next-line complexity\nexport function isWindow(obj : Object) : boolean {\n\n try {\n if (obj === window) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n // $FlowFixMe method-unbinding\n if (Object.prototype.toString.call(obj) === '[object Window]') {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (window.Window && obj instanceof window.Window) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.self === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.parent === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (obj && obj.top === obj) {\n return true;\n }\n } catch (err) {\n if (err && err.message === IE_WIN_ACCESS_ERROR) {\n return true;\n }\n }\n\n try {\n if (noop(obj === obj) === '__unlikely_value__') { // eslint-disable-line no-self-compare\n return false;\n }\n\n } catch (err) {\n return true;\n }\n\n try {\n if (obj && obj.__cross_domain_utils_window_check__ === '__unlikely_value__') {\n return false;\n }\n\n } catch (err) {\n return true;\n }\n\n try {\n if ('postMessage' in obj && 'self' in obj && 'location' in obj) {\n return true;\n }\n } catch (err) {\n // pass\n }\n\n return false;\n}\n\nexport function isBrowser() : boolean {\n return (typeof window !== 'undefined' && typeof window.location !== 'undefined');\n}\n\nexport function isCurrentDomain(domain : string) : boolean {\n if (!isBrowser()) {\n return false;\n }\n\n return (getDomain() === domain);\n}\n\nexport function isMockDomain(domain : string) : boolean {\n return domain.indexOf(PROTOCOL.MOCK) === 0;\n}\n\nexport function normalizeMockUrl(url : string) : string {\n if (!isMockDomain(getDomainFromUrl(url))) {\n return url;\n }\n\n if (!__TEST__) {\n throw new Error(`Mock urls not supported out of test mode`);\n }\n\n return url.replace(/^mock:\\/\\/[^/]+/, getActualDomain(window));\n}\n\nexport function getFrameForWindow(win : CrossDomainWindowType) : ?HTMLElement {\n if (isSameDomain(win)) {\n return assertSameDomain(win).frameElement;\n }\n\n for (const frame of document.querySelectorAll('iframe')) {\n if (frame && frame.contentWindow && frame.contentWindow === win) {\n return frame;\n }\n }\n}\n\nexport function closeWindow(win : CrossDomainWindowType) {\n if (isIframe(win)) {\n const frame = getFrameForWindow(win);\n if (frame && frame.parentElement) {\n frame.parentElement.removeChild(frame);\n return;\n }\n }\n\n try {\n win.close();\n } catch (err) {\n // pass\n }\n}\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","/* @flow */\n\nimport {\n ENV,\n PROTOCOL,\n COMPONENTS,\n PLATFORM,\n type FundingEligibilityType,\n} from \"@paypal/sdk-constants/src\";\nimport { isDevice } from \"@krakenjs/belter/src\";\n\nexport function getSDKHost(): string {\n return __SDK_HOST__;\n}\n\nexport function getProtocol(): $Values {\n return typeof __PROTOCOL__ !== \"undefined\" ? __PROTOCOL__ : PROTOCOL.HTTPS;\n}\n\nexport function getHost(): string {\n return __HOST__;\n}\n\nexport function getHostName(): string {\n return __HOSTNAME__;\n}\n\nexport function getPort(): number {\n return __PORT__;\n}\n\nexport function getPath(): string {\n return __PATH__;\n}\n\nexport function getEnv(): $Values {\n return __ENV__;\n}\n\nexport function getPayPalDomain(): string {\n return __PAYPAL_DOMAIN__;\n}\n\nexport function getPayPalAPIDomain(): string {\n return __PAYPAL_API_DOMAIN__;\n}\n\nexport function getDefaultServiceStageHost(): ?string {\n if (\n typeof __SERVICE_STAGE_HOST__ !== \"undefined\" &&\n __SERVICE_STAGE_HOST__ !== null\n ) {\n return __SERVICE_STAGE_HOST__;\n }\n}\n\nexport function getDefaultStageHost(): ?string {\n if (typeof __STAGE_HOST__ !== \"undefined\" && __STAGE_HOST__ !== null) {\n return __STAGE_HOST__;\n }\n}\n\nexport function getDefaultAPIStageHost(): ?string {\n const serviceStageHost = getDefaultServiceStageHost();\n const stageHost = getDefaultStageHost();\n\n if (serviceStageHost) {\n return serviceStageHost;\n } else if (stageHost) {\n return stageHost;\n }\n}\n\nexport function getStageHost(): ?string {\n return getDefaultStageHost();\n}\n\nexport function getAPIStageHost(): ?string {\n const defaultAPIStageHost = getDefaultAPIStageHost();\n\n if (defaultAPIStageHost) {\n return defaultAPIStageHost.replace(\"www.\", \"api.\");\n }\n}\n\nexport function getVersion(): string {\n return __VERSION__;\n}\n\nexport function getCorrelationID(): string {\n return __CORRELATION_ID__;\n}\n\nexport function getDefaultNamespace(): string {\n return __NAMESPACE__;\n}\n\nexport function getDebug(): boolean {\n return __DEBUG__;\n}\n\nexport function getComponents(): $ReadOnlyArray<$Values> {\n return __COMPONENTS__;\n}\n\nexport function getFundingEligibility(): FundingEligibilityType {\n return __FUNDING_ELIGIBILITY__;\n}\n\nexport function getPlatform(): $Values {\n return isDevice() ? PLATFORM.MOBILE : PLATFORM.DESKTOP;\n}\n","/* @flow */\n\nexport const SUPPORTED_BROWSERS = {\n msie: \"11\",\n firefox: \"30\",\n chrome: \"27\",\n safari: \"7\",\n opera: \"16\",\n msedge: \"12\",\n samsungBrowser: \"2.1\",\n silk: \"59.3\",\n ucbrowser: \"10.0.0.488\",\n vivaldi: \"1.91\",\n};\n\nconst SANDBOX_ALIAS =\n \"AZDxjDScFpQtjWTOUtWKbyN_bDt4OgqaF4eYXlewfBP4-8aqX3PiV8e1GWU6liB2CUXlkA59kJXE7M6R\";\n\nexport const CLIENT_ID_ALIAS = {\n sandbox: SANDBOX_ALIAS,\n sb: SANDBOX_ALIAS,\n test: SANDBOX_ALIAS,\n};\n\nexport const URI = {\n LOGGER: `/xoplatform/logger/api/logger`,\n AUTH: `/v1/oauth2/token`,\n ORDER: `/v2/checkout/orders`,\n};\n","/* @flow */\n\nimport {\n getCurrentScriptUID,\n ATTRIBUTES,\n parseQuery,\n getBrowserLocales,\n base64decode,\n values,\n getCurrentScript,\n memoize,\n stringifyError,\n getScript,\n} from \"@krakenjs/belter/src\";\nimport {\n COUNTRY,\n SDK_SETTINGS,\n SDK_QUERY_KEYS,\n INTENT,\n COMMIT,\n VAULT,\n CURRENCY,\n FUNDING,\n CARD,\n COUNTRY_LANGS,\n DEFAULT_INTENT,\n DEFAULT_CURRENCY,\n DEFAULT_VAULT,\n QUERY_BOOL,\n LANG,\n type LocaleType,\n DEFAULT_SALE_COMMIT,\n DEFAULT_NONSALE_COMMIT,\n PAGE_TYPES,\n} from \"@paypal/sdk-constants/src\";\n\nimport { getPath, getDefaultNamespace, getSDKHost } from \"./global\";\nimport { CLIENT_ID_ALIAS } from \"./config\";\nimport { getComputedLocales } from \"./utils\";\n\ntype GetSDKScript = () => HTMLScriptElement;\n\nconst buildScriptNotFoundError = (host, path, error) => {\n const errorString = error ? stringifyError(error) : \"\";\n\n return new Error(\n `PayPal Payments SDK script not found on page! Expected to find