@ecomplus/widget-martan 1.2.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/public/widget-martan.1.min.js +1 -1
  3. package/dist/public/widget-martan.1.min.js.map +1 -1
  4. package/dist/public/widget-martan.2.min.js +1 -1
  5. package/dist/public/widget-martan.2.min.js.map +1 -1
  6. package/dist/public/widget-martan.3.min.js +1 -1
  7. package/dist/public/widget-martan.3.min.js.map +1 -1
  8. package/dist/public/widget-martan.4.min.js +1 -1
  9. package/dist/public/widget-martan.4.min.js.map +1 -1
  10. package/dist/public/widget-martan.5.min.js +1 -1
  11. package/dist/public/widget-martan.5.min.js.map +1 -1
  12. package/dist/public/widget-martan.6.min.js +1 -1
  13. package/dist/public/widget-martan.6.min.js.map +1 -1
  14. package/dist/public/widget-martan.7.min.js +1 -1
  15. package/dist/public/widget-martan.7.min.js.map +1 -1
  16. package/dist/public/widget-martan.8.min.js +1 -1
  17. package/dist/public/widget-martan.8.min.js.map +1 -1
  18. package/dist/public/widget-martan.var.min.js +2 -2
  19. package/dist/public/widget-martan.var.min.js.map +1 -1
  20. package/dist/widget-martan.1.min.js +1 -1
  21. package/dist/widget-martan.1.min.js.map +1 -1
  22. package/dist/widget-martan.2.min.js +1 -1
  23. package/dist/widget-martan.2.min.js.map +1 -1
  24. package/dist/widget-martan.3.min.js +1 -1
  25. package/dist/widget-martan.3.min.js.map +1 -1
  26. package/dist/widget-martan.4.min.js +1 -1
  27. package/dist/widget-martan.4.min.js.map +1 -1
  28. package/dist/widget-martan.5.min.js +1 -1
  29. package/dist/widget-martan.5.min.js.map +1 -1
  30. package/dist/widget-martan.6.min.js +1 -1
  31. package/dist/widget-martan.6.min.js.map +1 -1
  32. package/dist/widget-martan.7.min.js +1 -1
  33. package/dist/widget-martan.7.min.js.map +1 -1
  34. package/dist/widget-martan.8.min.js +1 -1
  35. package/dist/widget-martan.8.min.js.map +1 -1
  36. package/dist/widget-martan.min.js +3 -3
  37. package/dist/widget-martan.min.js.map +1 -1
  38. package/package.json +2 -2
  39. package/src/widgets/reviews/components/VerifiedPurchase.vue +1 -1
  40. package/dist/public/widget-martan.0.min.js +0 -62
  41. package/dist/public/widget-martan.0.min.js.map +0 -1
  42. package/dist/public/widget-martan.9.min.js +0 -2
  43. package/dist/public/widget-martan.9.min.js.map +0 -1
  44. package/dist/widget-martan.0.min.js +0 -62
  45. package/dist/widget-martan.0.min.js.map +0 -1
  46. package/dist/widget-martan.9.min.js +0 -2
  47. package/dist/widget-martan.9.min.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://widgetMartan/webpack/bootstrap","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/utils.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/core/AxiosError.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/toFormData.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://widgetMartan/./src/utils/configProps.js","webpack://widgetMartan/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/bind.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/null.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/css-loader/dist/runtime/api.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/vue-style-loader/lib/listToStyles.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/vue-style-loader/lib/addStylesClient.js","webpack://widgetMartan/./src/utils/lighten-color.js","webpack://widgetMartan/./src/widgets/ratings/Rating.vue?e8b8","webpack://widgetMartan/(webpack)/buildin/global.js","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue?32a5","webpack://widgetMartan/./src/widgets/questions/Questions.vue?7a29","webpack://widgetMartan/./src/widgets/ratings/Rating.vue?33ca","webpack://widgetMartan/./src/widgets/ratings/Rating.vue?1d8a","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/buffer/index.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/base64-js/index.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/ieee754/index.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/isarray/index.js","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue?5b9e","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue?530f","webpack://widgetMartan/./src/widgets/questions/Questions.vue?81c3","webpack://widgetMartan/./src/widgets/questions/Questions.vue?f918","webpack://widgetMartan/./src/utils/widget-initializer.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/buildURL.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/core/InterceptorManager.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/defaults/transitional.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/platform/browser/index.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/platform/common/utils.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/platform/index.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/formDataToJSON.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/defaults/index.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/parseHeaders.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/core/AxiosHeaders.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/core/transformData.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/cancel/isCancel.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/cancel/CanceledError.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/cookies.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/core/buildFullPath.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/combineURLs.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/speedometer.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/adapters/xhr.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/core/settle.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/parseProtocol.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/adapters/adapters.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/core/dispatchRequest.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/core/mergeConfig.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/env/data.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/validator.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/core/Axios.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/cancel/CancelToken.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/axios.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/spread.js","webpack://widgetMartan//home/leo/code/ecomplus/storefront/node_modules/axios/lib/helpers/isAxiosError.js","webpack://widgetMartan/./src/widgets/ratings/Rating.vue?8e93","webpack://widgetMartan/src/widgets/ratings/Rating.vue","webpack://widgetMartan/./src/widgets/ratings/Rating.vue","webpack://widgetMartan/./src/widgets/ratings/Rating.vue?b853","webpack://widgetMartan/./src/widgets/ratings/index.js","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue?f257","webpack://widgetMartan/src/widgets/reviews/Reviews.vue","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue?15bb","webpack://widgetMartan/./src/widgets/questions/Questions.vue?9f52","webpack://widgetMartan/src/widgets/questions/Questions.vue","webpack://widgetMartan/./src/widgets/questions/Questions.vue","webpack://widgetMartan/./src/widgets/questions/Questions.vue?3d9c","webpack://widgetMartan/./src/index.js","webpack://widgetMartan/./src/widgets/questions/index.js","webpack://widgetMartan/./src/widgets/reviews/index.js","webpack://widgetMartan/external {\"commonjs\":\"jquery/dist/jquery.slim\",\"commonjs2\":\"jquery/dist/jquery.slim\",\"root\":\"$\"}","webpack://widgetMartan/external {\"commonjs\":\"@ecomplus/utils\",\"commonjs2\":\"@ecomplus/utils\",\"root\":\"ecomUtils\"}","webpack://widgetMartan/external {\"commonjs\":\"popper.js\",\"commonjs2\":\"popper.js\",\"root\":\"Popper\"}"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","1","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","toString","getPrototypeOf","kindOf","cache","thing","str","toLowerCase","kindOfTest","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","forEach","obj","fn","allOwnKeys","keys","getOwnPropertyNames","len","findKey","_key","_global","globalThis","self","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","ret","defineProperties","ALPHA","ALPHABET","DIGIT","ALPHA_DIGIT","toUpperCase","isAsyncFn","isBuffer","constructor","isFormData","kind","FormData","append","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","this","assignValue","targetKey","arguments","extend","a","b","thisArg","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","writable","set","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","generateString","size","alphabet","Math","random","isSpecCompliantForm","toJSONObject","stack","visit","source","reducedValue","isThenable","then","catch","AxiosError","code","config","response","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","map","token","join","predicates","test","toFormData","formData","options","TypeError","PlatformFormData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","pop","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","configProp","default","store_id","web_id","widget_rating","is_enabled","font_size","star_color","display","search_page","theme","widget_review","title","header_layout","reviews_layout","widget_questions","enable_new_questions","apply","useSourceMap","list","item","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","id","_i","listToStyles","parentId","styles","newStyles","part","css","media","parts","hasDocument","DEBUG","stylesInDom","getElementsByTagName","singletonElement","singletonCounter","isProduction","isOldIE","navigator","userAgent","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","replacement","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","ssrId","firstChild","lightenColor","hex","amount","x","parseInt","substring","g","min","round","toHex","padStart","locals","Function","___CSS_LOADER_API_IMPORT___","require","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","__proto__","arg","encodingOrOffset","allocUnsafe","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","fromString","checked","copy","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","buf","readUInt16BE","foundIndex","found","hexWrite","offset","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","configurable","fill","allocUnsafeSlow","_isBuffer","compare","y","pos","swap16","swap32","swap64","equals","inspect","max","match","thisStart","thisEnd","thisCopy","targetCopy","includes","_arr","out","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","stringtrim","base64clean","dst","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","num","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","log","LN2","elId","Component","defaultConfig","$el","getElementById","dataset","product","widget_key","IntersectionObserver","entries","observer","entry","isIntersecting","intersectionRatio","Vue","$mount","disconnect","rootMargin","observe","encode","charMap","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","serializeFn","serialize","serializedParams","hashmarkIndex","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","clear","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","platform","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","line","parseHeaders","tokens","tokensRE","parseTokens","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","targets","asStrings","first","computed","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","accessor","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","expires","domain","secure","cookie","Date","toGMTString","RegExp","decodeURIComponent","now","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","urlParsingNode","originURL","resolveURL","href","protocol","host","search","hash","hostname","port","pathname","charAt","location","requestURL","speedometer","samplesCount","timestamps","firstSampleTS","tail","chunkLength","startedAt","bytesCount","passed","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","isXHRAdapterSupported","XMLHttpRequest","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","unsubscribe","signal","removeEventListener","auth","username","password","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","isURLSameOrigin","xsrfValue","cookies","setRequestHeader","withCredentials","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","parseProtocol","send","knownAdapters","http","httpAdapter","xhr","xhrAdapter","renderReason","reason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","_request","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","instance","VERSION","Cancel","spread","callback","isAxiosError","payload","formToJSON","getAdapter","rating","totalReviews","stars","mounted","updateStars","isCompact","fontSize","fontSizeNumber","parseFloat","compactFillPercentage","starColor","ratingText","formatNumber","colorClosest","normalizeRating","isInteger","toFixed","methods","_","getStarClass","star","getStarFill","watch","_vm","_h","$createElement","_c","_self","staticClass","class","style","color","attrs","_uid","_v","_s","_l","_e","Ratings","loading","fetchRatings","listenerForSearchPage","loadFromLocalStorage","MARTAN_API","saveToLocalStorage","timestamp","fromLocalStorage","localStorage","getItem","setItem","getProductRatingFromList","sku","find","getClasses","custom_class","elements","querySelectorAll","element","renderRating","listenerForNewRatings","getProductFromElement","$ratingEl","RatingsComponent","average","generateId","prefix","MutationObserver","callbackForNewRatings","body","childList","attributes","subtree","mutations","mutation","addedNodes","node","isMartanElement","isIn","classList","martanProductId","martanProductSku","$searchEngine","searchEngineObserver","$retailRow","rowObserver","required","orderRating","orderReviews","$isSorting","$count","hasMore","averageTotal","totalRecommended","one","two","three","four","five","isOpenQuickView","selectedReview","isScrollable","$listEl","onlyWithPictures","newVal","oldOrder","newOrder","fetchReviews","i19basedOn$1Reviews","i19basedOn$1Review","i19noReview","review","pictures","getUrl","URL","origin","orderBy","count","finally","recommended_percentage","loadMore","showLoadMore","updateOrderBy","onSort","order","openQuickview","onCloseQuickview","checkScrollability","scrollWidth","clientWidth","scrollLeft","scrollBy","left","behavior","scrollRight","initMasonry","CSS","supports","gridContainer","card","fetchAverage","beforeDestroy","components","ReviewCard","Quickview","Compact","Center","Summary","Padrao","Histogram","directives","rawName","expression","tag","on","searchQuery","searchTimeout","showIframe","iframeError","iframeHeight","iframeUrl","stylesheet","storefront","settings","productID","_id","productSKU","webId","storeId","MARTAN_QUESTIONS_WEBUI","newValue","fetchQuestions","setupIframeMessageListener","removeIframeMessageListener","expand","terms","meta","loadMoreQuestions","askQuestion","handleIframeError","clearSearch","messageHandler","height","domProps","$event","composing","question","_m","reply","widgetInitializer","Questions","Reviews","init"],"mappings":"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","file":"widget-martan.var.min.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t1: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"widget-martan.\" + ({}[chunkId]||chunkId) + \".min.js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 = \"/assets/vendor/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonpwidgetMartan\"] = window[\"webpackJsonpwidgetMartan\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 25);\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","export const configProp = {\n config: {\n type: Object,\n default: () => ({\n store_id: null,\n web_id: null,\n widget_rating: {\n is_enabled: false,\n font_size: 15,\n star_color: null,\n display: null,\n search_page: true,\n theme: null\n },\n widget_review: {\n is_enabled: false,\n title: null,\n star_color: null,\n header_layout: null,\n reviews_layout: null\n },\n widget_questions: {\n is_enabled: false,\n title: null,\n enable_new_questions: false\n }\n })\n }\n}\n","module.exports = undefined;","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","// eslint-disable-next-line strict\nexport default null;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","export function lightenColor (hex, amount = 0.2) {\n hex = hex.replace(/^#/, '')\n if (hex.length === 3) {\n hex = hex\n .split('')\n .map((x) => x + x)\n .join('')\n }\n\n let r = parseInt(hex.substring(0, 2), 16)\n let g = parseInt(hex.substring(2, 4), 16)\n let b = parseInt(hex.substring(4, 6), 16)\n\n r = Math.min(255, Math.round(r + (255 - r) * amount))\n g = Math.min(255, Math.round(g + (255 - g) * amount))\n b = Math.min(255, Math.round(b + (255 - b) * amount))\n\n const toHex = (x) => x.toString(16).padStart(2, '0')\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`\n}\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=style&index=0&id=2033b273&prod&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5ee28310\", content, true, {});","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=style&index=0&id=1f781a3f&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4042fd78\", content, true, {});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Questions.vue?vue&type=style&index=0&id=009bb4ce&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"271f866a\", content, true, {});","export * from \"-!../../../../../node_modules/vue-style-loader/index.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=style&index=0&id=2033b273&prod&lang=css\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".martan-rating{align-items:center;display:flex;gap:4px}.martan-rating-text{color:#6c757d;font-size:12px;font-weight:600}.martan-rating--compact{align-items:center;display:flex;gap:6px}.martan-rating-compact{align-items:center;display:flex;gap:4px}.martan-rating-compact__star{flex-shrink:0}.martan-rating-compact__text{color:var(--gray-dark);font-size:12px;font-weight:600;white-space:nowrap}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","export * from \"-!../../../../../node_modules/vue-style-loader/index.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=style&index=0&id=1f781a3f&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".martan-reviews[data-v-1f781a3f]{color:#444}.martan-reviews .widget-header[data-v-1f781a3f]{align-items:center;display:flex;gap:1rem;justify-content:space-between}.martan-reviews .widget-header__score[data-v-1f781a3f]{max-width:500px;width:100%}.martan-reviews .widget-header__score-average[data-v-1f781a3f]{color:#444;font-size:1.25rem}.martan-reviews .list-expanded[data-v-1f781a3f]{display:flex;flex-direction:column;gap:1rem}.martan-reviews .list-grid[data-v-1f781a3f]{align-items:start;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);grid-template-rows:masonry;margin:0 auto;max-width:1200px}@media(max-width:768px){.martan-reviews .list-grid[data-v-1f781a3f]{gap:.75rem;grid-template-columns:1fr;grid-template-rows:masonry;max-width:100%}}@media(min-width:769px)and (max-width:1200px){.martan-reviews .list-grid[data-v-1f781a3f]{grid-template-columns:repeat(2,1fr);grid-template-rows:masonry;max-width:100%}}@media(min-width:1201px){.martan-reviews .list-grid[data-v-1f781a3f]{grid-template-columns:repeat(2,minmax(0,580px));grid-template-rows:masonry;justify-content:center}}@supports not (grid-template-rows:masonry){.martan-reviews .list-grid[data-v-1f781a3f]{align-content:flex-start;display:flex;flex-direction:column;flex-wrap:wrap;max-height:none}@media(min-width:769px){.martan-reviews .list-grid[data-v-1f781a3f]{align-content:flex-start;flex-direction:row}}}.martan-reviews .list-grid--masonry-fallback[data-v-1f781a3f]{-moz-column-count:1;column-count:1;-moz-column-gap:1rem;column-gap:1rem;display:block}@media(min-width:769px){.martan-reviews .list-grid--masonry-fallback[data-v-1f781a3f]{-moz-column-count:2;column-count:2}}@media(min-width:1201px){.martan-reviews .list-grid--masonry-fallback[data-v-1f781a3f]{-moz-column-count:2;column-count:2;margin:0 auto;max-width:1200px}}.martan-reviews .list-grid--masonry-fallback .masonry-item[data-v-1f781a3f]{-moz-column-break-inside:avoid;break-inside:avoid;display:inline-block;margin-bottom:1rem;width:100%}.martan-reviews .reviews-with-pictures[data-v-1f781a3f]{background-color:rgba(255,236,219,.102);border:1px solid rgba(255,236,219,.102);border-radius:.25rem;display:flex;flex-direction:column;font-size:80%;gap:.5rem;margin-top:1rem;padding:2rem;width:100%}.martan-reviews .reviews-with-pictures .list[data-v-1f781a3f]{-webkit-overflow-scrolling:touch;display:flex;flex-direction:row;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.martan-reviews .reviews-with-pictures .list[data-v-1f781a3f]::-webkit-scrollbar{display:none}.martan-reviews .reviews-with-pictures .list img[data-v-1f781a3f]{border-radius:.25rem;cursor:pointer;height:80px;-o-object-fit:cover;object-fit:cover;width:80px}.martan-reviews .credit[data-v-1f781a3f]{color:#a1a1aa;font-size:.75rem;line-height:1rem;margin-top:1rem;text-align:right}.martan-reviews .credit a[data-v-1f781a3f]{color:#0f172a!important}.martan-reviews .actions[data-v-1f781a3f]{display:flex;justify-content:center;margin-bottom:1rem;margin-top:1rem}.martan-reviews .review-list-enter-active[data-v-1f781a3f],.martan-reviews .review-list-leave-active[data-v-1f781a3f]{transition:all .3s ease}.martan-reviews .review-list-enter-from[data-v-1f781a3f]{opacity:0;transform:translateY(20px)}.martan-reviews .review-list-leave-to[data-v-1f781a3f]{opacity:0;transform:translateY(-20px)}.martan-reviews .review-list-move[data-v-1f781a3f]{transition:transform .3s ease}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../../../node_modules/vue-style-loader/index.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Questions.vue?vue&type=style&index=0&id=009bb4ce&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".martan-questions[data-v-009bb4ce]{margin-bottom:3rem}.martan-questions .questions-search[data-v-009bb4ce]{margin-bottom:20px}.martan-questions .questions-search .search-input-group[data-v-009bb4ce]{max-width:500px}.martan-questions .questions-search .search-input-group .search-input[data-v-009bb4ce]{border:1px solid #e0e0e0;border-radius:8px 0 0 8px;border-right:none;flex:1;font-size:14px;outline:none;padding:12px 16px;transition:border-color .2s}.martan-questions .questions-search .search-input-group .search-input[data-v-009bb4ce]:focus{border-color:#69f}.martan-questions .questions-search .search-input-group .search-input[data-v-009bb4ce]::-moz-placeholder{color:#999}.martan-questions .questions-search .search-input-group .search-input[data-v-009bb4ce]::placeholder{color:#999}.martan-questions .questions-search .search-input-group .search-button[data-v-009bb4ce]{align-items:center;background-color:#69f;border:1px solid #69f;border-radius:0 8px 8px 0;color:#fff;cursor:pointer;display:flex;justify-content:center;padding:12px 16px;transition:background-color .2s}.martan-questions .questions-search .search-input-group .search-button[data-v-009bb4ce]:hover:not(:disabled){background-color:#58e}.martan-questions .questions-search .search-input-group .search-button[data-v-009bb4ce]:disabled{cursor:not-allowed;opacity:.6}.martan-questions .questions-list .question-item[data-v-009bb4ce]{border-bottom:1px solid #f0f0f0;margin-bottom:20px;padding-bottom:20px}.martan-questions .questions-list .question-item[data-v-009bb4ce]:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.martan-questions .questions-list .question-item .question-text[data-v-009bb4ce]{color:#333;font-size:.9375rem;font-weight:500;line-height:1.4;margin-bottom:12px}.martan-questions .questions-list .question-item .answer-container[data-v-009bb4ce]{align-items:flex-start;display:flex;margin-top:8px;position:relative}.martan-questions .questions-list .question-item .answer-container .subtle-hook[data-v-009bb4ce]{flex-shrink:0;height:12px;margin-right:16px;margin-top:6px;position:relative;width:12px}.martan-questions .questions-list .question-item .answer-container .subtle-hook .hook-l-shape[data-v-009bb4ce]{height:12px;position:relative;width:12px}.martan-questions .questions-list .question-item .answer-container .subtle-hook .hook-l-shape[data-v-009bb4ce]:before{background-color:#d0d0d0;content:\\\"\\\";height:8px;left:0;position:absolute;top:0;width:1px}.martan-questions .questions-list .question-item .answer-container .subtle-hook .hook-l-shape[data-v-009bb4ce]:after{background-color:#d0d0d0;content:\\\"\\\";height:1px;left:0;position:absolute;top:7px;width:6px}.martan-questions .questions-list .question-item .answer-container .answer-text[data-v-009bb4ce]{color:#666;flex:1;font-weight:300;line-height:1.4}.martan-questions .no-questions[data-v-009bb4ce]{color:#999;font-style:italic;padding:40px 20px;text-align:center}.martan-questions .loading[data-v-009bb4ce]{color:#666;padding:20px;text-align:center}.martan-questions .questions-footer .view-more-link[data-v-009bb4ce]{background:none;border:none;color:#69f;cursor:pointer;font-family:inherit;font-size:14px;padding:0;text-decoration:none}.martan-questions .questions-footer .view-more-link[data-v-009bb4ce]:hover{text-decoration:underline}.martan-questions .questions-footer .view-more-link[data-v-009bb4ce]:focus{border-radius:2px;outline:2px solid #69f;outline-offset:2px}.martan-questions .iframe-container[data-v-009bb4ce]{border:1px solid #e0e0e0;border-radius:4px;margin-top:20px;max-width:580px;overflow:hidden}.martan-questions .iframe-container .question-iframe[data-v-009bb4ce]{border:none;display:block;width:100%}.martan-questions .ask-question-section[data-v-009bb4ce]{margin-top:30px}.martan-questions .ask-question-section .ask-question-button[data-v-009bb4ce]{align-items:center;background-color:#e6f2ff;border:1px solid #b3d9ff;border-radius:8px;color:#69f;cursor:pointer;display:inline-flex;font-size:14px;gap:8px;padding:12px 20px;transition:all .2s}.martan-questions .ask-question-section .ask-question-button[data-v-009bb4ce]:hover{background-color:#d1e7ff;border-color:#9cf}.martan-questions .ask-question-section .ask-question-button svg[data-v-009bb4ce]{flex-shrink:0}.martan-questions .actions[data-v-009bb4ce]{display:flex;justify-content:center;margin-bottom:1rem;margin-top:1rem}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import Vue from 'vue'\n\n/**\n * Inicializa um widget Vue com IntersectionObserver\n * @param {Object} options - Opções de configuração\n * @param {string} elId - ID do elemento HTML\n * @param {Object} Component - Componente Vue a ser renderizado\n * @param {Object} defaultConfig - Configuração padrão do widget\n */\nexport default (options = {}, elId, Component, defaultConfig = {}) => {\n const $el = document.getElementById(elId)\n if (!options || !$el || !$el.dataset || !$el.dataset.product) {\n return\n }\n\n const { product } = $el.dataset\n\n const config = {\n store_id: null,\n web_id: null,\n widget_key: null,\n widget_rating: null,\n widget_review: null,\n widget_questions: null,\n ...defaultConfig,\n ...options\n }\n\n const init = () => {\n new Vue({\n render (h) {\n return h(Component, {\n props: {\n config,\n product\n }\n })\n }\n }).$mount($el)\n }\n\n if (typeof window.IntersectionObserver === 'function') {\n const obs = new window.IntersectionObserver(\n (entries, observer) => {\n entries.forEach(function (entry) {\n const { isIntersecting, intersectionRatio } = entry\n if (isIntersecting === true || intersectionRatio > 0) {\n init()\n observer.disconnect()\n }\n })\n },\n {\n rootMargin: '250px'\n }\n )\n\n obs.observe($el)\n }\n}\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.8\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=script&lang=js\"","<template>\n <span class=\"martan-rating\" :class=\"{ 'martan-rating--compact': isCompact }\">\n <template v-if=\"!isCompact\">\n <svg v-for=\"(star, index) in stars\" :key=\"index\" xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler\"\n :class=\"getStarClass(star)\" :width=\"fontSizeNumber\" :height=\"fontSizeNumber\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\"\n :fill=\"getStarFill(star, index)\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n :style=\"{ color: config.widget_rating.star_color }\">\n <defs v-if=\"star === 0.5\">\n <linearGradient :id=\"`gradient-${index}`\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"50%\" :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:1`\" />\n <stop offset=\"50%\" :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:0`\" />\n </linearGradient>\n </defs>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\"\n :fill=\"getStarFill(star, index)\" />\n </svg>\n\n <span class=\"martan-rating-text\" :style=\"{ color: 'var(--gray-dark)', fontSize: fontSize }\">{{ normalizeRating }} / 5</span>\n\n <span class=\"martan-rating-text\" :style=\"{ color: 'var(--gray)', fontSize: fontSize }\">({{ totalReviews }})</span>\n </template>\n\n <template v-else>\n <div class=\"martan-rating-compact\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler martan-rating-compact__star\" :width=\"fontSizeNumber\"\n :height=\"fontSizeNumber\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" :style=\"{ color: config.widget_rating.star_color }\">\n <defs>\n <linearGradient :id=\"`compact-gradient-${_uid}`\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"0%\" :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:1`\" />\n <stop :offset=\"`${compactFillPercentage}%`\"\n :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:1`\" />\n <stop :offset=\"`${compactFillPercentage}%`\"\n :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:0`\" />\n <stop offset=\"100%\" :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:0`\" />\n </linearGradient>\n </defs>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\"\n :fill=\"`url(#compact-gradient-${_uid})`\" />\n </svg>\n <span class=\"martan-rating-compact__text\" :style=\"{ fontSize: fontSize }\">{{ normalizeRating }} / 5</span>\n </div>\n </template>\n </span>\n</template>\n\n<script>\nimport { lightenColor } from '../../utils/lighten-color';\nimport { configProp } from '../../utils/configProps';\n\nexport default {\n name: 'Rating',\n\n props: {\n ...configProp,\n rating: {\n type: Number,\n default: 0\n },\n totalReviews: {\n type: Number,\n default: 0\n }\n },\n\n data() {\n return {\n stars: Array(5).fill(0)\n };\n },\n\n mounted() {\n this.updateStars();\n },\n\n computed: {\n isCompact() {\n return this.config.widget_rating.theme === 'compact';\n },\n fontSize() {\n const fontSize = this.config.widget_rating.font_size\n if (!fontSize) {\n return this.isCompact ? '16px' : '14px'\n }\n if (typeof fontSize === 'number') {\n return `${fontSize}px`\n }\n return fontSize\n },\n fontSizeNumber() {\n const fontSize = this.config.widget_rating.font_size\n if (!fontSize) {\n return this.isCompact ? 16 : 14\n }\n if (typeof fontSize === 'number') {\n return fontSize\n }\n const match = String(fontSize).match(/^(\\d+(?:\\.\\d+)?)/)\n return match ? parseFloat(match[1]) : (this.isCompact ? 16 : 14)\n },\n compactFillPercentage() {\n const rating = Math.max(0, Math.min(5, this.rating));\n\n if (rating <= 2) {\n return (rating / 2) * 25;\n } else if (rating <= 3) {\n return 25 + ((rating - 2) / 1.5) * 20;\n } else if (rating <= 4.5) {\n return 45 + ((rating - 3.5) / 1) * 25;\n } else {\n return 70 + ((rating - 4.5) / 0.5) * 30;\n }\n },\n starColor() {\n return this.config.widget_rating.star_color || '#ffc107';\n },\n ratingText() {\n return this.formatNumber(this.totalReviews);\n },\n colorClosest() {\n return lightenColor(this.config.widget_rating.star_color, 0.3);\n },\n normalizeRating() {\n if (Number.isInteger(this.rating)) {\n return this.rating;\n }\n return Number(this.rating.toFixed(1));\n }\n },\n\n methods: {\n lightenColor,\n formatNumber(num) {\n if (num >= 1000000) {\n return (num / 1000000).toFixed(1).replace(/\\.0$/, '') + 'M';\n } else if (num >= 1000) {\n return (num / 1000).toFixed(1).replace(/\\.0$/, '') + 'k';\n } else {\n return num.toString();\n }\n },\n\n updateStars() {\n const rating = Math.max(0, Math.min(5, this.rating));\n this.stars = Array(5).fill(0).map((_, index) => {\n const starPosition = index + 1;\n if (rating >= starPosition) {\n return 1;\n } else if (rating > index) {\n return 0.5;\n } else {\n return 0;\n }\n });\n },\n\n getStarClass(star) {\n if (star === 1) {\n return 'icon-tabler-star-filled';\n } else if (star === 0.5) {\n return 'icon-tabler-star-half';\n } else {\n return 'icon-tabler-star';\n }\n },\n\n getStarFill(star, index) {\n if (star === 1) {\n return this.starColor;\n } else if (star === 0.5) {\n return `url(#gradient-${index})`;\n } else {\n return 'none';\n }\n }\n },\n\n watch: {\n rating: 'updateStars'\n }\n};\n</script>\n\n<style lang=\"css\">\n.martan-rating {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n.martan-rating-text {\n font-size: 12px;\n font-weight: 600;\n color: #6c757d;\n}\n\n.martan-rating--compact {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.martan-rating-compact {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.martan-rating-compact__star {\n flex-shrink: 0;\n}\n\n.martan-rating-compact__text {\n font-size: 12px;\n font-weight: 600;\n color: var(--gray-dark);\n white-space: nowrap;\n}\n</style>\n","import { render, staticRenderFns } from \"./Rating.vue?vue&type=template&id=2033b273\"\nimport script from \"./Rating.vue?vue&type=script&lang=js\"\nexport * from \"./Rating.vue?vue&type=script&lang=js\"\nimport style0 from \"./Rating.vue?vue&type=style&index=0&id=2033b273&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"martan-rating\",class:{ 'martan-rating--compact': _vm.isCompact }},[(!_vm.isCompact)?[_vm._l((_vm.stars),function(star,index){return _c('svg',{key:index,staticClass:\"icon icon-tabler\",class:_vm.getStarClass(star),style:({ color: _vm.config.widget_rating.star_color }),attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":_vm.fontSizeNumber,\"height\":_vm.fontSizeNumber,\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"2\",\"stroke\":\"currentColor\",\"fill\":_vm.getStarFill(star, index),\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[(star === 0.5)?_c('defs',[_c('linearGradient',{attrs:{\"id\":(\"gradient-\" + index),\"x1\":\"0%\",\"y1\":\"0%\",\"x2\":\"100%\",\"y2\":\"0%\"}},[_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:1\")),attrs:{\"offset\":\"50%\"}}),_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:0\")),attrs:{\"offset\":\"50%\"}})],1)],1):_vm._e(),_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\",\"fill\":_vm.getStarFill(star, index)}})])}),_c('span',{staticClass:\"martan-rating-text\",style:({ color: 'var(--gray-dark)', fontSize: _vm.fontSize })},[_vm._v(_vm._s(_vm.normalizeRating)+\" / 5\")]),_c('span',{staticClass:\"martan-rating-text\",style:({ color: 'var(--gray)', fontSize: _vm.fontSize })},[_vm._v(\"(\"+_vm._s(_vm.totalReviews)+\")\")])]:[_c('div',{staticClass:\"martan-rating-compact\"},[_c('svg',{staticClass:\"icon icon-tabler martan-rating-compact__star\",style:({ color: _vm.config.widget_rating.star_color }),attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":_vm.fontSizeNumber,\"height\":_vm.fontSizeNumber,\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"2\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('defs',[_c('linearGradient',{attrs:{\"id\":(\"compact-gradient-\" + _vm._uid),\"x1\":\"0%\",\"y1\":\"0%\",\"x2\":\"100%\",\"y2\":\"0%\"}},[_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:1\")),attrs:{\"offset\":\"0%\"}}),_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:1\")),attrs:{\"offset\":(_vm.compactFillPercentage + \"%\")}}),_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:0\")),attrs:{\"offset\":(_vm.compactFillPercentage + \"%\")}}),_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:0\")),attrs:{\"offset\":\"100%\"}})],1)],1),_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\",\"fill\":(\"url(#compact-gradient-\" + _vm._uid + \")\")}})]),_c('span',{staticClass:\"martan-rating-compact__text\",style:({ fontSize: _vm.fontSize })},[_vm._v(_vm._s(_vm.normalizeRating)+\" / 5\")])])]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from 'axios'\nimport Vue from 'vue'\n\nimport RatingsComponent from './Rating.vue'\n\nimport { MARTAN_API } from '../..'\n\nclass Ratings {\n constructor (options) {\n this.list = []\n this.offset = 0\n this.loading = false\n this.options = options\n }\n\n async init () {\n try {\n await this.fetchRatings()\n await this.mounted()\n this.listenerForSearchPage()\n } catch (error) {\n console.error('@Martan/Ratings init error', error)\n }\n }\n\n async fetchRatings () {\n if (this.loading) {\n return Promise.resolve()\n }\n this.loading = true\n if (this.loadFromLocalStorage()) {\n this.loading = false\n return Promise.resolve()\n }\n const url = `${MARTAN_API}/api/v1/ratings.json?expand=metrics`\n return axios({\n url,\n headers: {\n 'X-Store-Id': this.options.store_id,\n 'X-Api-Key': this.options.web_id\n }\n })\n .then(({ data }) => {\n this.list = data.result || []\n return this.saveToLocalStorage({\n result: data.result,\n timestamp: Date.now()\n })\n })\n .catch((err) => {\n console.error('Ratings fetchRatings error', err)\n })\n }\n\n loadFromLocalStorage () {\n try {\n const fromLocalStorage = window.localStorage.getItem('martan_ratings')\n if (fromLocalStorage) {\n const data = JSON.parse(fromLocalStorage)\n if (\n data &&\n data.result &&\n data.timestamp &&\n Date.now() - data.timestamp < 1000 * 60 * 60 * 24\n ) {\n this.list = data.result\n return true\n } else {\n return false\n }\n }\n } catch (error) {\n console.error('Ratings loadFromLocalStorage error', error)\n return false\n }\n }\n\n saveToLocalStorage (data) {\n window.localStorage.setItem('martan_ratings', JSON.stringify(data))\n }\n\n getProductRatingFromList (sku) {\n if (!sku || !this.list || this.list.length === 0) {\n return null\n }\n\n return this.list.find((rating) => rating.sku === sku)\n }\n\n getClasses () {\n const classes = ['.product-card__rating', '.mt-review-average']\n if (this.options.widget_rating.custom_class) {\n classes.push(this.options.widget_rating.custom_class)\n }\n return classes\n }\n\n async mounted () {\n const classes = this.getClasses()\n const elements = document.querySelectorAll(classes.join(','))\n const promises = []\n Array.from(elements).forEach((element) => {\n promises.push(this.renderRating(element))\n })\n await Promise.all(promises).then(() => {\n this.listenerForNewRatings()\n })\n }\n\n async renderRating (element) {\n return new Promise((resolve) => {\n if (!element.dataset) return resolve()\n const product = this.getProductFromElement(element)\n if (!product) return resolve()\n\n const rating = this.getProductRatingFromList(product)\n if (\n (rating &&\n rating.total === 0 &&\n this.options.widget_rating.display === 'gt1') ||\n (!rating && this.options.widget_rating.display === 'gt1')\n ) {\n return resolve()\n }\n const $ratingEl = document.createElement('div')\n const options = this.options\n new Vue({\n render (h) {\n return h(RatingsComponent, {\n props: {\n rating: rating && rating.average ? rating.average : 0,\n totalReviews: rating && rating.total ? rating.total : 0,\n config: options\n }\n })\n }\n }).$mount(element)\n element.setAttribute('data-martan-rating-id', this.generateId())\n element.appendChild($ratingEl)\n return resolve()\n })\n }\n\n generateId (prefix) {\n return Math.random()\n .toString(36)\n .replace('0.', prefix || '')\n }\n\n listenerForNewRatings () {\n const options = {\n childList: true,\n attributes: false,\n subtree: false\n }\n\n const observer = new window.MutationObserver(\n this.callbackForNewRatings.bind(this)\n )\n observer.observe(document.body, options)\n }\n\n callbackForNewRatings (mutations, observer) {\n mutations.forEach((mutation) => {\n if (mutation.type === 'childList') {\n mutation.addedNodes.forEach((node) => {\n if (this.isMartanElement(node) && this.getProductFromElement(node)) {\n this.renderRating(node)\n }\n })\n }\n })\n }\n\n isMartanElement (element) {\n let isIn = false\n const classes = this.getClasses()\n if (element.classList.length) {\n element.classList.forEach((value) => {\n if (classes.includes(value)) {\n isIn = true\n }\n })\n }\n\n return isIn\n }\n\n getProductFromElement (element) {\n if (!element.dataset) return null\n return (\n element.dataset.martanProductId ||\n element.dataset.product ||\n element.dataset.sku ||\n element.dataset.martanProductSku ||\n null\n )\n }\n\n listenerForSearchPage () {\n const $searchEngine = document.getElementById('search-engine')\n if (!$searchEngine || !this.options.widget_rating.search_page) {\n return false\n }\n\n const callback = () => {\n searchEngineObserver.disconnect()\n const $retailRow = $searchEngine.querySelectorAll(\n '.search-engine__retail > .row'\n )[0]\n\n const rowObserver = new window.MutationObserver(() => {\n setTimeout(() => {\n this.mounted()\n }, 100)\n rowObserver.disconnect()\n })\n rowObserver.observe($retailRow, {\n childList: true,\n subtree: true\n })\n }\n\n const searchEngineObserver = new window.MutationObserver(callback)\n searchEngineObserver.observe($searchEngine, {\n attributes: true,\n childList: true\n })\n }\n}\n\nexport default Ratings\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=script&lang=js\"","<template>\n <div v-show=\"total > 0\" class=\"martan-reviews container\">\n <p class=\"lead\" v-if=\"title\">\n <a href=\"#reviews\" :name=\"title || 'reviews'\">#</a>\n {{ title }}\n </p>\n\n <component :is=\"config.widget_review.header_layout\" :config=\"config\" :rating=\"average\"\n :recommended=\"totalRecommended\" :average=\"averageTotal\" :total-rating=\"total\" @rating-selected=\"updateOrderBy\"\n :list=\"list\" :order-rating=\"orderRating\" :offset=\"offset\" />\n\n <div :class=\"config.widget_review.reviews_layout\">\n <transition-group name=\"review-list\" tag=\"div\" :class=\"config.widget_review.reviews_layout\">\n <review-card\n v-for=\"review in list\"\n :key=\"review.id\"\n :review=\"review\"\n :star-color=\"config.widget_review.star_color\"\n class=\"masonry-item\"\n @openQuickview=\"openQuickview\"\n />\n </transition-group>\n </div>\n\n <div class=\"actions\" v-if=\"showLoadMore()\">\n <div class=\"pagination\">\n <button class=\"btn btn-primary\" @click=\"loadMore\" :disabled=\"loading\">\n {{ loading ? \"Carregando..\" : \"Mostrar mais avaliações\" }}\n </button>\n </div>\n </div>\n\n <Quickview @onClose=\"onCloseQuickview\" :isOpen=\"isOpenQuickView\" :review=\"selectedReview\" :starColor=\"config.widget_review.star_color\" />\n\n <div class=\"credit\">\n Avaliações reais, auditadas por\n <a :href=\"getUrl\" target=\"_blank\" rel=\"noopener\">MARTAN.app</a>\n </div>\n </div>\n</template>\n\n<script>\nimport { MARTAN_API } from \"../..\";\n\nimport Ratings from \"../ratings\";\n\nimport { configProp } from \"../../utils/configProps\";\n\nexport default {\n name: \"Reviews\",\n\n props: {\n ...configProp,\n product: {\n type: String,\n required: true,\n }\n },\n\n data() {\n return {\n list: [],\n total: 0,\n limit: 4,\n offset: 0,\n\n loading: false,\n\n orderRating: null,\n orderReviews: null,\n\n $isSorting: false,\n $count: null,\n hasMore: false,\n\n averageTotal: 0,\n totalRecommended: null,\n average: {\n one: 0,\n two: 0,\n three: 0,\n four: 0,\n five: 0,\n },\n\n isOpenQuickView: false,\n selectedReview: null,\n isScrollable: false,\n\n $listEl: null,\n };\n },\n\n watch: {\n onlyWithPictures: function (newVal) {\n if (!this.$listEl && newVal.length > 0) {\n this.$listEl = document.querySelector(\".reviews-with-pictures\");\n }\n },\n orderRating: function (oldOrder, newOrder) {\n if (oldOrder !== newOrder) {\n this.list = [];\n this.fetchReviews();\n }\n },\n\n orderReviews: function (oldOrder, newOrder) {\n if (oldOrder !== newOrder) {\n this.list = [];\n this.fetchReviews();\n }\n },\n\n limit: function () {\n this.fetchReviews();\n },\n\n offset: function () {\n this.fetchReviews();\n },\n },\n\n computed: {\n i19basedOn$1Reviews: () => \"Baseado em $1 avaliações\",\n i19basedOn$1Review: () => \"Baseado em $1 avaliação\",\n i19noReview: () => \"Nenhuma avaliação\",\n onlyWithPictures() {\n return this.list.filter(\n (review) => review.pictures && review.pictures.length > 0\n );\n },\n getUrl() {\n const url = new URL(window.location.href);\n const ref = url.origin;\n return `https://www.martan.app/?ref=${ref}`;\n },\n title() {\n if (this.config.widget_review.title) {\n return this.config.widget_review.title;\n }\n return null;\n }\n },\n\n methods: {\n fetchReviews() {\n const params = {\n limit: this.limit,\n offset: this.offset,\n sku: this.product,\n };\n\n if (this.orderReviews) {\n params.orderBy = this.orderReviews;\n params.limit = this.limit;\n params.offset = 0;\n }\n\n if (this.orderRating) {\n params.rating = this.orderRating;\n }\n\n this.$count = null;\n this.loading = true;\n\n axios({\n url: MARTAN_API + \"/api/v1/reviews.json\",\n headers: {\n \"X-Store-Id\": this.config.store_id,\n \"X-Api-Key\": this.config.web_id,\n },\n params,\n })\n .then(({ data }) => {\n const { result, count } = data;\n let list = [];\n\n this.hasMore = result.length >= this.limit;\n \n if (\n (Array.isArray(this.list) && !this.orderReviews) ||\n (this.orderReviews && this.$isSorting)\n ) {\n for (const element of result) {\n const isIn = this.list.some((review) => review.id === element.id);\n\n if (!isIn) {\n this.list.push(element);\n }\n }\n\n list = [...this.list];\n } else if (\n (Array.isArray(this.list) && this.orderReviews) ||\n this.orderRating\n ) {\n list = result;\n this.$isSorting = false;\n }\n\n return { count, list };\n })\n\n .then(({ count, list }) => {\n if (this.orderRating) {\n this.$count = count;\n } else {\n this.total = count;\n }\n this.list = list;\n\n return list;\n })\n\n .catch((err) => {\n console.error(\"Failed to load resource from Martan\", err);\n })\n\n .finally(() => {\n this.loading = false;\n });\n },\n\n async fetchAverage() {\n try {\n const rating = new Ratings({\n store_id: this.config.store_id,\n web_id: this.config.web_id,\n })\n await rating.fetchRatings()\n const data = rating.getProductRatingFromList(this.product);\n if (data) {\n const { average, rate, recommended_percentage } = data;\n Object.assign(this.average, rate);\n this.averageTotal = average;\n this.totalRecommended = recommended_percentage;\n }\n } catch (error) {\n console.error('Failed to load average from Martan', error);\n }\n },\n\n loadMore() {\n if (this.orderReviews) {\n this.limit = this.limit + this.limit;\n } else {\n this.offset++;\n }\n },\n\n showLoadMore() {\n if (this.loading) {\n return false;\n }\n\n if (!this.hasMore) {\n return false;\n }\n\n if (this.orderRating) {\n return this.$count > 0 && this.list.length < this.$count;\n } else {\n return this.total > 0 && this.list.length < this.total;\n }\n },\n\n updateOrderBy(rating) {\n if (rating === this.orderRating) {\n this.orderRating = null;\n } else {\n this.offset = 0;\n this.orderRating = rating;\n }\n this.hasMore = true;\n },\n\n onSort({ order }) {\n this.orderReviews = order;\n this.hasMore = true;\n },\n\n openQuickview: function ({ review }) {\n this.selectedReview = review;\n this.isOpenQuickView = true;\n },\n\n onCloseQuickview: function () {\n this.isOpenQuickView = false;\n this.selectedReview = null;\n },\n\n checkScrollability() {\n const list = this.$listEl;\n if (!list) return;\n\n this.isScrollable = list.scrollWidth > list.clientWidth;\n },\n scrollLeft() {\n const list = this.$listEl;\n if (!list) return;\n\n list.scrollBy({ left: -1500, behavior: \"smooth\" });\n },\n scrollRight() {\n const list = this.$listEl;\n if (!list) return;\n\n list.scrollBy({ left: 1500, behavior: \"smooth\" });\n },\n\n initMasonry() {\n const supportsMasonry = CSS.supports('grid-template-rows', 'masonry');\n\n if (!supportsMasonry) {\n const gridContainer = this.$el.querySelector('.list-grid');\n if (gridContainer) {\n gridContainer.classList.add('list-grid--masonry-fallback');\n\n const cards = gridContainer.querySelectorAll('review-card');\n cards.forEach(card => {\n card.classList.add('masonry-item');\n });\n }\n } else {\n const gridContainer = this.$el.querySelector('.list-grid');\n if (gridContainer) {\n gridContainer.classList.remove('list-grid--masonry-fallback');\n }\n }\n },\n },\n\n mounted() {\n Promise.all([this.fetchAverage(), this.fetchReviews()]).then(() => {\n this.checkScrollability();\n this.initMasonry();\n window.addEventListener(\"resize\", () => {\n this.checkScrollability();\n this.initMasonry();\n });\n });\n },\n\n beforeDestroy() {\n window.removeEventListener(\"resize\", this.checkScrollability);\n },\n\n components: {\n ReviewCard: () => import(\"./components/ReviewCard.vue\"),\n Quickview: () => import(\"./components/Quickview.vue\"),\n Compact: () => import(\"./headers/Compact.vue\"),\n Center: () => import(\"./headers/Center.vue\"),\n Summary: () => import(\"./headers/Summary.vue\"),\n Padrao: () => import(\"./headers/Padrao.vue\"),\n Histogram: () => import(\"./headers/Histogram.vue\"),\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.martan-reviews {\n color: #444;\n .widget-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n\n &__score {\n max-width: 500px;\n width: 100%;\n }\n\n &__score-average {\n font-size: 1.25rem;\n color: #444;\n }\n }\n\n .list-expanded {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n\n .list-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n grid-template-rows: masonry;\n gap: 1rem;\n max-width: 1200px;\n margin: 0 auto;\n align-items: start;\n\n @media (max-width: 768px) {\n grid-template-columns: 1fr;\n grid-template-rows: masonry;\n max-width: 100%;\n gap: 0.75rem;\n }\n\n @media (min-width: 769px) and (max-width: 1200px) {\n grid-template-columns: repeat(2, 1fr);\n grid-template-rows: masonry;\n max-width: 100%;\n }\n\n @media (min-width: 1201px) {\n grid-template-columns: repeat(2, minmax(0, 580px));\n grid-template-rows: masonry;\n justify-content: center;\n }\n\n @supports not (grid-template-rows: masonry) {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n max-height: none;\n align-content: flex-start;\n\n @media (min-width: 769px) {\n flex-direction: row;\n align-content: flex-start;\n }\n }\n }\n\n .list-grid--masonry-fallback {\n display: block;\n column-count: 1;\n column-gap: 1rem;\n\n @media (min-width: 769px) {\n column-count: 2;\n }\n\n @media (min-width: 1201px) {\n column-count: 2;\n max-width: 1200px;\n margin: 0 auto;\n }\n\n .masonry-item {\n break-inside: avoid;\n margin-bottom: 1rem;\n display: inline-block;\n width: 100%;\n }\n }\n\n .reviews-with-pictures {\n display: flex;\n gap: 0.5rem;\n flex-direction: column;\n background-color: rgba(255, 236, 219, 0.102);\n border: 1px solid rgba(255, 236, 219, 0.102);\n border-radius: 0.25rem;\n display: flex;\n font-size: 80%;\n margin-top: 1rem;\n padding: 2rem;\n width: 100%;\n\n .list {\n display: flex;\n gap: 1rem;\n flex-direction: row;\n overflow-x: auto;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n img {\n width: 80px;\n height: 80px;\n object-fit: cover;\n border-radius: 0.25rem;\n cursor: pointer;\n }\n }\n }\n\n .credit {\n margin-top: 1rem;\n font-size: 0.75rem;\n line-height: 1rem;\n text-align: right;\n color: rgb(161 161 170 / 1);\n\n a {\n color: rgb(15 23 42 / 1) !important;\n }\n }\n\n .actions {\n display: flex;\n justify-content: center;\n margin-top: 1rem;\n margin-bottom: 1rem;\n }\n\n .review-list-enter-active,\n .review-list-leave-active {\n transition: all 0.3s ease;\n }\n\n .review-list-enter-from {\n opacity: 0;\n transform: translateY(20px);\n }\n\n .review-list-leave-to {\n opacity: 0;\n transform: translateY(-20px);\n }\n\n .review-list-move {\n transition: transform 0.3s ease;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./Reviews.vue?vue&type=template&id=1f781a3f&scoped=true\"\nimport script from \"./Reviews.vue?vue&type=script&lang=js\"\nexport * from \"./Reviews.vue?vue&type=script&lang=js\"\nimport style0 from \"./Reviews.vue?vue&type=style&index=0&id=1f781a3f&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f781a3f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.total > 0),expression:\"total > 0\"}],staticClass:\"martan-reviews container\"},[(_vm.title)?_c('p',{staticClass:\"lead\"},[_c('a',{attrs:{\"href\":\"#reviews\",\"name\":_vm.title || 'reviews'}},[_vm._v(\"#\")]),_vm._v(\" \"+_vm._s(_vm.title)+\" \")]):_vm._e(),_c(_vm.config.widget_review.header_layout,{tag:\"component\",attrs:{\"config\":_vm.config,\"rating\":_vm.average,\"recommended\":_vm.totalRecommended,\"average\":_vm.averageTotal,\"total-rating\":_vm.total,\"list\":_vm.list,\"order-rating\":_vm.orderRating,\"offset\":_vm.offset},on:{\"rating-selected\":_vm.updateOrderBy}}),_c('div',{class:_vm.config.widget_review.reviews_layout},[_c('transition-group',{class:_vm.config.widget_review.reviews_layout,attrs:{\"name\":\"review-list\",\"tag\":\"div\"}},_vm._l((_vm.list),function(review){return _c('review-card',{key:review.id,staticClass:\"masonry-item\",attrs:{\"review\":review,\"star-color\":_vm.config.widget_review.star_color},on:{\"openQuickview\":_vm.openQuickview}})}),1)],1),(_vm.showLoadMore())?_c('div',{staticClass:\"actions\"},[_c('div',{staticClass:\"pagination\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"disabled\":_vm.loading},on:{\"click\":_vm.loadMore}},[_vm._v(\" \"+_vm._s(_vm.loading ? \"Carregando..\" : \"Mostrar mais avaliações\")+\" \")])])]):_vm._e(),_c('Quickview',{attrs:{\"isOpen\":_vm.isOpenQuickView,\"review\":_vm.selectedReview,\"starColor\":_vm.config.widget_review.star_color},on:{\"onClose\":_vm.onCloseQuickview}}),_c('div',{staticClass:\"credit\"},[_vm._v(\" Avaliações reais, auditadas por \"),_c('a',{attrs:{\"href\":_vm.getUrl,\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(\"MARTAN.app\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Questions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Questions.vue?vue&type=script&lang=js\"","<template>\n <div class=\"martan-questions container\" v-if=\"config.widget_questions.is_enabled\">\n <p class=\"lead\" v-if=\"title\">\n <a href=\"#questions\" :name=\"title || 'Perguntas e respostas'\">#</a>\n {{ title }}\n </p>\n\n <div class=\"questions-search\">\n <div class=\"search-input-group\">\n <input type=\"text\" v-model=\"searchQuery\" placeholder=\"Busque uma pergunta ou palavra-chave...\"\n class=\"form-control\" />\n\n <div class=\"questions-footer\" v-if=\"config.widget_questions.enable_new_questions\">\n <button type=\"button\" class=\"view-more-link\" @click=\"askQuestion\" :aria-expanded=\"showIframe\"\n aria-controls=\"question-iframe\" aria-label=\"Abrir formulário para fazer uma nova pergunta\">\n Não encontrou a resposta para sua pergunta? Faça uma pergunta.\n </button>\n </div>\n\n <div v-if=\"showIframe\" class=\"iframe-container\">\n <iframe id=\"question-iframe\" :src=\"iframeUrl\" width=\"580\" :height=\"iframeHeight\" frameborder=\"0\"\n class=\"question-iframe\" title=\"Formulário para fazer nova pergunta\" @error=\"handleIframeError\">\n </iframe>\n </div>\n </div>\n </div>\n\n <div class=\"questions-list\" v-if=\"list.length > 0\">\n <div v-for=\"question in list\" :key=\"question._id\" class=\"question-item\">\n <div class=\"question-text\">\n {{ question.body }}\n </div>\n <div class=\"answer-container\" v-if=\"question.reply\">\n <div class=\"subtle-hook\">\n <div class=\"hook-l-shape\"></div>\n </div>\n <div class=\"answer-text\">\n {{ question.reply.body }}\n </div>\n </div>\n </div>\n </div>\n\n <div v-else-if=\"!loading && list.length === 0\" class=\"no-questions\">\n Nenhuma pergunta encontrada para este produto.\n </div>\n\n <div v-if=\"loading\" class=\"loading\">\n Carregando perguntas...\n </div>\n\n <div class=\"actions\" v-if=\"list.length < total\">\n <div class=\"pagination\">\n <button class=\"btn btn-primary\" @click=\"loadMoreQuestions\" :disabled=\"loading\">\n {{ loading ? \"Carregando..\" : \"Mostrar mais perguntas\" }}\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { MARTAN_API, MARTAN_QUESTIONS_WEBUI } from \"../..\";\n\nimport { configProp } from \"../../utils/configProps\";\n\nexport default {\n name: \"Questions\",\n\n props: {\n ...configProp,\n product: {\n type: String,\n required: true,\n }\n },\n\n data() {\n return {\n list: [],\n total: 0,\n limit: 4,\n offset: 0,\n searchQuery: '',\n loading: false,\n searchTimeout: null,\n showIframe: false,\n iframeError: null,\n iframeHeight: 215,\n };\n },\n\n computed: {\n title() {\n const config = this.config || {};\n if (!config.widget_questions || !config.widget_questions.title) {\n return null;\n }\n return config.widget_questions.title;\n },\n iframeUrl() {\n let domain = null;\n let stylesheet = null;\n if (window.storefront && window.storefront.settings) {\n stylesheet = encodeURIComponent(`https://${window.storefront.settings.domain}/storefront.css`)\n domain = window.storefront.settings.domain;\n }\n if (!window.storefront || !window.storefront.context || !window.storefront.context.body) {\n return '';\n }\n const productID = window.storefront.context.body._id;\n const productSKU = window.storefront.context.body.sku;\n const webId = this.config.web_id;\n const storeId = this.config.store_id;\n const origin = window.location.origin || domain;\n return `${MARTAN_QUESTIONS_WEBUI}/?product=${productID}&sku=${productSKU}&web_id=${webId}&store_id=${storeId}&origin=${encodeURIComponent(origin)}&stylesheet=${stylesheet}`;\n }\n },\n\n watch: {\n searchQuery(newValue) {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n if (!newValue.trim()) {\n this.offset = 0;\n this.fetchQuestions();\n return;\n }\n\n this.searchTimeout = setTimeout(() => {\n this.offset = 0;\n this.fetchQuestions();\n }, 500);\n }\n },\n\n mounted() {\n this.fetchQuestions();\n this.setupIframeMessageListener();\n },\n\n beforeDestroy() {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.removeIframeMessageListener();\n },\n\n methods: {\n fetchQuestions() {\n const params = {\n limit: this.limit,\n offset: this.offset,\n sku: this.product,\n expand: 'reply',\n };\n\n if (this.searchQuery.trim()) {\n params.terms = this.searchQuery.trim();\n }\n\n this.loading = true;\n axios({\n url: MARTAN_API + \"/api/v1/questions.json\",\n headers: {\n \"X-Store-Id\": this.config.store_id,\n \"X-Api-Key\": this.config.web_id,\n },\n params,\n })\n .then(({ data }) => {\n const { result, meta } = data;\n if (this.offset === 0) {\n this.list = result;\n } else {\n this.list = [...this.list, ...result];\n }\n\n this.total = meta.count;\n })\n .finally(() => {\n this.loading = false;\n });\n },\n\n loadMoreQuestions() {\n this.offset += this.limit;\n this.fetchQuestions();\n },\n\n askQuestion() {\n this.showIframe = !this.showIframe;\n if (this.showIframe) {\n this.iframeError = null;\n }\n },\n\n handleIframeError() {\n this.iframeError = 'Erro ao carregar o iframe. Verifique se o servidor está rodando e se não há restrições de X-Frame-Options.';\n },\n\n clearSearch() {\n this.searchQuery = '';\n this.offset = 0;\n this.fetchQuestions();\n },\n\n setupIframeMessageListener() {\n this.messageHandler = (event) => {\n if (event.data.type === 'iframe_height_change') {\n this.iframeHeight = event.data.height;\n }\n };\n window.addEventListener('message', this.messageHandler);\n },\n\n removeIframeMessageListener() {\n if (this.messageHandler) {\n window.removeEventListener('message', this.messageHandler);\n }\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.martan-questions {\n margin-bottom: 3rem;\n\n .questions-search {\n margin-bottom: 20px;\n\n .search-input-group {\n max-width: 500px;\n\n .search-input {\n flex: 1;\n padding: 12px 16px;\n border: 1px solid #e0e0e0;\n border-radius: 8px 0 0 8px;\n border-right: none;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n\n &:focus {\n border-color: #6699ff;\n }\n\n &::placeholder {\n color: #999;\n }\n }\n\n .search-button {\n padding: 12px 16px;\n background-color: #6699ff;\n border: 1px solid #6699ff;\n border-radius: 0 8px 8px 0;\n color: white;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s;\n\n &:hover:not(:disabled) {\n background-color: #5588ee;\n }\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n }\n }\n }\n\n .questions-list {\n .question-item {\n margin-bottom: 20px;\n padding-bottom: 20px;\n border-bottom: 1px solid #f0f0f0;\n\n &:last-child {\n border-bottom: none;\n margin-bottom: 0;\n padding-bottom: 0;\n }\n\n .question-text {\n color: #333;\n font-weight: 500;\n line-height: 1.4;\n margin-bottom: 12px;\n font-size: .9375rem;\n }\n\n .answer-container {\n position: relative;\n display: flex;\n align-items: flex-start;\n margin-top: 8px;\n\n .subtle-hook {\n position: relative;\n margin-right: 16px;\n margin-top: 6px;\n flex-shrink: 0;\n width: 12px;\n height: 12px;\n\n .hook-l-shape {\n position: relative;\n width: 12px;\n height: 12px;\n\n &::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n width: 1px;\n height: 8px;\n background-color: #d0d0d0;\n }\n\n &::after {\n content: '';\n position: absolute;\n left: 0;\n top: 7px;\n width: 6px;\n height: 1px;\n background-color: #d0d0d0;\n }\n }\n }\n\n .answer-text {\n color: #666;\n line-height: 1.4;\n flex: 1;\n font-weight: 300;\n }\n }\n }\n }\n\n .no-questions {\n text-align: center;\n color: #999;\n padding: 40px 20px;\n font-style: italic;\n }\n\n .loading {\n text-align: center;\n color: #666;\n padding: 20px;\n }\n\n .questions-footer {\n .view-more-link {\n background: none;\n border: none;\n color: #6699ff;\n text-decoration: none;\n font-size: 14px;\n cursor: pointer;\n padding: 0;\n font-family: inherit;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:focus {\n outline: 2px solid #6699ff;\n outline-offset: 2px;\n border-radius: 2px;\n }\n }\n }\n\n .iframe-container {\n margin-top: 20px;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n overflow: hidden;\n max-width: 580px;\n\n .question-iframe {\n width: 100%;\n border: none;\n display: block;\n }\n }\n\n .ask-question-section {\n margin-top: 30px;\n\n .ask-question-button {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 12px 20px;\n background-color: #e6f2ff;\n border: 1px solid #b3d9ff;\n border-radius: 8px;\n color: #6699ff;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s;\n\n &:hover {\n background-color: #d1e7ff;\n border-color: #99ccff;\n }\n\n svg {\n flex-shrink: 0;\n }\n }\n }\n\n .actions {\n display: flex;\n justify-content: center;\n margin-top: 1rem;\n margin-bottom: 1rem;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./Questions.vue?vue&type=template&id=009bb4ce&scoped=true\"\nimport script from \"./Questions.vue?vue&type=script&lang=js\"\nexport * from \"./Questions.vue?vue&type=script&lang=js\"\nimport style0 from \"./Questions.vue?vue&type=style&index=0&id=009bb4ce&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"009bb4ce\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.config.widget_questions.is_enabled)?_c('div',{staticClass:\"martan-questions container\"},[(_vm.title)?_c('p',{staticClass:\"lead\"},[_c('a',{attrs:{\"href\":\"#questions\",\"name\":_vm.title || 'Perguntas e respostas'}},[_vm._v(\"#\")]),_vm._v(\" \"+_vm._s(_vm.title)+\" \")]):_vm._e(),_c('div',{staticClass:\"questions-search\"},[_c('div',{staticClass:\"search-input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchQuery),expression:\"searchQuery\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"placeholder\":\"Busque uma pergunta ou palavra-chave...\"},domProps:{\"value\":(_vm.searchQuery)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.searchQuery=$event.target.value}}}),(_vm.config.widget_questions.enable_new_questions)?_c('div',{staticClass:\"questions-footer\"},[_c('button',{staticClass:\"view-more-link\",attrs:{\"type\":\"button\",\"aria-expanded\":_vm.showIframe,\"aria-controls\":\"question-iframe\",\"aria-label\":\"Abrir formulário para fazer uma nova pergunta\"},on:{\"click\":_vm.askQuestion}},[_vm._v(\" Não encontrou a resposta para sua pergunta? Faça uma pergunta. \")])]):_vm._e(),(_vm.showIframe)?_c('div',{staticClass:\"iframe-container\"},[_c('iframe',{staticClass:\"question-iframe\",attrs:{\"id\":\"question-iframe\",\"src\":_vm.iframeUrl,\"width\":\"580\",\"height\":_vm.iframeHeight,\"frameborder\":\"0\",\"title\":\"Formulário para fazer nova pergunta\"},on:{\"error\":_vm.handleIframeError}})]):_vm._e()])]),(_vm.list.length > 0)?_c('div',{staticClass:\"questions-list\"},_vm._l((_vm.list),function(question){return _c('div',{key:question._id,staticClass:\"question-item\"},[_c('div',{staticClass:\"question-text\"},[_vm._v(\" \"+_vm._s(question.body)+\" \")]),(question.reply)?_c('div',{staticClass:\"answer-container\"},[_vm._m(0,true),_c('div',{staticClass:\"answer-text\"},[_vm._v(\" \"+_vm._s(question.reply.body)+\" \")])]):_vm._e()])}),0):(!_vm.loading && _vm.list.length === 0)?_c('div',{staticClass:\"no-questions\"},[_vm._v(\" Nenhuma pergunta encontrada para este produto. \")]):_vm._e(),(_vm.loading)?_c('div',{staticClass:\"loading\"},[_vm._v(\" Carregando perguntas... \")]):_vm._e(),(_vm.list.length < _vm.total)?_c('div',{staticClass:\"actions\"},[_c('div',{staticClass:\"pagination\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"disabled\":_vm.loading},on:{\"click\":_vm.loadMoreQuestions}},[_vm._v(\" \"+_vm._s(_vm.loading ? \"Carregando..\" : \"Mostrar mais perguntas\")+\" \")])])]):_vm._e()]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"subtle-hook\"},[_c('div',{staticClass:\"hook-l-shape\"})])}]\n\nexport { render, staticRenderFns }","import Reviews from './widgets/reviews'\nimport Questions from './widgets/questions'\nimport Ratings from './widgets/ratings'\n\nexport const MARTAN_API = 'https://widgets.appmartan.com.br'\nexport const MARTAN_QUESTIONS_WEBUI = 'https://create-questions.martan.app'\n\nexport default (options) => {\n if (!options || !options.store_id || !options.web_id) {\n console.error(\n new Error(\n \"Can't setup Martan widget without `martanStoreId` and `martanWebId`\"\n )\n )\n\n return\n }\n if (options.widget_questions && options.widget_questions.is_enabled) {\n Questions(options)\n }\n if (options.widget_review && options.widget_review.is_enabled) {\n Reviews(options)\n }\n if (options.widget_rating && options.widget_rating.is_enabled) {\n new Ratings(options).init()\n }\n}\n","import widgetInitializer from '../../utils/widget-initializer'\nimport Component from './Questions.vue'\n\nexport default (options = {}, elId = 'questions_widget') => {\n const defaultConfig = {\n widget_questions: null\n }\n\n return widgetInitializer(options, elId, Component, defaultConfig)\n}\n","import widgetInitializer from '../../utils/widget-initializer'\nimport Reviews from './Reviews.vue'\n\nexport default (options = {}, elId = 'reviews_widget') => {\n return widgetInitializer(options, elId, Reviews)\n}\n","module.exports = undefined;","module.exports = undefined;","module.exports = undefined;"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://widgetMartan/webpack/bootstrap","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/utils.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/core/AxiosError.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/toFormData.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://widgetMartan/./src/utils/configProps.js","webpack://widgetMartan/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/bind.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/null.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/css-loader/dist/runtime/api.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/vue-style-loader/lib/listToStyles.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/vue-style-loader/lib/addStylesClient.js","webpack://widgetMartan/./src/utils/lighten-color.js","webpack://widgetMartan/./src/widgets/ratings/Rating.vue?80f1","webpack://widgetMartan/(webpack)/buildin/global.js","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue?bae5","webpack://widgetMartan/./src/widgets/questions/Questions.vue?43cc","webpack://widgetMartan/./src/widgets/ratings/Rating.vue?f00e","webpack://widgetMartan/./src/widgets/ratings/Rating.vue?cc12","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/buffer/index.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/base64-js/index.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/ieee754/index.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/isarray/index.js","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue?e0e0","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue?5d2e","webpack://widgetMartan/./src/widgets/questions/Questions.vue?b39c","webpack://widgetMartan/./src/widgets/questions/Questions.vue?7c92","webpack://widgetMartan/./src/utils/widget-initializer.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/buildURL.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/core/InterceptorManager.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/defaults/transitional.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/platform/browser/index.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/platform/common/utils.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/platform/index.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/formDataToJSON.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/defaults/index.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/parseHeaders.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/core/AxiosHeaders.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/core/transformData.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/cancel/isCancel.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/cancel/CanceledError.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/cookies.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/core/buildFullPath.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/combineURLs.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/speedometer.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/adapters/xhr.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/core/settle.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/parseProtocol.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/adapters/adapters.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/core/dispatchRequest.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/core/mergeConfig.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/env/data.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/validator.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/core/Axios.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/cancel/CancelToken.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/axios.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/spread.js","webpack://widgetMartan//home/runner/work/storefront/storefront/node_modules/axios/lib/helpers/isAxiosError.js","webpack://widgetMartan/./src/widgets/ratings/Rating.vue?7276","webpack://widgetMartan/src/widgets/ratings/Rating.vue","webpack://widgetMartan/./src/widgets/ratings/Rating.vue","webpack://widgetMartan/./src/widgets/ratings/Rating.vue?8883","webpack://widgetMartan/./src/widgets/ratings/index.js","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue?7a57","webpack://widgetMartan/src/widgets/reviews/Reviews.vue","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue","webpack://widgetMartan/./src/widgets/reviews/Reviews.vue?5ca6","webpack://widgetMartan/./src/widgets/questions/Questions.vue?a3e5","webpack://widgetMartan/src/widgets/questions/Questions.vue","webpack://widgetMartan/./src/widgets/questions/Questions.vue","webpack://widgetMartan/./src/widgets/questions/Questions.vue?4bc8","webpack://widgetMartan/./src/index.js","webpack://widgetMartan/./src/widgets/questions/index.js","webpack://widgetMartan/./src/widgets/reviews/index.js","webpack://widgetMartan/external {\"commonjs\":\"@ecomplus/utils\",\"commonjs2\":\"@ecomplus/utils\",\"root\":\"ecomUtils\"}","webpack://widgetMartan/external {\"commonjs\":\"@ecomplus/storefront-twbs\",\"commonjs2\":\"@ecomplus/storefront-twbs\",\"root\":\"__storefrontTwbs\"}"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","installedModules","0","__webpack_require__","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","s","toString","getPrototypeOf","kindOf","cache","thing","str","toLowerCase","kindOfTest","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","forEach","obj","fn","allOwnKeys","keys","getOwnPropertyNames","len","findKey","_key","_global","globalThis","self","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","ret","defineProperties","ALPHA","ALPHABET","DIGIT","ALPHA_DIGIT","toUpperCase","isAsyncFn","isBuffer","constructor","isFormData","kind","FormData","append","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","this","assignValue","targetKey","arguments","extend","a","b","thisArg","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","hasOwnProp","freezeMethods","writable","set","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","generateString","size","alphabet","Math","random","isSpecCompliantForm","toJSONObject","stack","visit","source","reducedValue","isThenable","then","catch","AxiosError","code","config","response","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","map","token","join","predicates","test","toFormData","formData","options","TypeError","PlatformFormData","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","pop","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","configProp","default","store_id","web_id","widget_rating","is_enabled","font_size","star_color","display","search_page","theme","widget_review","title","header_layout","reviews_layout","widget_questions","enable_new_questions","apply","useSourceMap","list","item","cssMapping","btoa","sourceMapping","sourceMap","base64","unescape","encodeURIComponent","sourceURLs","sources","sourceRoot","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","id","_i","listToStyles","parentId","styles","newStyles","part","css","media","parts","hasDocument","DEBUG","stylesInDom","getElementsByTagName","singletonElement","singletonCounter","isProduction","isOldIE","navigator","userAgent","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","applyToTag","newObj","textStore","replaceText","replacement","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","ssrId","firstChild","lightenColor","hex","amount","x","parseInt","substring","g","min","round","toHex","padStart","locals","Function","___CSS_LOADER_API_IMPORT___","require","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","__proto__","arg","encodingOrOffset","allocUnsafe","array","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","string","encoding","isEncoding","actual","write","fromString","checked","copy","fromObject","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","start","end","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","buf","readUInt16BE","foundIndex","found","hexWrite","offset","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","fromCharCode","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","configurable","fill","allocUnsafeSlow","_isBuffer","compare","y","pos","swap16","swap32","swap64","equals","inspect","max","match","thisStart","thisEnd","thisCopy","targetCopy","includes","_arr","out","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","stringtrim","base64clean","dst","b64","lens","getLens","validLen","placeHoldersLen","tmp","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","num","output","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","abs","log","LN2","elId","Component","defaultConfig","$el","getElementById","dataset","product","widget_key","IntersectionObserver","entries","observer","entry","isIntersecting","intersectionRatio","Vue","$mount","disconnect","rootMargin","observe","encode","charMap","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","serializeFn","serialize","serializedParams","hashmarkIndex","InterceptorManager","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","clear","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","isBrowser","classes","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","platform","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","method","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","line","parseHeaders","tokens","tokensRE","parseTokens","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","targets","asStrings","first","computed","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","buildAccessors","accessor","mapped","headerValue","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","expires","domain","secure","cookie","Date","toGMTString","RegExp","decodeURIComponent","now","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","msie","urlParsingNode","originURL","resolveURL","href","protocol","host","search","hash","hostname","port","pathname","charAt","location","requestURL","speedometer","samplesCount","timestamps","firstSampleTS","tail","chunkLength","startedAt","bytesCount","passed","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","isXHRAdapterSupported","XMLHttpRequest","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","unsubscribe","signal","removeEventListener","auth","username","password","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","settle","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","onabort","ECONNABORTED","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","isURLSameOrigin","xsrfValue","cookies","setRequestHeader","withCredentials","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","parseProtocol","send","knownAdapters","http","httpAdapter","xhr","xhrAdapter","renderReason","reason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","throwIfRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","_request","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","HttpStatusCode","Continue","SwitchingProtocols","Processing","EarlyHints","Ok","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","instance","VERSION","Cancel","spread","callback","isAxiosError","payload","formToJSON","getAdapter","rating","totalReviews","stars","mounted","updateStars","isCompact","fontSize","fontSizeNumber","parseFloat","compactFillPercentage","starColor","ratingText","formatNumber","colorClosest","normalizeRating","isInteger","toFixed","methods","_","getStarClass","star","getStarFill","watch","_vm","_h","$createElement","_c","_self","staticClass","class","style","color","attrs","_uid","_v","_s","_l","_e","Ratings","loading","fetchRatings","listenerForSearchPage","loadFromLocalStorage","MARTAN_API","saveToLocalStorage","timestamp","fromLocalStorage","localStorage","getItem","setItem","getProductRatingFromList","sku","find","getClasses","custom_class","elements","querySelectorAll","element","renderRating","listenerForNewRatings","getProductFromElement","$ratingEl","RatingsComponent","average","generateId","prefix","MutationObserver","callbackForNewRatings","body","childList","attributes","subtree","mutations","mutation","addedNodes","node","isMartanElement","isIn","classList","martanProductId","martanProductSku","$searchEngine","searchEngineObserver","$retailRow","rowObserver","required","orderRating","orderReviews","$isSorting","$count","hasMore","averageTotal","totalRecommended","one","two","three","four","five","isOpenQuickView","selectedReview","isScrollable","$listEl","onlyWithPictures","newVal","oldOrder","newOrder","fetchReviews","i19basedOn$1Reviews","i19basedOn$1Review","i19noReview","review","pictures","getUrl","URL","origin","orderBy","count","finally","recommended_percentage","loadMore","showLoadMore","updateOrderBy","onSort","order","openQuickview","onCloseQuickview","checkScrollability","scrollWidth","clientWidth","scrollLeft","scrollBy","left","behavior","scrollRight","initMasonry","CSS","supports","gridContainer","card","fetchAverage","beforeDestroy","components","ReviewCard","Quickview","Compact","Center","Summary","Padrao","Histogram","directives","rawName","expression","tag","on","searchQuery","searchTimeout","showIframe","iframeError","iframeHeight","iframeUrl","stylesheet","storefront","settings","productID","_id","productSKU","webId","storeId","MARTAN_QUESTIONS_WEBUI","newValue","fetchQuestions","setupIframeMessageListener","removeIframeMessageListener","expand","terms","meta","loadMoreQuestions","askQuestion","handleIframeError","clearSearch","messageHandler","height","domProps","$event","composing","question","_m","reply","widgetInitializer","Questions","Reviews","init"],"mappings":"6BACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GAKAK,EAAI,EAAGC,EAAW,GACpCD,EAAIF,EAASI,OAAQF,IACzBH,EAAUC,EAASE,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBV,IAAYU,EAAgBV,IACpFI,EAASO,KAAKD,EAAgBV,GAAS,IAExCU,EAAgBV,GAAW,EAE5B,IAAID,KAAYG,EACZI,OAAOC,UAAUC,eAAeC,KAAKP,EAAaH,KACpDa,EAAQb,GAAYG,EAAYH,IAKlC,IAFGc,GAAqBA,EAAoBf,GAEtCM,EAASC,QACdD,EAASU,OAATV,GAOF,IAAIW,EAAmB,GAKnBL,EAAkB,CACrBM,EAAG,GAWJ,SAASC,EAAoBlB,GAG5B,GAAGgB,EAAiBhB,GACnB,OAAOgB,EAAiBhB,GAAUmB,QAGnC,IAAIC,EAASJ,EAAiBhB,GAAY,CACzCI,EAAGJ,EACHqB,GAAG,EACHF,QAAS,IAUV,OANAN,EAAQb,GAAUU,KAAKU,EAAOD,QAASC,EAAQA,EAAOD,QAASD,GAG/DE,EAAOC,GAAI,EAGJD,EAAOD,QAKfD,EAAoBI,EAAI,SAAuBrB,GAC9C,IAAIsB,EAAW,GAKXC,EAAqBb,EAAgBV,GACzC,GAA0B,IAAvBuB,EAGF,GAAGA,EACFD,EAASX,KAAKY,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAIC,SAAQ,SAASC,EAASC,GAC3CJ,EAAqBb,EAAgBV,GAAW,CAAC0B,EAASC,MAE3DL,EAASX,KAAKY,EAAmB,GAAKC,GAGtC,IACII,EADAC,EAASC,SAASC,cAAc,UAGpCF,EAAOG,QAAU,QACjBH,EAAOI,QAAU,IACbhB,EAAoBiB,IACvBL,EAAOM,aAAa,QAASlB,EAAoBiB,IAElDL,EAAOO,IA1DV,SAAwBpC,GACvB,OAAOiB,EAAoBoB,EAAI,kBAAoB,GAAGrC,IAAUA,GAAW,UAyD5DsC,CAAetC,GAG5B,IAAIuC,EAAQ,IAAIC,MAChBZ,EAAmB,SAAUa,GAE5BZ,EAAOa,QAAUb,EAAOc,OAAS,KACjCC,aAAaX,GACb,IAAIY,EAAQnC,EAAgBV,GAC5B,GAAa,IAAV6C,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYL,IAAyB,SAAfA,EAAMM,KAAkB,UAAYN,EAAMM,MAChEC,EAAUP,GAASA,EAAMQ,QAAUR,EAAMQ,OAAOb,IACpDG,EAAMW,QAAU,iBAAmBlD,EAAU,cAAgB8C,EAAY,KAAOE,EAAU,IAC1FT,EAAMY,KAAO,iBACbZ,EAAMQ,KAAOD,EACbP,EAAMa,QAAUJ,EAChBH,EAAM,GAAGN,GAEV7B,EAAgBV,QAAWqD,IAG7B,IAAIpB,EAAUqB,YAAW,WACxB1B,EAAiB,CAAEmB,KAAM,UAAWE,OAAQpB,MAC1C,MACHA,EAAOa,QAAUb,EAAOc,OAASf,EACjCE,SAASyB,KAAKC,YAAY3B,GAG5B,OAAOJ,QAAQgC,IAAInC,IAIpBL,EAAoByC,EAAI9C,EAGxBK,EAAoB0C,EAAI5C,EAGxBE,EAAoB2C,EAAI,SAAS1C,EAASiC,EAAMU,GAC3C5C,EAAoB6C,EAAE5C,EAASiC,IAClC7C,OAAOyD,eAAe7C,EAASiC,EAAM,CAAEa,YAAY,EAAMC,IAAKJ,KAKhE5C,EAAoBiD,EAAI,SAAShD,GACX,oBAAXiD,QAA0BA,OAAOC,aAC1C9D,OAAOyD,eAAe7C,EAASiD,OAAOC,YAAa,CAAEC,MAAO,WAE7D/D,OAAOyD,eAAe7C,EAAS,aAAc,CAAEmD,OAAO,KAQvDpD,EAAoBqD,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQpD,EAAoBoD,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKnE,OAAOoE,OAAO,MAGvB,GAFAzD,EAAoBiD,EAAEO,GACtBnE,OAAOyD,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOpD,EAAoB2C,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRxD,EAAoB4D,EAAI,SAAS1D,GAChC,IAAI0C,EAAS1C,GAAUA,EAAOqD,WAC7B,WAAwB,OAAOrD,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAF,EAAoB2C,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR5C,EAAoB6C,EAAI,SAASgB,EAAQC,GAAY,OAAOzE,OAAOC,UAAUC,eAAeC,KAAKqE,EAAQC,IAGzG9D,EAAoBoB,EAAI,kBAGxBpB,EAAoB+D,GAAK,SAASC,GAA2B,MAApBC,QAAQ3C,MAAM0C,GAAYA,GAEnE,IAAIE,EAAaC,OAAiC,yBAAIA,OAAiC,0BAAK,GACxFC,EAAmBF,EAAWxE,KAAKiE,KAAKO,GAC5CA,EAAWxE,KAAOd,EAClBsF,EAAaA,EAAWG,QACxB,IAAI,IAAInF,EAAI,EAAGA,EAAIgF,EAAW9E,OAAQF,IAAKN,EAAqBsF,EAAWhF,IAC3E,IAAIU,EAAsBwE,EAI1B,OAAOpE,EAAoBA,EAAoBsE,EAAI,I,gCCrMrD,uBAMA,MAAM,SAACC,GAAYlF,OAAOC,WACpB,eAACkF,GAAkBnF,OAEnBoF,GAAUC,EAGbrF,OAAOoE,OAAO,MAHQkB,IACrB,MAAMC,EAAML,EAAS/E,KAAKmF,GAC1B,OAAOD,EAAME,KAASF,EAAME,GAAOA,EAAIP,MAAM,GAAI,GAAGQ,iBAFzC,IAACH,EAKhB,MAAMI,EAAchD,IAClBA,EAAOA,EAAK+C,cACJF,GAAUF,EAAOE,KAAW7C,GAGhCiD,EAAajD,GAAQ6C,UAAgBA,IAAU7C,GAS/C,QAACkD,GAAWC,MASZC,EAAcH,EAAW,aAqB/B,MAAMI,EAAgBL,EAAW,eA2BjC,MAAMM,EAAWL,EAAW,UAQtBM,EAAaN,EAAW,YASxBO,EAAWP,EAAW,UAStBQ,EAAYZ,GAAoB,OAAVA,GAAmC,iBAAVA,EAiB/Ca,EAAiBC,IACrB,GAAoB,WAAhBhB,EAAOgB,GACT,OAAO,EAGT,MAAMnG,EAAYkF,EAAeiB,GACjC,QAAsB,OAAdnG,GAAsBA,IAAcD,OAAOC,WAAkD,OAArCD,OAAOmF,eAAelF,IAA0B4D,OAAOC,eAAesC,GAAUvC,OAAOwC,YAAYD,IAU/JE,EAASb,EAAW,QASpBc,EAASd,EAAW,QASpBe,EAASf,EAAW,QASpBgB,EAAahB,EAAW,YAsCxBiB,EAAoBjB,EAAW,mBA2BrC,SAASkB,EAAQC,EAAKC,GAAI,WAACC,GAAa,GAAS,IAE/C,GAAIF,QACF,OAGF,IAAI/G,EACAiB,EAQJ,GALmB,iBAAR8F,IAETA,EAAM,CAACA,IAGLjB,EAAQiB,GAEV,IAAK/G,EAAI,EAAGiB,EAAI8F,EAAI7G,OAAQF,EAAIiB,EAAGjB,IACjCgH,EAAG1G,KAAK,KAAMyG,EAAI/G,GAAIA,EAAG+G,OAEtB,CAEL,MAAMG,EAAOD,EAAa9G,OAAOgH,oBAAoBJ,GAAO5G,OAAO+G,KAAKH,GAClEK,EAAMF,EAAKhH,OACjB,IAAIsE,EAEJ,IAAKxE,EAAI,EAAGA,EAAIoH,EAAKpH,IACnBwE,EAAM0C,EAAKlH,GACXgH,EAAG1G,KAAK,KAAMyG,EAAIvC,GAAMA,EAAKuC,IAKnC,SAASM,EAAQN,EAAKvC,GACpBA,EAAMA,EAAImB,cACV,MAAMuB,EAAO/G,OAAO+G,KAAKH,GACzB,IACIO,EADAtH,EAAIkH,EAAKhH,OAEb,KAAOF,KAAM,GAEX,GADAsH,EAAOJ,EAAKlH,GACRwE,IAAQ8C,EAAK3B,cACf,OAAO2B,EAGX,OAAO,KAGT,MAAMC,EAEsB,oBAAfC,WAAmCA,WACvB,oBAATC,KAAuBA,KAA0B,oBAAXxC,OAAyBA,OAASyC,EAGlFC,EAAoBC,IAAa5B,EAAY4B,IAAYA,IAAYL,EAoD3E,MA8HMM,GAAgBC,EAKG,oBAAfC,YAA8BzC,EAAeyC,YAH9CtC,GACEqC,GAAcrC,aAAiBqC,GAHrB,IAACA,EAetB,MAiCME,EAAapC,EAAW,mBAWxBvF,EAAiB,GAAGA,oBAAoB,CAAC0G,EAAKkB,IAAS5H,EAAeC,KAAKyG,EAAKkB,GAA/D,CAAsE9H,OAAOC,WAS9F8H,EAAWtC,EAAW,UAEtBuC,EAAoBA,CAACpB,EAAKqB,KAC9B,MAAMC,EAAclI,OAAOmI,0BAA0BvB,GAC/CwB,EAAqB,GAE3BzB,EAAQuB,EAAa,CAACG,EAAYxF,KAChC,IAAIyF,GAC2C,KAA1CA,EAAML,EAAQI,EAAYxF,EAAM+D,MACnCwB,EAAmBvF,GAAQyF,GAAOD,KAItCrI,OAAOuI,iBAAiB3B,EAAKwB,IAuDzBI,EAAQ,6BAIRC,EAAW,CACfC,MAHY,aAIZF,QACAG,YAAaH,EAAQA,EAAMI,cALf,cA6Bd,MA+BMC,EAAYpD,EAAW,iBAKd,KACbE,UACAG,gBACAgD,SAnnBF,SAAkB1C,GAChB,OAAe,OAARA,IAAiBP,EAAYO,IAA4B,OAApBA,EAAI2C,cAAyBlD,EAAYO,EAAI2C,cACpF/C,EAAWI,EAAI2C,YAAYD,WAAa1C,EAAI2C,YAAYD,SAAS1C,IAknBtE4C,WArekB1D,IAClB,IAAI2D,EACJ,OAAO3D,IACgB,mBAAb4D,UAA2B5D,aAAiB4D,UAClDlD,EAAWV,EAAM6D,UACY,cAA1BF,EAAO7D,EAAOE,KAEL,WAAT2D,GAAqBjD,EAAWV,EAAMJ,WAAkC,sBAArBI,EAAMJ,cA+dhEkE,kBA/lBF,SAA2BhD,GACzB,IAAIiD,EAMJ,OAJEA,EAD0B,oBAAhBC,aAAiCA,YAAYC,OAC9CD,YAAYC,OAAOnD,GAElBA,GAASA,EAAIoD,QAAY1D,EAAcM,EAAIoD,QAEhDH,GAylBPtD,WACAE,WACAwD,UA/iBgBnE,IAAmB,IAAVA,IAA4B,IAAVA,EAgjB3CY,WACAC,gBACAN,cACAS,SACAC,SACAC,SACAuB,WACA/B,aACA0D,SA3fgBtD,GAAQF,EAASE,IAAQJ,EAAWI,EAAIuD,MA4fxDjD,oBACAgB,eACAjB,aACAE,UACAiD,MA/XF,SAASA,IACP,MAAM,SAACC,GAAYrC,EAAiBsC,OAASA,MAAQ,GAC/CT,EAAS,GACTU,EAAcA,CAAC3D,EAAK/B,KACxB,MAAM2F,EAAYH,GAAY3C,EAAQmC,EAAQhF,IAAQA,EAClD8B,EAAckD,EAAOW,KAAe7D,EAAcC,GACpDiD,EAAOW,GAAaJ,EAAMP,EAAOW,GAAY5D,GACpCD,EAAcC,GACvBiD,EAAOW,GAAaJ,EAAM,GAAIxD,GACrBT,EAAQS,GACjBiD,EAAOW,GAAa5D,EAAIpB,QAExBqE,EAAOW,GAAa5D,GAIxB,IAAK,IAAIvG,EAAI,EAAGiB,EAAImJ,UAAUlK,OAAQF,EAAIiB,EAAGjB,IAC3CoK,UAAUpK,IAAM8G,EAAQsD,UAAUpK,GAAIkK,GAExC,OAAOV,GA6WPa,OAhWaA,CAACC,EAAGC,EAAGC,GAAUvD,cAAa,MAC3CH,EAAQyD,EAAG,CAAChE,EAAK/B,KACXgG,GAAWrE,EAAWI,GACxB+D,EAAE9F,GAAOC,YAAK8B,EAAKiE,GAEnBF,EAAE9F,GAAO+B,GAEV,CAACU,eACGqD,GAyVPG,KA5dY/E,GAAQA,EAAI+E,KACxB/E,EAAI+E,OAAS/E,EAAIgF,QAAQ,qCAAsC,IA4d/DC,SAhVgBC,IACc,QAA1BA,EAAQC,WAAW,KACrBD,EAAUA,EAAQzF,MAAM,IAEnByF,GA6UPE,SAjUeA,CAAC5B,EAAa6B,EAAkBC,EAAO3C,KACtDa,EAAY9I,UAAYD,OAAOoE,OAAOwG,EAAiB3K,UAAWiI,GAClEa,EAAY9I,UAAU8I,YAAcA,EACpC/I,OAAOyD,eAAesF,EAAa,QAAS,CAC1ChF,MAAO6G,EAAiB3K,YAE1B4K,GAAS7K,OAAO8K,OAAO/B,EAAY9I,UAAW4K,IA4T9CE,aAhTmBA,CAACC,EAAWC,EAASC,EAAQC,KAChD,IAAIN,EACAhL,EACAiI,EACJ,MAAMsD,EAAS,GAIf,GAFAH,EAAUA,GAAW,GAEJ,MAAbD,EAAmB,OAAOC,EAE9B,EAAG,CAGD,IAFAJ,EAAQ7K,OAAOgH,oBAAoBgE,GACnCnL,EAAIgL,EAAM9K,OACHF,KAAM,GACXiI,EAAO+C,EAAMhL,GACPsL,IAAcA,EAAWrD,EAAMkD,EAAWC,IAAcG,EAAOtD,KACnEmD,EAAQnD,GAAQkD,EAAUlD,GAC1BsD,EAAOtD,IAAQ,GAGnBkD,GAAuB,IAAXE,GAAoB/F,EAAe6F,SACxCA,KAAeE,GAAUA,EAAOF,EAAWC,KAAaD,IAAchL,OAAOC,WAEtF,OAAOgL,GA0RP7F,SACAK,aACA4F,SAhReA,CAAC9F,EAAK+F,EAAcC,KACnChG,EAAMiG,OAAOjG,SACIxC,IAAbwI,GAA0BA,EAAWhG,EAAIxF,UAC3CwL,EAAWhG,EAAIxF,QAEjBwL,GAAYD,EAAavL,OACzB,MAAM0L,EAAYlG,EAAImG,QAAQJ,EAAcC,GAC5C,OAAsB,IAAfE,GAAoBA,IAAcF,GA0QzCI,QA/PerG,IACf,IAAKA,EAAO,OAAO,KACnB,GAAIK,EAAQL,GAAQ,OAAOA,EAC3B,IAAIzF,EAAIyF,EAAMvF,OACd,IAAKkG,EAASpG,GAAI,OAAO,KACzB,MAAM+L,EAAM,IAAIhG,MAAM/F,GACtB,KAAOA,KAAM,GACX+L,EAAI/L,GAAKyF,EAAMzF,GAEjB,OAAO+L,GAuPPC,aA5NmBA,CAACjF,EAAKC,KACzB,MAEMR,GAFYO,GAAOA,EAAI/C,OAAOwC,WAETlG,KAAKyG,GAEhC,IAAIyC,EAEJ,MAAQA,EAAShD,EAASyF,UAAYzC,EAAO0C,MAAM,CACjD,MAAMC,EAAO3C,EAAOtF,MACpB8C,EAAG1G,KAAKyG,EAAKoF,EAAK,GAAIA,EAAK,MAoN7BC,SAxMeA,CAACC,EAAQ3G,KACxB,IAAI4G,EACJ,MAAMP,EAAM,GAEZ,KAAwC,QAAhCO,EAAUD,EAAOE,KAAK7G,KAC5BqG,EAAIvL,KAAK8L,GAGX,OAAOP,GAiMP/D,aACA3H,iBACAmM,WAAYnM,EACZ8H,oBACAsE,cAxJqB1F,IACrBoB,EAAkBpB,EAAK,CAACyB,EAAYxF,KAElC,GAAImD,EAAWY,KAA6D,IAArD,CAAC,YAAa,SAAU,UAAU8E,QAAQ7I,GAC/D,OAAO,EAGT,MAAMkB,EAAQ6C,EAAI/D,GAEbmD,EAAWjC,KAEhBsE,EAAW3E,YAAa,EAEpB,aAAc2E,EAChBA,EAAWkE,UAAW,EAInBlE,EAAWmE,MACdnE,EAAWmE,IAAM,KACf,MAAMtK,MAAM,qCAAwCW,EAAO,WAqIjE4J,YA/HkBA,CAACC,EAAeC,KAClC,MAAM/F,EAAM,GAENgG,EAAUhB,IACdA,EAAIjF,QAAQ5C,IACV6C,EAAI7C,IAAS,KAMjB,OAFA4B,EAAQ+G,GAAiBE,EAAOF,GAAiBE,EAAOpB,OAAOkB,GAAeG,MAAMF,IAE7E/F,GAqHPkG,YAjMkBvH,GACXA,EAAIC,cAAc+E,QAAQ,yBAC/B,SAAkBnH,EAAG2J,EAAIC,GACvB,OAAOD,EAAGnE,cAAgBoE,KA+L9BC,KAnHWA,OAoHXC,eAlHqBA,CAACnJ,EAAOoJ,KAC7BpJ,GAASA,EACFqJ,OAAOC,SAAStJ,GAASA,EAAQoJ,GAiHxCjG,UACAK,OAAQH,EACRI,mBACAiB,WACA6E,eAxGqBA,CAACC,EAAO,GAAIC,EAAW/E,EAASE,eACrD,IAAIpD,EAAM,GACV,MAAM,OAACxF,GAAUyN,EACjB,KAAOD,KACLhI,GAAOiI,EAASC,KAAKC,SAAW3N,EAAO,GAGzC,OAAOwF,GAkGPoI,oBAxFF,SAA6BrI,GAC3B,SAAUA,GAASU,EAAWV,EAAM6D,SAAyC,aAA9B7D,EAAMzB,OAAOC,cAA+BwB,EAAMzB,OAAOwC,YAwFxGuH,aArFoBhH,IACpB,MAAMiH,EAAQ,IAAIjI,MAAM,IAElBkI,EAAQA,CAACC,EAAQlO,KAErB,GAAIqG,EAAS6H,GAAS,CACpB,GAAIF,EAAMnC,QAAQqC,IAAW,EAC3B,OAGF,KAAK,WAAYA,GAAS,CACxBF,EAAMhO,GAAKkO,EACX,MAAMpL,EAASgD,EAAQoI,GAAU,GAAK,GAStC,OAPApH,EAAQoH,EAAQ,CAAChK,EAAOM,KACtB,MAAM2J,EAAeF,EAAM/J,EAAOlE,EAAI,IACrCgG,EAAYmI,KAAkBrL,EAAO0B,GAAO2J,KAG/CH,EAAMhO,QAAKkD,EAEJJ,GAIX,OAAOoL,GAGT,OAAOD,EAAMlH,EAAK,IA0DlBiC,YACAoF,WAtDkB3I,GAClBA,IAAUY,EAASZ,IAAUU,EAAWV,KAAWU,EAAWV,EAAM4I,OAASlI,EAAWV,EAAM6I,U,+CC5pBhG,WAeA,SAASC,EAAWxL,EAASyL,EAAMC,EAAQxL,EAASyL,GAClDrM,MAAM/B,KAAK2J,MAEP5H,MAAMsM,kBACRtM,MAAMsM,kBAAkB1E,KAAMA,KAAKf,aAEnCe,KAAK+D,OAAS,IAAI3L,OAAS2L,MAG7B/D,KAAKlH,QAAUA,EACfkH,KAAKjH,KAAO,aACZwL,IAASvE,KAAKuE,KAAOA,GACrBC,IAAWxE,KAAKwE,OAASA,GACzBxL,IAAYgH,KAAKhH,QAAUA,GAC3ByL,IAAazE,KAAKyE,SAAWA,GAG/BE,IAAM9D,SAASyD,EAAYlM,MAAO,CAChCwM,OAAQ,WACN,MAAO,CAEL9L,QAASkH,KAAKlH,QACdC,KAAMiH,KAAKjH,KAEX8L,YAAa7E,KAAK6E,YAClBC,OAAQ9E,KAAK8E,OAEbC,SAAU/E,KAAK+E,SACfC,WAAYhF,KAAKgF,WACjBC,aAAcjF,KAAKiF,aACnBlB,MAAO/D,KAAK+D,MAEZS,OAAQG,IAAMb,aAAa9D,KAAKwE,QAChCD,KAAMvE,KAAKuE,KACXW,OAAQlF,KAAKyE,UAAYzE,KAAKyE,SAASS,OAASlF,KAAKyE,SAASS,OAAS,SAK7E,MAAM/O,EAAYmO,EAAWnO,UACvBiI,EAAc,GAEpB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,eACA,kBACA,mBAEAvB,QAAQ0H,IACRnG,EAAYmG,GAAQ,CAACtK,MAAOsK,KAG9BrO,OAAOuI,iBAAiB6F,EAAYlG,GACpClI,OAAOyD,eAAexD,EAAW,eAAgB,CAAC8D,OAAO,IAGzDqK,EAAWa,KAAO,CAAChN,EAAOoM,EAAMC,EAAQxL,EAASyL,EAAUW,KACzD,MAAMC,EAAanP,OAAOoE,OAAOnE,GAgBjC,OAdAwO,IAAM1D,aAAa9I,EAAOkN,GAAY,SAAgBvI,GACpD,OAAOA,IAAQ1E,MAAMjC,YACpB6H,GACe,iBAATA,GAGTsG,EAAWjO,KAAKgP,EAAYlN,EAAMW,QAASyL,EAAMC,EAAQxL,EAASyL,GAElEY,EAAWC,MAAQnN,EAEnBkN,EAAWtM,KAAOZ,EAAMY,KAExBqM,GAAelP,OAAO8K,OAAOqE,EAAYD,GAElCC,GAGMf,O,8BCnGf,qCAcA,SAASiB,EAAY/J,GACnB,OAAOmJ,IAAMtI,cAAcb,IAAUmJ,IAAM9I,QAAQL,GAUrD,SAASgK,EAAejL,GACtB,OAAOoK,IAAMpD,SAAShH,EAAK,MAAQA,EAAIW,MAAM,GAAI,GAAKX,EAYxD,SAASkL,EAAUC,EAAMnL,EAAKoL,GAC5B,OAAKD,EACEA,EAAKE,OAAOrL,GAAKsL,KAAI,SAAcC,EAAO/P,GAG/C,OADA+P,EAAQN,EAAeM,IACfH,GAAQ5P,EAAI,IAAM+P,EAAQ,IAAMA,KACvCC,KAAKJ,EAAO,IAAM,IALHpL,EAmBpB,MAAMyL,EAAarB,IAAM1D,aAAa0D,IAAO,GAAI,MAAM,SAAgB3G,GACrE,MAAO,WAAWiI,KAAKjI,MA+JVkI,IArIf,SAAoBpJ,EAAKqJ,EAAUC,GACjC,IAAKzB,IAAMvI,SAASU,GAClB,MAAM,IAAIuJ,UAAU,4BAItBF,EAAWA,GAAY,IAAKG,KAAoBlH,UAYhD,MAAMmH,GATNH,EAAUzB,IAAM1D,aAAamF,EAAS,CACpCG,YAAY,EACZZ,MAAM,EACNa,SAAS,IACR,GAAO,SAAiBC,EAAQxC,GAEjC,OAAQU,IAAM5I,YAAYkI,EAAOwC,QAGRF,WAErBG,EAAUN,EAAQM,SAAWC,EAC7BhB,EAAOS,EAAQT,KACfa,EAAUJ,EAAQI,QAElBI,GADQR,EAAQS,MAAwB,oBAATA,MAAwBA,OACpClC,IAAMd,oBAAoBsC,GAEnD,IAAKxB,IAAMzI,WAAWwK,GACpB,MAAM,IAAIL,UAAU,8BAGtB,SAASS,EAAa7M,GACpB,GAAc,OAAVA,EAAgB,MAAO,GAE3B,GAAI0K,IAAMnI,OAAOvC,GACf,OAAOA,EAAM8M,cAGf,IAAKH,GAAWjC,IAAMjI,OAAOzC,GAC3B,MAAM,IAAIqK,IAAW,gDAGvB,OAAIK,IAAM3I,cAAc/B,IAAU0K,IAAM/G,aAAa3D,GAC5C2M,GAA2B,mBAATC,KAAsB,IAAIA,KAAK,CAAC5M,IAAU+M,EAAO7B,KAAKlL,GAG1EA,EAaT,SAAS0M,EAAe1M,EAAOM,EAAKmL,GAClC,IAAI5D,EAAM7H,EAEV,GAAIA,IAAUyL,GAAyB,iBAAVzL,EAC3B,GAAI0K,IAAMpD,SAAShH,EAAK,MAEtBA,EAAMgM,EAAahM,EAAMA,EAAIW,MAAM,GAAI,GAEvCjB,EAAQgN,KAAKC,UAAUjN,QAClB,GACJ0K,IAAM9I,QAAQ5B,IAnGvB,SAAqB6H,GACnB,OAAO6C,IAAM9I,QAAQiG,KAASA,EAAIqF,KAAK5B,GAkGR6B,CAAYnN,KACnC0K,IAAMhI,WAAW1C,IAAU0K,IAAMpD,SAAShH,EAAK,SAAWuH,EAAM6C,IAAM9C,QAAQ5H,IAYhF,OATAM,EAAMiL,EAAejL,GAErBuH,EAAIjF,SAAQ,SAAcwK,EAAIC,IAC1B3C,IAAM5I,YAAYsL,IAAc,OAAPA,GAAgBlB,EAAS9G,QAEtC,IAAZmH,EAAmBf,EAAU,CAAClL,GAAM+M,EAAO3B,GAAqB,OAAZa,EAAmBjM,EAAMA,EAAM,KACnFuM,EAAaO,QAGV,EAIX,QAAI9B,EAAYtL,KAIhBkM,EAAS9G,OAAOoG,EAAUC,EAAMnL,EAAKoL,GAAOmB,EAAa7M,KAElD,GAGT,MAAM8J,EAAQ,GAERwD,EAAiBrR,OAAO8K,OAAOgF,EAAY,CAC/CW,iBACAG,eACAvB,gBAyBF,IAAKZ,IAAMvI,SAASU,GAClB,MAAM,IAAIuJ,UAAU,0BAKtB,OA5BA,SAASmB,EAAMvN,EAAOyL,GACpB,IAAIf,IAAM5I,YAAY9B,GAAtB,CAEA,IAA8B,IAA1B8J,EAAMnC,QAAQ3H,GAChB,MAAM7B,MAAM,kCAAoCsN,EAAKK,KAAK,MAG5DhC,EAAMxN,KAAK0D,GAEX0K,IAAM9H,QAAQ5C,GAAO,SAAcoN,EAAI9M,IAKtB,OAJEoK,IAAM5I,YAAYsL,IAAc,OAAPA,IAAgBX,EAAQrQ,KAChE8P,EAAUkB,EAAI1C,IAAM1I,SAAS1B,GAAOA,EAAIiG,OAASjG,EAAKmL,EAAM6B,KAI5DC,EAAMH,EAAI3B,EAAOA,EAAKE,OAAOrL,GAAO,CAACA,OAIzCwJ,EAAM0D,OAORD,CAAM1K,GAECqJ,K,sDCjNM,SAASuB,EACtBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAGA,IAoBIC,EApBA/B,EACuB,mBAAlBuB,EAA+BA,EAAcvB,QAAUuB,EAuDhE,GApDIC,IACFxB,EAAQwB,OAASA,EACjBxB,EAAQyB,gBAAkBA,EAC1BzB,EAAQgC,WAAY,GAIlBN,IACF1B,EAAQiC,YAAa,GAInBL,IACF5B,EAAQkC,SAAW,UAAYN,GAI7BC,GAEFE,EAAO,SAAUxK,IAEfA,EACEA,GACCqC,KAAKuI,QAAUvI,KAAKuI,OAAOC,YAC3BxI,KAAKyI,QAAUzI,KAAKyI,OAAOF,QAAUvI,KAAKyI,OAAOF,OAAOC,aAEZ,oBAAxBE,sBACrB/K,EAAU+K,qBAGRX,GACFA,EAAa1R,KAAK2J,KAAMrC,GAGtBA,GAAWA,EAAQgL,uBACrBhL,EAAQgL,sBAAsBC,IAAIX,IAKtC7B,EAAQyC,aAAeV,GACdJ,IACTI,EAAOD,EACH,WACEH,EAAa1R,KACX2J,MACCoG,EAAQiC,WAAarI,KAAKyI,OAASzI,MAAM8I,MAAMC,SAASC,aAG7DjB,GAGFI,EACF,GAAI/B,EAAQiC,WAAY,CAGtBjC,EAAQ6C,cAAgBd,EAExB,IAAIe,EAAiB9C,EAAQwB,OAC7BxB,EAAQwB,OAAS,SAAkCuB,EAAGxL,GAEpD,OADAwK,EAAK9R,KAAKsH,GACHuL,EAAeC,EAAGxL,QAEtB,CAEL,IAAIyL,EAAWhD,EAAQiD,aACvBjD,EAAQiD,aAAeD,EAAW,GAAGxD,OAAOwD,EAAUjB,GAAQ,CAACA,GAInE,MAAO,CACLrR,QAAS6Q,EACTvB,QAASA,GA7Fb,mC,6BCAA,kCAAO,MAAMkD,EAAa,CACxB9E,OAAQ,CACN7L,KAAMzC,OACNqT,QAASA,KAAA,CACPC,SAAU,KACVC,OAAQ,KACRC,cAAe,CACbC,YAAY,EACZC,UAAW,GACXC,WAAY,KACZC,QAAS,KACTC,aAAa,EACbC,MAAO,MAETC,cAAe,CACbN,YAAY,EACZO,MAAO,KACPL,WAAY,KACZM,cAAe,KACfC,eAAgB,MAElBC,iBAAkB,CAChBV,YAAY,EACZO,MAAO,KACPI,sBAAsB,Q,cCxB9BvT,EAAOD,aAAUmC,G,6BCEF,SAASuB,EAAKuC,EAAIwD,GAC/B,OAAO,WACL,OAAOxD,EAAGwN,MAAMhK,EAASJ,YAJ7B,mC,6BCCe,U,6BCOfpJ,EAAOD,QAAU,SAAU0T,GACzB,IAAIC,EAAO,GAuDX,OArDAA,EAAKrP,SAAW,WACd,OAAO4E,KAAK6F,KAAI,SAAU6E,GACxB,IAAI/J,EAsDV,SAAgC+J,EAAMF,GACpC,IAAI7J,EAAU+J,EAAK,IAAM,GAErBC,EAAaD,EAAK,GAEtB,IAAKC,EACH,OAAOhK,EAGT,GAAI6J,GAAgC,mBAATI,KAAqB,CAC9C,IAAIC,GAWWC,EAXeH,EAa5BI,EAASH,KAAKI,SAASC,mBAAmBhE,KAAKC,UAAU4D,MACzDpV,EAAO,+DAA+DkQ,OAAOmF,GAC1E,OAAOnF,OAAOlQ,EAAM,QAdrBwV,EAAaP,EAAWQ,QAAQtF,KAAI,SAAU5B,GAChD,MAAO,iBAAiB2B,OAAO+E,EAAWS,YAAc,IAAIxF,OAAO3B,EAAQ,UAE7E,MAAO,CAACtD,GAASiF,OAAOsF,GAAYtF,OAAO,CAACiF,IAAgB9E,KAAK,MAOrE,IAAmB+E,EAEbC,EACArV,EAPJ,MAAO,CAACiL,GAASoF,KAAK,MAvEJsF,CAAuBX,EAAMF,GAE3C,OAAIE,EAAK,GACA,UAAU9E,OAAO8E,EAAK,GAAI,MAAM9E,OAAOjF,EAAS,KAGlDA,KACNoF,KAAK,KAKV0E,EAAK1U,EAAI,SAAUS,EAAS8U,EAAYC,GACf,iBAAZ/U,IAETA,EAAU,CAAC,CAAC,KAAMA,EAAS,MAG7B,IAAIgV,EAAyB,GAE7B,GAAID,EACF,IAAK,IAAIxV,EAAI,EAAGA,EAAIiK,KAAK/J,OAAQF,IAAK,CAEpC,IAAI0V,EAAKzL,KAAKjK,GAAG,GAEP,MAAN0V,IACFD,EAAuBC,IAAM,GAKnC,IAAK,IAAIC,EAAK,EAAGA,EAAKlV,EAAQP,OAAQyV,IAAM,CAC1C,IAAIhB,EAAO,GAAG9E,OAAOpP,EAAQkV,IAEzBH,GAAUC,EAAuBd,EAAK,MAKtCY,IACGZ,EAAK,GAGRA,EAAK,GAAK,GAAG9E,OAAO0F,EAAY,SAAS1F,OAAO8E,EAAK,IAFrDA,EAAK,GAAKY,GAMdb,EAAKlU,KAAKmU,MAIPD,I,6BC5DM,SAASkB,EAAcC,EAAUnB,GAG9C,IAFA,IAAIoB,EAAS,GACTC,EAAY,GACP/V,EAAI,EAAGA,EAAI0U,EAAKxU,OAAQF,IAAK,CACpC,IAAI2U,EAAOD,EAAK1U,GACZ0V,EAAKf,EAAK,GAIVqB,EAAO,CACTN,GAAIG,EAAW,IAAM7V,EACrBiW,IALQtB,EAAK,GAMbuB,MALUvB,EAAK,GAMfI,UALcJ,EAAK,IAOhBoB,EAAUL,GAGbK,EAAUL,GAAIS,MAAM3V,KAAKwV,GAFzBF,EAAOtV,KAAKuV,EAAUL,GAAM,CAAEA,GAAIA,EAAIS,MAAO,CAACH,KAKlD,OAAOF,E,+CCjBT,IAAIM,EAAkC,oBAAbzU,SAEzB,GAAqB,oBAAV0U,OAAyBA,QAC7BD,EACH,MAAM,IAAI/T,MACV,2JAkBJ,IAAIiU,EAAc,GAQdlT,EAAOgT,IAAgBzU,SAASyB,MAAQzB,SAAS4U,qBAAqB,QAAQ,IAC9EC,EAAmB,KACnBC,EAAmB,EACnBC,GAAe,EACftJ,EAAO,aACPiD,EAAU,KAKVsG,EAA+B,oBAAdC,WAA6B,eAAe1G,KAAK0G,UAAUC,UAAUlR,eAE3E,SAASmR,EAAiBjB,EAAUnB,EAAMqC,EAAeC,GACtEN,EAAeK,EAEf1G,EAAU2G,GAAY,GAEtB,IAAIlB,EAASF,EAAaC,EAAUnB,GAGpC,OAFAuC,EAAenB,GAER,SAAiBoB,GAEtB,IADA,IAAIC,EAAY,GACPnX,EAAI,EAAGA,EAAI8V,EAAO5V,OAAQF,IAAK,CACtC,IAAI2U,EAAOmB,EAAO9V,IACdoX,EAAWd,EAAY3B,EAAKe,KACvB2B,OACTF,EAAU3W,KAAK4W,GAEbF,EAEFD,EADAnB,EAASF,EAAaC,EAAUqB,IAGhCpB,EAAS,GAEX,IAAS9V,EAAI,EAAGA,EAAImX,EAAUjX,OAAQF,IAAK,CACzC,IAAIoX,EACJ,GAAsB,KADlBA,EAAWD,EAAUnX,IACZqX,KAAY,CACvB,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAASjB,MAAMjW,OAAQoX,IACzCF,EAASjB,MAAMmB,YAEVhB,EAAYc,EAAS1B,OAMpC,SAASuB,EAAgBnB,GACvB,IAAK,IAAI9V,EAAI,EAAGA,EAAI8V,EAAO5V,OAAQF,IAAK,CACtC,IAAI2U,EAAOmB,EAAO9V,GACdoX,EAAWd,EAAY3B,EAAKe,IAChC,GAAI0B,EAAU,CACZA,EAASC,OACT,IAAK,IAAIC,EAAI,EAAGA,EAAIF,EAASjB,MAAMjW,OAAQoX,IACzCF,EAASjB,MAAMmB,GAAG3C,EAAKwB,MAAMmB,IAE/B,KAAOA,EAAI3C,EAAKwB,MAAMjW,OAAQoX,IAC5BF,EAASjB,MAAM3V,KAAK+W,EAAS5C,EAAKwB,MAAMmB,KAEtCF,EAASjB,MAAMjW,OAASyU,EAAKwB,MAAMjW,SACrCkX,EAASjB,MAAMjW,OAASyU,EAAKwB,MAAMjW,YAEhC,CACL,IAAIiW,EAAQ,GACZ,IAASmB,EAAI,EAAGA,EAAI3C,EAAKwB,MAAMjW,OAAQoX,IACrCnB,EAAM3V,KAAK+W,EAAS5C,EAAKwB,MAAMmB,KAEjChB,EAAY3B,EAAKe,IAAM,CAAEA,GAAIf,EAAKe,GAAI2B,KAAM,EAAGlB,MAAOA,KAK5D,SAASqB,IACP,IAAIC,EAAe9V,SAASC,cAAc,SAG1C,OAFA6V,EAAa7U,KAAO,WACpBQ,EAAKC,YAAYoU,GACVA,EAGT,SAASF,EAAUxQ,GACjB,IAAI2Q,EAAQC,EACRF,EAAe9V,SAASiW,cAAc,2BAA8B7Q,EAAI2O,GAAK,MAEjF,GAAI+B,EAAc,CAChB,GAAIf,EAGF,OAAOtJ,EAOPqK,EAAaI,WAAWC,YAAYL,GAIxC,GAAId,EAAS,CAEX,IAAIoB,EAAatB,IACjBgB,EAAejB,IAAqBA,EAAmBgB,KACvDE,EAASM,EAAoBvT,KAAK,KAAMgT,EAAcM,GAAY,GAClEJ,EAASK,EAAoBvT,KAAK,KAAMgT,EAAcM,GAAY,QAGlEN,EAAeD,IACfE,EAASO,EAAWxT,KAAK,KAAMgT,GAC/BE,EAAS,WACPF,EAAaI,WAAWC,YAAYL,IAMxC,OAFAC,EAAO3Q,GAEA,SAAsBmR,GAC3B,GAAIA,EAAQ,CACV,GAAIA,EAAOjC,MAAQlP,EAAIkP,KACnBiC,EAAOhC,QAAUnP,EAAImP,OACrBgC,EAAOnD,YAAchO,EAAIgO,UAC3B,OAEF2C,EAAO3Q,EAAMmR,QAEbP,KAKN,IACMQ,EADFC,GACED,EAAY,GAET,SAAU5G,EAAO8G,GAEtB,OADAF,EAAU5G,GAAS8G,EACZF,EAAU9M,OAAOiN,SAAStI,KAAK,QAI1C,SAASgI,EAAqBP,EAAclG,EAAOoG,EAAQ5Q,GACzD,IAAIkP,EAAM0B,EAAS,GAAK5Q,EAAIkP,IAE5B,GAAIwB,EAAac,WACfd,EAAac,WAAWC,QAAUJ,EAAY7G,EAAO0E,OAChD,CACL,IAAIwC,EAAU9W,SAAS+W,eAAezC,GAClC0C,EAAalB,EAAakB,WAC1BA,EAAWpH,IAAQkG,EAAaK,YAAYa,EAAWpH,IACvDoH,EAAWzY,OACbuX,EAAamB,aAAaH,EAASE,EAAWpH,IAE9CkG,EAAapU,YAAYoV,IAK/B,SAASR,EAAYR,EAAc1Q,GACjC,IAAIkP,EAAMlP,EAAIkP,IACVC,EAAQnP,EAAImP,MACZnB,EAAYhO,EAAIgO,UAiBpB,GAfImB,GACFuB,EAAazV,aAAa,QAASkU,GAEjC7F,EAAQwI,OACVpB,EAAazV,aA7JF,kBA6JyB+E,EAAI2O,IAGtCX,IAGFkB,GAAO,mBAAqBlB,EAAUK,QAAQ,GAAK,MAEnDa,GAAO,uDAAyDpB,KAAKI,SAASC,mBAAmBhE,KAAKC,UAAU4D,MAAgB,OAG9H0C,EAAac,WACfd,EAAac,WAAWC,QAAUvC,MAC7B,CACL,KAAOwB,EAAaqB,YAClBrB,EAAaK,YAAYL,EAAaqB,YAExCrB,EAAapU,YAAY1B,SAAS+W,eAAezC,O,6BC3N9C,SAAS8C,EAAcC,EAAKC,EAAS,IAEvB,KADnBD,EAAMA,EAAItO,QAAQ,KAAM,KAChBxK,SACN8Y,EAAMA,EACHhM,MAAM,IACN8C,IAAKoJ,GAAMA,EAAIA,GACflJ,KAAK,KAGV,IAAIjM,EAAIoV,SAASH,EAAII,UAAU,EAAG,GAAI,IAClCC,EAAIF,SAASH,EAAII,UAAU,EAAG,GAAI,IAClC7O,EAAI4O,SAASH,EAAII,UAAU,EAAG,GAAI,IAEtCrV,EAAI6J,KAAK0L,IAAI,IAAK1L,KAAK2L,MAAMxV,GAAK,IAAMA,GAAKkV,IAC7CI,EAAIzL,KAAK0L,IAAI,IAAK1L,KAAK2L,MAAMF,GAAK,IAAMA,GAAKJ,IAC7C1O,EAAIqD,KAAK0L,IAAI,IAAK1L,KAAK2L,MAAMhP,GAAK,IAAMA,GAAK0O,IAE7C,MAAMO,EAASN,GAAMA,EAAE7T,SAAS,IAAIoU,SAAS,EAAG,KAChD,MAAO,IAAID,EAAMzV,KAAKyV,EAAMH,KAAKG,EAAMjP,KAlBzC,mC,gBCGA,IAAIK,EAAU,EAAQ,IACnBA,EAAQvG,aAAYuG,EAAUA,EAAQ4I,SACnB,iBAAZ5I,IAAsBA,EAAU,CAAC,CAAC5J,EAAOhB,EAAI4K,EAAS,MAC7DA,EAAQ8O,SAAQ1Y,EAAOD,QAAU6J,EAAQ8O,SAG/B7G,EADH,EAAQ,GAAwEW,SACzE,WAAY5I,GAAS,EAAM,K,cCT5C,IAAIyO,EAGJA,EAAK,WACJ,OAAOpP,KADH,GAIL,IAECoP,EAAIA,GAAK,IAAIM,SAAS,cAAb,GACR,MAAOzY,GAEc,iBAAX+D,SAAqBoU,EAAIpU,QAOrCjE,EAAOD,QAAUsY,G,gBChBjB,IAAIzO,EAAU,EAAQ,IACnBA,EAAQvG,aAAYuG,EAAUA,EAAQ4I,SACnB,iBAAZ5I,IAAsBA,EAAU,CAAC,CAAC5J,EAAOhB,EAAI4K,EAAS,MAC7DA,EAAQ8O,SAAQ1Y,EAAOD,QAAU6J,EAAQ8O,SAG/B7G,EADH,EAAQ,GAAwEW,SACzE,WAAY5I,GAAS,EAAM,K,gBCN5C,IAAIA,EAAU,EAAQ,IACnBA,EAAQvG,aAAYuG,EAAUA,EAAQ4I,SACnB,iBAAZ5I,IAAsBA,EAAU,CAAC,CAAC5J,EAAOhB,EAAI4K,EAAS,MAC7DA,EAAQ8O,SAAQ1Y,EAAOD,QAAU6J,EAAQ8O,SAG/B7G,EADH,EAAQ,GAAwEW,SACzE,WAAY5I,GAAS,EAAM,K,6BCT5C,O,iBCEA7J,EADkC,EAAQ,EAChC6Y,EAA4B,IAE9BpZ,KAAK,CAACQ,EAAOhB,EAAI,2YAA4Y,KAEragB,EAAOD,QAAUA,G,8BCNjB;;;;;;;AAUA,IAAIiU,EAAS6E,EAAQ,IACjBC,EAAUD,EAAQ,IAClB/T,EAAU+T,EAAQ,IAmDtB,SAASE,IACP,OAAO9I,EAAO+I,oBACV,WACA,WAGN,SAASC,EAAcC,EAAMha,GAC3B,GAAI6Z,IAAe7Z,EACjB,MAAM,IAAIia,WAAW,8BAcvB,OAZIlJ,EAAO+I,qBAETE,EAAO,IAAInS,WAAW7H,IACjBka,UAAYnJ,EAAO7Q,WAGX,OAAT8Z,IACFA,EAAO,IAAIjJ,EAAO/Q,IAEpBga,EAAKha,OAASA,GAGTga,EAaT,SAASjJ,EAAQoJ,EAAKC,EAAkBpa,GACtC,KAAK+Q,EAAO+I,qBAAyB/P,gBAAgBgH,GACnD,OAAO,IAAIA,EAAOoJ,EAAKC,EAAkBpa,GAI3C,GAAmB,iBAARma,EAAkB,CAC3B,GAAgC,iBAArBC,EACT,MAAM,IAAIjY,MACR,qEAGJ,OAAOkY,EAAYtQ,KAAMoQ,GAE3B,OAAOjL,EAAKnF,KAAMoQ,EAAKC,EAAkBpa,GAW3C,SAASkP,EAAM8K,EAAMhW,EAAOoW,EAAkBpa,GAC5C,GAAqB,iBAAVgE,EACT,MAAM,IAAIoM,UAAU,yCAGtB,MAA2B,oBAAhB7G,aAA+BvF,aAAiBuF,YA6H7D,SAA0ByQ,EAAMM,EAAOC,EAAYva,GAGjD,GAFAsa,EAAME,WAEFD,EAAa,GAAKD,EAAME,WAAaD,EACvC,MAAM,IAAIN,WAAW,6BAGvB,GAAIK,EAAME,WAAaD,GAAcva,GAAU,GAC7C,MAAM,IAAIia,WAAW,6BAIrBK,OADiBtX,IAAfuX,QAAuCvX,IAAXhD,EACtB,IAAI6H,WAAWyS,QACHtX,IAAXhD,EACD,IAAI6H,WAAWyS,EAAOC,GAEtB,IAAI1S,WAAWyS,EAAOC,EAAYva,GAGxC+Q,EAAO+I,qBAETE,EAAOM,GACFJ,UAAYnJ,EAAO7Q,UAGxB8Z,EAAOS,EAAcT,EAAMM,GAE7B,OAAON,EAvJEU,CAAgBV,EAAMhW,EAAOoW,EAAkBpa,GAGnC,iBAAVgE,EAwFb,SAAqBgW,EAAMW,EAAQC,GACT,iBAAbA,GAAsC,KAAbA,IAClCA,EAAW,QAGb,IAAK7J,EAAO8J,WAAWD,GACrB,MAAM,IAAIxK,UAAU,8CAGtB,IAAIpQ,EAAwC,EAA/Bwa,EAAWG,EAAQC,GAG5BE,GAFJd,EAAOD,EAAaC,EAAMha,IAER+a,MAAMJ,EAAQC,GAE5BE,IAAW9a,IAIbga,EAAOA,EAAK/U,MAAM,EAAG6V,IAGvB,OAAOd,EA5GEgB,CAAWhB,EAAMhW,EAAOoW,GAsJnC,SAAqBJ,EAAMnT,GACzB,GAAIkK,EAAOhI,SAASlC,GAAM,CACxB,IAAIK,EAA4B,EAAtB+T,EAAQpU,EAAI7G,QAGtB,OAAoB,KAFpBga,EAAOD,EAAaC,EAAM9S,IAEjBlH,QAIT6G,EAAIqU,KAAKlB,EAAM,EAAG,EAAG9S,GAHZ8S,EAOX,GAAInT,EAAK,CACP,GAA4B,oBAAhB0C,aACR1C,EAAI4C,kBAAkBF,aAAgB,WAAY1C,EACpD,MAA0B,iBAAfA,EAAI7G,SA+8CLqG,EA/8CkCQ,EAAI7G,SAg9CrCqG,EA/8CF0T,EAAaC,EAAM,GAErBS,EAAcT,EAAMnT,GAG7B,GAAiB,WAAbA,EAAInE,MAAqBkD,EAAQiB,EAAIpH,MACvC,OAAOgb,EAAcT,EAAMnT,EAAIpH,MAw8CrC,IAAgB4G,EAp8Cd,MAAM,IAAI+J,UAAU,sFA9Kb+K,CAAWnB,EAAMhW,GA4B1B,SAASoX,EAAY5N,GACnB,GAAoB,iBAATA,EACT,MAAM,IAAI4C,UAAU,oCACf,GAAI5C,EAAO,EAChB,MAAM,IAAIyM,WAAW,wCA4BzB,SAASI,EAAaL,EAAMxM,GAG1B,GAFA4N,EAAW5N,GACXwM,EAAOD,EAAaC,EAAMxM,EAAO,EAAI,EAAoB,EAAhByN,EAAQzN,KAC5CuD,EAAO+I,oBACV,IAAK,IAAIha,EAAI,EAAGA,EAAI0N,IAAQ1N,EAC1Bka,EAAKla,GAAK,EAGd,OAAOka,EAwCT,SAASS,EAAeT,EAAMM,GAC5B,IAAIta,EAASsa,EAAMta,OAAS,EAAI,EAA4B,EAAxBib,EAAQX,EAAMta,QAClDga,EAAOD,EAAaC,EAAMha,GAC1B,IAAK,IAAIF,EAAI,EAAGA,EAAIE,EAAQF,GAAK,EAC/Bka,EAAKla,GAAgB,IAAXwa,EAAMxa,GAElB,OAAOka,EA+DT,SAASiB,EAASjb,GAGhB,GAAIA,GAAU6Z,IACZ,MAAM,IAAII,WAAW,0DACaJ,IAAa1U,SAAS,IAAM,UAEhE,OAAgB,EAATnF,EAsFT,SAASwa,EAAYG,EAAQC,GAC3B,GAAI7J,EAAOhI,SAAS4R,GAClB,OAAOA,EAAO3a,OAEhB,GAA2B,oBAAhBuJ,aAA6D,mBAAvBA,YAAYC,SACxDD,YAAYC,OAAOmR,IAAWA,aAAkBpR,aACnD,OAAOoR,EAAOH,WAEM,iBAAXG,IACTA,EAAS,GAAKA,GAGhB,IAAIzT,EAAMyT,EAAO3a,OACjB,GAAY,IAARkH,EAAW,OAAO,EAItB,IADA,IAAImU,GAAc,IAEhB,OAAQT,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO1T,EACT,IAAK,OACL,IAAK,QACL,UAAKlE,EACH,OAAOsY,EAAYX,GAAQ3a,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAANkH,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAOqU,EAAcZ,GAAQ3a,OAC/B,QACE,GAAIqb,EAAa,OAAOC,EAAYX,GAAQ3a,OAC5C4a,GAAY,GAAKA,GAAUnV,cAC3B4V,GAAc,GAMtB,SAASG,EAAcZ,EAAUa,EAAOC,GACtC,IAAIL,GAAc,EAclB,SALcrY,IAAVyY,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQ1R,KAAK/J,OACf,MAAO,GAOT,SAJYgD,IAAR0Y,GAAqBA,EAAM3R,KAAK/J,UAClC0b,EAAM3R,KAAK/J,QAGT0b,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTD,KAAW,GAGT,MAAO,GAKT,IAFKb,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAOe,EAAS5R,KAAM0R,EAAOC,GAE/B,IAAK,OACL,IAAK,QACH,OAAOE,EAAU7R,KAAM0R,EAAOC,GAEhC,IAAK,QACH,OAAOG,EAAW9R,KAAM0R,EAAOC,GAEjC,IAAK,SACL,IAAK,SACH,OAAOI,EAAY/R,KAAM0R,EAAOC,GAElC,IAAK,SACH,OAAOK,EAAYhS,KAAM0R,EAAOC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOM,EAAajS,KAAM0R,EAAOC,GAEnC,QACE,GAAIL,EAAa,MAAM,IAAIjL,UAAU,qBAAuBwK,GAC5DA,GAAYA,EAAW,IAAInV,cAC3B4V,GAAc,GAStB,SAASY,EAAM5R,EAAG7F,EAAGnB,GACnB,IAAIvD,EAAIuK,EAAE7F,GACV6F,EAAE7F,GAAK6F,EAAEhH,GACTgH,EAAEhH,GAAKvD,EAmIT,SAASoc,EAAsBzS,EAAQpD,EAAKkU,EAAYK,EAAUuB,GAEhE,GAAsB,IAAlB1S,EAAOzJ,OAAc,OAAQ,EAmBjC,GAhB0B,iBAAfua,GACTK,EAAWL,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAEhBA,GAAcA,EACV6B,MAAM7B,KAERA,EAAa4B,EAAM,EAAK1S,EAAOzJ,OAAS,GAItCua,EAAa,IAAGA,EAAa9Q,EAAOzJ,OAASua,GAC7CA,GAAc9Q,EAAOzJ,OAAQ,CAC/B,GAAImc,EAAK,OAAQ,EACZ5B,EAAa9Q,EAAOzJ,OAAS,OAC7B,GAAIua,EAAa,EAAG,CACzB,IAAI4B,EACC,OAAQ,EADJ5B,EAAa,EAUxB,GALmB,iBAARlU,IACTA,EAAM0K,EAAO7B,KAAK7I,EAAKuU,IAIrB7J,EAAOhI,SAAS1C,GAElB,OAAmB,IAAfA,EAAIrG,QACE,EAEHqc,EAAa5S,EAAQpD,EAAKkU,EAAYK,EAAUuB,GAClD,GAAmB,iBAAR9V,EAEhB,OADAA,GAAY,IACR0K,EAAO+I,qBACiC,mBAAjCjS,WAAW3H,UAAUyL,QAC1BwQ,EACKtU,WAAW3H,UAAUyL,QAAQvL,KAAKqJ,EAAQpD,EAAKkU,GAE/C1S,WAAW3H,UAAUoc,YAAYlc,KAAKqJ,EAAQpD,EAAKkU,GAGvD8B,EAAa5S,EAAQ,CAAEpD,GAAOkU,EAAYK,EAAUuB,GAG7D,MAAM,IAAI/L,UAAU,wCAGtB,SAASiM,EAAcxQ,EAAKxF,EAAKkU,EAAYK,EAAUuB,GACrD,IA0BIrc,EA1BAyc,EAAY,EACZC,EAAY3Q,EAAI7L,OAChByc,EAAYpW,EAAIrG,OAEpB,QAAiBgD,IAAb4X,IAEe,UADjBA,EAAWnP,OAAOmP,GAAUnV,gBACY,UAAbmV,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAI/O,EAAI7L,OAAS,GAAKqG,EAAIrG,OAAS,EACjC,OAAQ,EAEVuc,EAAY,EACZC,GAAa,EACbC,GAAa,EACblC,GAAc,EAIlB,SAASmC,EAAMC,EAAK7c,GAClB,OAAkB,IAAdyc,EACKI,EAAI7c,GAEJ6c,EAAIC,aAAa9c,EAAIyc,GAKhC,GAAIJ,EAAK,CACP,IAAIU,GAAc,EAClB,IAAK/c,EAAIya,EAAYza,EAAI0c,EAAW1c,IAClC,GAAI4c,EAAK7Q,EAAK/L,KAAO4c,EAAKrW,GAAqB,IAAhBwW,EAAoB,EAAI/c,EAAI+c,IAEzD,IADoB,IAAhBA,IAAmBA,EAAa/c,GAChCA,EAAI+c,EAAa,IAAMJ,EAAW,OAAOI,EAAaN,OAEtC,IAAhBM,IAAmB/c,GAAKA,EAAI+c,GAChCA,GAAc,OAKlB,IADItC,EAAakC,EAAYD,IAAWjC,EAAaiC,EAAYC,GAC5D3c,EAAIya,EAAYza,GAAK,EAAGA,IAAK,CAEhC,IADA,IAAIgd,GAAQ,EACH1F,EAAI,EAAGA,EAAIqF,EAAWrF,IAC7B,GAAIsF,EAAK7Q,EAAK/L,EAAIsX,KAAOsF,EAAKrW,EAAK+Q,GAAI,CACrC0F,GAAQ,EACR,MAGJ,GAAIA,EAAO,OAAOhd,EAItB,OAAQ,EAeV,SAASid,EAAUJ,EAAKhC,EAAQqC,EAAQhd,GACtCgd,EAAS3P,OAAO2P,IAAW,EAC3B,IAAIC,EAAYN,EAAI3c,OAASgd,EACxBhd,GAGHA,EAASqN,OAAOrN,IACHid,IACXjd,EAASid,GAJXjd,EAASid,EASX,IAAIC,EAASvC,EAAO3a,OACpB,GAAIkd,EAAS,GAAM,EAAG,MAAM,IAAI9M,UAAU,sBAEtCpQ,EAASkd,EAAS,IACpBld,EAASkd,EAAS,GAEpB,IAAK,IAAIpd,EAAI,EAAGA,EAAIE,IAAUF,EAAG,CAC/B,IAAIqd,EAASlE,SAAS0B,EAAOyC,OAAW,EAAJtd,EAAO,GAAI,IAC/C,GAAIsc,MAAMe,GAAS,OAAOrd,EAC1B6c,EAAIK,EAASld,GAAKqd,EAEpB,OAAOrd,EAGT,SAASud,EAAWV,EAAKhC,EAAQqC,EAAQhd,GACvC,OAAOsd,EAAWhC,EAAYX,EAAQgC,EAAI3c,OAASgd,GAASL,EAAKK,EAAQhd,GAG3E,SAASud,EAAYZ,EAAKhC,EAAQqC,EAAQhd,GACxC,OAAOsd,EAq6BT,SAAuB9X,GAErB,IADA,IAAIgY,EAAY,GACP1d,EAAI,EAAGA,EAAI0F,EAAIxF,SAAUF,EAEhC0d,EAAUld,KAAyB,IAApBkF,EAAImF,WAAW7K,IAEhC,OAAO0d,EA36BWC,CAAa9C,GAASgC,EAAKK,EAAQhd,GAGvD,SAAS0d,EAAaf,EAAKhC,EAAQqC,EAAQhd,GACzC,OAAOud,EAAWZ,EAAKhC,EAAQqC,EAAQhd,GAGzC,SAAS2d,EAAahB,EAAKhC,EAAQqC,EAAQhd,GACzC,OAAOsd,EAAW/B,EAAcZ,GAASgC,EAAKK,EAAQhd,GAGxD,SAAS4d,EAAWjB,EAAKhC,EAAQqC,EAAQhd,GACvC,OAAOsd,EAk6BT,SAAyB9X,EAAKqY,GAG5B,IAFA,IAAIva,EAAGwa,EAAIC,EACPP,EAAY,GACP1d,EAAI,EAAGA,EAAI0F,EAAIxF,WACjB6d,GAAS,GAAK,KADa/d,EAGhCwD,EAAIkC,EAAImF,WAAW7K,GACnBge,EAAKxa,GAAK,EACVya,EAAKza,EAAI,IACTka,EAAUld,KAAKyd,GACfP,EAAUld,KAAKwd,GAGjB,OAAON,EA/6BWQ,CAAerD,EAAQgC,EAAI3c,OAASgd,GAASL,EAAKK,EAAQhd,GAkF9E,SAAS+b,EAAaY,EAAKlB,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQiB,EAAI3c,OACtB8U,EAAOmJ,cAActB,GAErB7H,EAAOmJ,cAActB,EAAI1X,MAAMwW,EAAOC,IAIjD,SAASE,EAAWe,EAAKlB,EAAOC,GAC9BA,EAAMhO,KAAK0L,IAAIuD,EAAI3c,OAAQ0b,GAI3B,IAHA,IAAIwC,EAAM,GAENpe,EAAI2b,EACD3b,EAAI4b,GAAK,CACd,IAQMyC,EAAYC,EAAWC,EAAYC,EARrCC,EAAY5B,EAAI7c,GAChB0e,EAAY,KACZC,EAAoBF,EAAY,IAAQ,EACvCA,EAAY,IAAQ,EACpBA,EAAY,IAAQ,EACrB,EAEJ,GAAIze,EAAI2e,GAAoB/C,EAG1B,OAAQ+C,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EAEyB,MAAV,KADlBJ,EAAaxB,EAAI7c,EAAI,OAEnBwe,GAA6B,GAAZC,IAAqB,EAAoB,GAAbJ,GACzB,MAClBK,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAaxB,EAAI7c,EAAI,GACrBse,EAAYzB,EAAI7c,EAAI,GACQ,MAAV,IAAbqe,IAAsD,MAAV,IAAZC,KACnCE,GAA6B,GAAZC,IAAoB,IAAoB,GAAbJ,IAAsB,EAAmB,GAAZC,GACrD,OAAUE,EAAgB,OAAUA,EAAgB,SACtEE,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAaxB,EAAI7c,EAAI,GACrBse,EAAYzB,EAAI7c,EAAI,GACpBue,EAAa1B,EAAI7c,EAAI,GACO,MAAV,IAAbqe,IAAsD,MAAV,IAAZC,IAAsD,MAAV,IAAbC,KAClEC,GAA6B,GAAZC,IAAoB,IAAqB,GAAbJ,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,GAClF,OAAUC,EAAgB,UAC5CE,EAAYF,GAMJ,OAAdE,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbN,EAAI5d,KAAKke,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBN,EAAI5d,KAAKke,GACT1e,GAAK2e,EAGP,OAQF,SAAgCC,GAC9B,IAAIxX,EAAMwX,EAAW1e,OACrB,GAAIkH,GAJqB,KAKvB,OAAOuE,OAAOkT,aAAarK,MAAM7I,OAAQiT,GAI3C,IAAIR,EAAM,GACNpe,EAAI,EACR,KAAOA,EAAIoH,GACTgX,GAAOzS,OAAOkT,aAAarK,MACzB7I,OACAiT,EAAWzZ,MAAMnF,EAAGA,GAdC,OAiBzB,OAAOoe,EAvBAU,CAAsBV,GA98B/Brd,EAAQkQ,OAASA,EACjBlQ,EAAQge,WAoTR,SAAqB7e,IACdA,GAAUA,IACbA,EAAS,GAEX,OAAO+Q,EAAO+N,OAAO9e,IAvTvBa,EAAQke,kBAAoB,GA0B5BhO,EAAO+I,yBAAqD9W,IAA/BwE,EAAOsS,oBAChCtS,EAAOsS,oBAQX,WACE,IACE,IAAIjO,EAAM,IAAIhE,WAAW,GAEzB,OADAgE,EAAIqO,UAAY,CAACA,UAAWrS,WAAW3H,UAAW8e,IAAK,WAAc,OAAO,KACvD,KAAdnT,EAAImT,OACiB,mBAAjBnT,EAAIoT,UACuB,IAAlCpT,EAAIoT,SAAS,EAAG,GAAGzE,WACvB,MAAOxZ,GACP,OAAO,GAfPke,GAKJre,EAAQgZ,WAAaA,IAkErB9I,EAAOoO,SAAW,KAGlBpO,EAAOqO,SAAW,SAAUvT,GAE1B,OADAA,EAAIqO,UAAYnJ,EAAO7Q,UAChB2L,GA2BTkF,EAAO7B,KAAO,SAAUlL,EAAOoW,EAAkBpa,GAC/C,OAAOkP,EAAK,KAAMlL,EAAOoW,EAAkBpa,IAGzC+Q,EAAO+I,sBACT/I,EAAO7Q,UAAUga,UAAYrS,WAAW3H,UACxC6Q,EAAOmJ,UAAYrS,WACG,oBAAX/D,QAA0BA,OAAOub,SACxCtO,EAAOjN,OAAOub,WAAatO,GAE7B9Q,OAAOyD,eAAeqN,EAAQjN,OAAOub,QAAS,CAC5Crb,MAAO,KACPsb,cAAc,KAiCpBvO,EAAO+N,MAAQ,SAAUtR,EAAM+R,EAAM3E,GACnC,OArBF,SAAgBZ,EAAMxM,EAAM+R,EAAM3E,GAEhC,OADAQ,EAAW5N,GACPA,GAAQ,EACHuM,EAAaC,EAAMxM,QAEfxK,IAATuc,EAIyB,iBAAb3E,EACVb,EAAaC,EAAMxM,GAAM+R,KAAKA,EAAM3E,GACpCb,EAAaC,EAAMxM,GAAM+R,KAAKA,GAE7BxF,EAAaC,EAAMxM,GAQnBsR,CAAM,KAAMtR,EAAM+R,EAAM3E,IAiBjC7J,EAAOsJ,YAAc,SAAU7M,GAC7B,OAAO6M,EAAY,KAAM7M,IAK3BuD,EAAOyO,gBAAkB,SAAUhS,GACjC,OAAO6M,EAAY,KAAM7M,IAiH3BuD,EAAOhI,SAAW,SAAmBsB,GACnC,QAAe,MAALA,IAAaA,EAAEoV,YAG3B1O,EAAO2O,QAAU,SAAkBtV,EAAGC,GACpC,IAAK0G,EAAOhI,SAASqB,KAAO2G,EAAOhI,SAASsB,GAC1C,MAAM,IAAI+F,UAAU,6BAGtB,GAAIhG,IAAMC,EAAG,OAAO,EAKpB,IAHA,IAAI2O,EAAI5O,EAAEpK,OACN2f,EAAItV,EAAErK,OAEDF,EAAI,EAAGoH,EAAMwG,KAAK0L,IAAIJ,EAAG2G,GAAI7f,EAAIoH,IAAOpH,EAC/C,GAAIsK,EAAEtK,KAAOuK,EAAEvK,GAAI,CACjBkZ,EAAI5O,EAAEtK,GACN6f,EAAItV,EAAEvK,GACN,MAIJ,OAAIkZ,EAAI2G,GAAW,EACfA,EAAI3G,EAAU,EACX,GAGTjI,EAAO8J,WAAa,SAAqBD,GACvC,OAAQnP,OAAOmP,GAAUnV,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,IAIbsL,EAAOpB,OAAS,SAAiB6E,EAAMxU,GACrC,IAAK4F,EAAQ4O,GACX,MAAM,IAAIpE,UAAU,+CAGtB,GAAoB,IAAhBoE,EAAKxU,OACP,OAAO+Q,EAAO+N,MAAM,GAGtB,IAAIhf,EACJ,QAAekD,IAAXhD,EAEF,IADAA,EAAS,EACJF,EAAI,EAAGA,EAAI0U,EAAKxU,SAAUF,EAC7BE,GAAUwU,EAAK1U,GAAGE,OAItB,IAAIyJ,EAASsH,EAAOsJ,YAAYra,GAC5B4f,EAAM,EACV,IAAK9f,EAAI,EAAGA,EAAI0U,EAAKxU,SAAUF,EAAG,CAChC,IAAI6c,EAAMnI,EAAK1U,GACf,IAAKiR,EAAOhI,SAAS4T,GACnB,MAAM,IAAIvM,UAAU,+CAEtBuM,EAAIzB,KAAKzR,EAAQmW,GACjBA,GAAOjD,EAAI3c,OAEb,OAAOyJ,GA8CTsH,EAAOyJ,WAAaA,EA0EpBzJ,EAAO7Q,UAAUuf,WAAY,EAQ7B1O,EAAO7Q,UAAU2f,OAAS,WACxB,IAAI3Y,EAAM6C,KAAK/J,OACf,GAAIkH,EAAM,GAAM,EACd,MAAM,IAAI+S,WAAW,6CAEvB,IAAK,IAAIna,EAAI,EAAGA,EAAIoH,EAAKpH,GAAK,EAC5Bmc,EAAKlS,KAAMjK,EAAGA,EAAI,GAEpB,OAAOiK,MAGTgH,EAAO7Q,UAAU4f,OAAS,WACxB,IAAI5Y,EAAM6C,KAAK/J,OACf,GAAIkH,EAAM,GAAM,EACd,MAAM,IAAI+S,WAAW,6CAEvB,IAAK,IAAIna,EAAI,EAAGA,EAAIoH,EAAKpH,GAAK,EAC5Bmc,EAAKlS,KAAMjK,EAAGA,EAAI,GAClBmc,EAAKlS,KAAMjK,EAAI,EAAGA,EAAI,GAExB,OAAOiK,MAGTgH,EAAO7Q,UAAU6f,OAAS,WACxB,IAAI7Y,EAAM6C,KAAK/J,OACf,GAAIkH,EAAM,GAAM,EACd,MAAM,IAAI+S,WAAW,6CAEvB,IAAK,IAAIna,EAAI,EAAGA,EAAIoH,EAAKpH,GAAK,EAC5Bmc,EAAKlS,KAAMjK,EAAGA,EAAI,GAClBmc,EAAKlS,KAAMjK,EAAI,EAAGA,EAAI,GACtBmc,EAAKlS,KAAMjK,EAAI,EAAGA,EAAI,GACtBmc,EAAKlS,KAAMjK,EAAI,EAAGA,EAAI,GAExB,OAAOiK,MAGTgH,EAAO7Q,UAAUiF,SAAW,WAC1B,IAAInF,EAAuB,EAAd+J,KAAK/J,OAClB,OAAe,IAAXA,EAAqB,GACA,IAArBkK,UAAUlK,OAAqB4b,EAAU7R,KAAM,EAAG/J,GAC/Cwb,EAAalH,MAAMvK,KAAMG,YAGlC6G,EAAO7Q,UAAU8f,OAAS,SAAiB3V,GACzC,IAAK0G,EAAOhI,SAASsB,GAAI,MAAM,IAAI+F,UAAU,6BAC7C,OAAIrG,OAASM,GACsB,IAA5B0G,EAAO2O,QAAQ3V,KAAMM,IAG9B0G,EAAO7Q,UAAU+f,QAAU,WACzB,IAAIza,EAAM,GACN0a,EAAMrf,EAAQke,kBAKlB,OAJIhV,KAAK/J,OAAS,IAChBwF,EAAMuE,KAAK5E,SAAS,MAAO,EAAG+a,GAAKC,MAAM,SAASrQ,KAAK,KACnD/F,KAAK/J,OAASkgB,IAAK1a,GAAO,UAEzB,WAAaA,EAAM,KAG5BuL,EAAO7Q,UAAUwf,QAAU,SAAkB9c,EAAQ6Y,EAAOC,EAAK0E,EAAWC,GAC1E,IAAKtP,EAAOhI,SAASnG,GACnB,MAAM,IAAIwN,UAAU,6BAgBtB,QAbcpN,IAAVyY,IACFA,EAAQ,QAEEzY,IAAR0Y,IACFA,EAAM9Y,EAASA,EAAO5C,OAAS,QAEfgD,IAAdod,IACFA,EAAY,QAEEpd,IAAZqd,IACFA,EAAUtW,KAAK/J,QAGbyb,EAAQ,GAAKC,EAAM9Y,EAAO5C,QAAUogB,EAAY,GAAKC,EAAUtW,KAAK/J,OACtE,MAAM,IAAIia,WAAW,sBAGvB,GAAImG,GAAaC,GAAW5E,GAASC,EACnC,OAAO,EAET,GAAI0E,GAAaC,EACf,OAAQ,EAEV,GAAI5E,GAASC,EACX,OAAO,EAQT,GAAI3R,OAASnH,EAAQ,OAAO,EAS5B,IAPA,IAAIoW,GAJJqH,KAAa,IADbD,KAAe,GAMXT,GAPJjE,KAAS,IADTD,KAAW,GASPvU,EAAMwG,KAAK0L,IAAIJ,EAAG2G,GAElBW,EAAWvW,KAAK9E,MAAMmb,EAAWC,GACjCE,EAAa3d,EAAOqC,MAAMwW,EAAOC,GAE5B5b,EAAI,EAAGA,EAAIoH,IAAOpH,EACzB,GAAIwgB,EAASxgB,KAAOygB,EAAWzgB,GAAI,CACjCkZ,EAAIsH,EAASxgB,GACb6f,EAAIY,EAAWzgB,GACf,MAIJ,OAAIkZ,EAAI2G,GAAW,EACfA,EAAI3G,EAAU,EACX,GA6HTjI,EAAO7Q,UAAUsgB,SAAW,SAAmBna,EAAKkU,EAAYK,GAC9D,OAAoD,IAA7C7Q,KAAK4B,QAAQtF,EAAKkU,EAAYK,IAGvC7J,EAAO7Q,UAAUyL,QAAU,SAAkBtF,EAAKkU,EAAYK,GAC5D,OAAOsB,EAAqBnS,KAAM1D,EAAKkU,EAAYK,GAAU,IAG/D7J,EAAO7Q,UAAUoc,YAAc,SAAsBjW,EAAKkU,EAAYK,GACpE,OAAOsB,EAAqBnS,KAAM1D,EAAKkU,EAAYK,GAAU,IAkD/D7J,EAAO7Q,UAAU6a,MAAQ,SAAgBJ,EAAQqC,EAAQhd,EAAQ4a,GAE/D,QAAe5X,IAAXga,EACFpC,EAAW,OACX5a,EAAS+J,KAAK/J,OACdgd,EAAS,OAEJ,QAAeha,IAAXhD,GAA0C,iBAAXgd,EACxCpC,EAAWoC,EACXhd,EAAS+J,KAAK/J,OACdgd,EAAS,MAEJ,KAAI1P,SAAS0P,GAWlB,MAAM,IAAI7a,MACR,2EAXF6a,GAAkB,EACd1P,SAAStN,IACXA,GAAkB,OACDgD,IAAb4X,IAAwBA,EAAW,UAEvCA,EAAW5a,EACXA,OAASgD,GASb,IAAIia,EAAYlT,KAAK/J,OAASgd,EAG9B,SAFeha,IAAXhD,GAAwBA,EAASid,KAAWjd,EAASid,GAEpDtC,EAAO3a,OAAS,IAAMA,EAAS,GAAKgd,EAAS,IAAOA,EAASjT,KAAK/J,OACrE,MAAM,IAAIia,WAAW,0CAGlBW,IAAUA,EAAW,QAG1B,IADA,IAAIS,GAAc,IAEhB,OAAQT,GACN,IAAK,MACH,OAAOmC,EAAShT,KAAM4Q,EAAQqC,EAAQhd,GAExC,IAAK,OACL,IAAK,QACH,OAAOqd,EAAUtT,KAAM4Q,EAAQqC,EAAQhd,GAEzC,IAAK,QACH,OAAOud,EAAWxT,KAAM4Q,EAAQqC,EAAQhd,GAE1C,IAAK,SACL,IAAK,SACH,OAAO0d,EAAY3T,KAAM4Q,EAAQqC,EAAQhd,GAE3C,IAAK,SAEH,OAAO2d,EAAY5T,KAAM4Q,EAAQqC,EAAQhd,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO4d,EAAU7T,KAAM4Q,EAAQqC,EAAQhd,GAEzC,QACE,GAAIqb,EAAa,MAAM,IAAIjL,UAAU,qBAAuBwK,GAC5DA,GAAY,GAAKA,GAAUnV,cAC3B4V,GAAc,IAKtBtK,EAAO7Q,UAAUyO,OAAS,WACxB,MAAO,CACLjM,KAAM,SACNjD,KAAMoG,MAAM3F,UAAU+E,MAAM7E,KAAK2J,KAAK0W,MAAQ1W,KAAM,KA4GxD,SAAS8R,EAAYc,EAAKlB,EAAOC,GAC/B,IAAInT,EAAM,GACVmT,EAAMhO,KAAK0L,IAAIuD,EAAI3c,OAAQ0b,GAE3B,IAAK,IAAI5b,EAAI2b,EAAO3b,EAAI4b,IAAO5b,EAC7ByI,GAAOkD,OAAOkT,aAAsB,IAAThC,EAAI7c,IAEjC,OAAOyI,EAGT,SAASuT,EAAaa,EAAKlB,EAAOC,GAChC,IAAInT,EAAM,GACVmT,EAAMhO,KAAK0L,IAAIuD,EAAI3c,OAAQ0b,GAE3B,IAAK,IAAI5b,EAAI2b,EAAO3b,EAAI4b,IAAO5b,EAC7ByI,GAAOkD,OAAOkT,aAAahC,EAAI7c,IAEjC,OAAOyI,EAGT,SAASoT,EAAUgB,EAAKlB,EAAOC,GAC7B,IAAIxU,EAAMyV,EAAI3c,SAETyb,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAMxU,KAAKwU,EAAMxU,GAGxC,IADA,IAAIwZ,EAAM,GACD5gB,EAAI2b,EAAO3b,EAAI4b,IAAO5b,EAC7B4gB,GAAOpH,EAAMqD,EAAI7c,IAEnB,OAAO4gB,EAGT,SAAS1E,EAAcW,EAAKlB,EAAOC,GAGjC,IAFA,IAAIiF,EAAQhE,EAAI1X,MAAMwW,EAAOC,GACzBwC,EAAM,GACDpe,EAAI,EAAGA,EAAI6gB,EAAM3gB,OAAQF,GAAK,EACrCoe,GAAOzS,OAAOkT,aAAagC,EAAM7gB,GAAoB,IAAf6gB,EAAM7gB,EAAI,IAElD,OAAOoe,EA0CT,SAAS0C,EAAa5D,EAAQ6D,EAAK7gB,GACjC,GAAKgd,EAAS,GAAO,GAAKA,EAAS,EAAG,MAAM,IAAI/C,WAAW,sBAC3D,GAAI+C,EAAS6D,EAAM7gB,EAAQ,MAAM,IAAIia,WAAW,yCA+JlD,SAAS6G,EAAUnE,EAAK3Y,EAAOgZ,EAAQ6D,EAAKX,EAAK9G,GAC/C,IAAKrI,EAAOhI,SAAS4T,GAAM,MAAM,IAAIvM,UAAU,+CAC/C,GAAIpM,EAAQkc,GAAOlc,EAAQoV,EAAK,MAAM,IAAIa,WAAW,qCACrD,GAAI+C,EAAS6D,EAAMlE,EAAI3c,OAAQ,MAAM,IAAIia,WAAW,sBAkDtD,SAAS8G,EAAmBpE,EAAK3Y,EAAOgZ,EAAQgE,GAC1Chd,EAAQ,IAAGA,EAAQ,MAASA,EAAQ,GACxC,IAAK,IAAIlE,EAAI,EAAGsX,EAAI1J,KAAK0L,IAAIuD,EAAI3c,OAASgd,EAAQ,GAAIld,EAAIsX,IAAKtX,EAC7D6c,EAAIK,EAASld,IAAMkE,EAAS,KAAS,GAAKgd,EAAelhB,EAAI,EAAIA,MAClC,GAA5BkhB,EAAelhB,EAAI,EAAIA,GA8B9B,SAASmhB,EAAmBtE,EAAK3Y,EAAOgZ,EAAQgE,GAC1Chd,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5C,IAAK,IAAIlE,EAAI,EAAGsX,EAAI1J,KAAK0L,IAAIuD,EAAI3c,OAASgd,EAAQ,GAAIld,EAAIsX,IAAKtX,EAC7D6c,EAAIK,EAASld,GAAMkE,IAAuC,GAA5Bgd,EAAelhB,EAAI,EAAIA,GAAU,IAmJnE,SAASohB,EAAcvE,EAAK3Y,EAAOgZ,EAAQ6D,EAAKX,EAAK9G,GACnD,GAAI4D,EAAS6D,EAAMlE,EAAI3c,OAAQ,MAAM,IAAIia,WAAW,sBACpD,GAAI+C,EAAS,EAAG,MAAM,IAAI/C,WAAW,sBAGvC,SAASkH,EAAYxE,EAAK3Y,EAAOgZ,EAAQgE,EAAcI,GAKrD,OAJKA,GACHF,EAAavE,EAAK3Y,EAAOgZ,EAAQ,GAEnCpD,EAAQmB,MAAM4B,EAAK3Y,EAAOgZ,EAAQgE,EAAc,GAAI,GAC7ChE,EAAS,EAWlB,SAASqE,EAAa1E,EAAK3Y,EAAOgZ,EAAQgE,EAAcI,GAKtD,OAJKA,GACHF,EAAavE,EAAK3Y,EAAOgZ,EAAQ,GAEnCpD,EAAQmB,MAAM4B,EAAK3Y,EAAOgZ,EAAQgE,EAAc,GAAI,GAC7ChE,EAAS,EA/clBjM,EAAO7Q,UAAU+E,MAAQ,SAAgBwW,EAAOC,GAC9C,IAoBI4F,EApBApa,EAAM6C,KAAK/J,OAqBf,IApBAyb,IAAUA,GAGE,GACVA,GAASvU,GACG,IAAGuU,EAAQ,GACdA,EAAQvU,IACjBuU,EAAQvU,IANVwU,OAAc1Y,IAAR0Y,EAAoBxU,IAAQwU,GASxB,GACRA,GAAOxU,GACG,IAAGwU,EAAM,GACVA,EAAMxU,IACfwU,EAAMxU,GAGJwU,EAAMD,IAAOC,EAAMD,GAGnB1K,EAAO+I,qBACTwH,EAASvX,KAAKkV,SAASxD,EAAOC,IACvBxB,UAAYnJ,EAAO7Q,cACrB,CACL,IAAIqhB,EAAW7F,EAAMD,EACrB6F,EAAS,IAAIvQ,EAAOwQ,OAAUve,GAC9B,IAAK,IAAIlD,EAAI,EAAGA,EAAIyhB,IAAYzhB,EAC9BwhB,EAAOxhB,GAAKiK,KAAKjK,EAAI2b,GAIzB,OAAO6F,GAWTvQ,EAAO7Q,UAAUshB,WAAa,SAAqBxE,EAAQxC,EAAY4G,GACrEpE,GAAkB,EAClBxC,GAA0B,EACrB4G,GAAUR,EAAY5D,EAAQxC,EAAYzQ,KAAK/J,QAKpD,IAHA,IAAIqG,EAAM0D,KAAKiT,GACXyE,EAAM,EACN3hB,EAAI,IACCA,EAAI0a,IAAeiH,GAAO,MACjCpb,GAAO0D,KAAKiT,EAASld,GAAK2hB,EAG5B,OAAOpb,GAGT0K,EAAO7Q,UAAUwhB,WAAa,SAAqB1E,EAAQxC,EAAY4G,GACrEpE,GAAkB,EAClBxC,GAA0B,EACrB4G,GACHR,EAAY5D,EAAQxC,EAAYzQ,KAAK/J,QAKvC,IAFA,IAAIqG,EAAM0D,KAAKiT,IAAWxC,GACtBiH,EAAM,EACHjH,EAAa,IAAMiH,GAAO,MAC/Bpb,GAAO0D,KAAKiT,IAAWxC,GAAciH,EAGvC,OAAOpb,GAGT0K,EAAO7Q,UAAUyhB,UAAY,SAAoB3E,EAAQoE,GAEvD,OADKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QACpC+J,KAAKiT,IAGdjM,EAAO7Q,UAAU0hB,aAAe,SAAuB5E,EAAQoE,GAE7D,OADKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QACpC+J,KAAKiT,GAAWjT,KAAKiT,EAAS,IAAM,GAG7CjM,EAAO7Q,UAAU0c,aAAe,SAAuBI,EAAQoE,GAE7D,OADKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QACnC+J,KAAKiT,IAAW,EAAKjT,KAAKiT,EAAS,IAG7CjM,EAAO7Q,UAAU2hB,aAAe,SAAuB7E,EAAQoE,GAG7D,OAFKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,SAElC+J,KAAKiT,GACTjT,KAAKiT,EAAS,IAAM,EACpBjT,KAAKiT,EAAS,IAAM,IACD,SAAnBjT,KAAKiT,EAAS,IAGrBjM,EAAO7Q,UAAU4hB,aAAe,SAAuB9E,EAAQoE,GAG7D,OAFKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QAEpB,SAAf+J,KAAKiT,IACTjT,KAAKiT,EAAS,IAAM,GACrBjT,KAAKiT,EAAS,IAAM,EACrBjT,KAAKiT,EAAS,KAGlBjM,EAAO7Q,UAAU6hB,UAAY,SAAoB/E,EAAQxC,EAAY4G,GACnEpE,GAAkB,EAClBxC,GAA0B,EACrB4G,GAAUR,EAAY5D,EAAQxC,EAAYzQ,KAAK/J,QAKpD,IAHA,IAAIqG,EAAM0D,KAAKiT,GACXyE,EAAM,EACN3hB,EAAI,IACCA,EAAI0a,IAAeiH,GAAO,MACjCpb,GAAO0D,KAAKiT,EAASld,GAAK2hB,EAM5B,OAFIpb,IAFJob,GAAO,OAESpb,GAAOqH,KAAKsU,IAAI,EAAG,EAAIxH,IAEhCnU,GAGT0K,EAAO7Q,UAAU+hB,UAAY,SAAoBjF,EAAQxC,EAAY4G,GACnEpE,GAAkB,EAClBxC,GAA0B,EACrB4G,GAAUR,EAAY5D,EAAQxC,EAAYzQ,KAAK/J,QAKpD,IAHA,IAAIF,EAAI0a,EACJiH,EAAM,EACNpb,EAAM0D,KAAKiT,IAAWld,GACnBA,EAAI,IAAM2hB,GAAO,MACtBpb,GAAO0D,KAAKiT,IAAWld,GAAK2hB,EAM9B,OAFIpb,IAFJob,GAAO,OAESpb,GAAOqH,KAAKsU,IAAI,EAAG,EAAIxH,IAEhCnU,GAGT0K,EAAO7Q,UAAUgiB,SAAW,SAAmBlF,EAAQoE,GAErD,OADKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QACtB,IAAf+J,KAAKiT,IAC0B,GAA5B,IAAOjT,KAAKiT,GAAU,GADKjT,KAAKiT,IAI3CjM,EAAO7Q,UAAUiiB,YAAc,SAAsBnF,EAAQoE,GACtDA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QAC3C,IAAIqG,EAAM0D,KAAKiT,GAAWjT,KAAKiT,EAAS,IAAM,EAC9C,OAAc,MAAN3W,EAAsB,WAANA,EAAmBA,GAG7C0K,EAAO7Q,UAAUkiB,YAAc,SAAsBpF,EAAQoE,GACtDA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QAC3C,IAAIqG,EAAM0D,KAAKiT,EAAS,GAAMjT,KAAKiT,IAAW,EAC9C,OAAc,MAAN3W,EAAsB,WAANA,EAAmBA,GAG7C0K,EAAO7Q,UAAUmiB,YAAc,SAAsBrF,EAAQoE,GAG3D,OAFKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QAEnC+J,KAAKiT,GACVjT,KAAKiT,EAAS,IAAM,EACpBjT,KAAKiT,EAAS,IAAM,GACpBjT,KAAKiT,EAAS,IAAM,IAGzBjM,EAAO7Q,UAAUoiB,YAAc,SAAsBtF,EAAQoE,GAG3D,OAFKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QAEnC+J,KAAKiT,IAAW,GACrBjT,KAAKiT,EAAS,IAAM,GACpBjT,KAAKiT,EAAS,IAAM,EACpBjT,KAAKiT,EAAS,IAGnBjM,EAAO7Q,UAAUqiB,YAAc,SAAsBvF,EAAQoE,GAE3D,OADKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QACpC4Z,EAAQ8C,KAAK3S,KAAMiT,GAAQ,EAAM,GAAI,IAG9CjM,EAAO7Q,UAAUsiB,YAAc,SAAsBxF,EAAQoE,GAE3D,OADKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QACpC4Z,EAAQ8C,KAAK3S,KAAMiT,GAAQ,EAAO,GAAI,IAG/CjM,EAAO7Q,UAAUuiB,aAAe,SAAuBzF,EAAQoE,GAE7D,OADKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QACpC4Z,EAAQ8C,KAAK3S,KAAMiT,GAAQ,EAAM,GAAI,IAG9CjM,EAAO7Q,UAAUwiB,aAAe,SAAuB1F,EAAQoE,GAE7D,OADKA,GAAUR,EAAY5D,EAAQ,EAAGjT,KAAK/J,QACpC4Z,EAAQ8C,KAAK3S,KAAMiT,GAAQ,EAAO,GAAI,IAS/CjM,EAAO7Q,UAAUyiB,YAAc,SAAsB3e,EAAOgZ,EAAQxC,EAAY4G,IAC9Epd,GAASA,EACTgZ,GAAkB,EAClBxC,GAA0B,EACrB4G,IAEHN,EAAS/W,KAAM/F,EAAOgZ,EAAQxC,EADf9M,KAAKsU,IAAI,EAAG,EAAIxH,GAAc,EACO,GAGtD,IAAIiH,EAAM,EACN3hB,EAAI,EAER,IADAiK,KAAKiT,GAAkB,IAARhZ,IACNlE,EAAI0a,IAAeiH,GAAO,MACjC1X,KAAKiT,EAASld,GAAMkE,EAAQyd,EAAO,IAGrC,OAAOzE,EAASxC,GAGlBzJ,EAAO7Q,UAAU0iB,YAAc,SAAsB5e,EAAOgZ,EAAQxC,EAAY4G,IAC9Epd,GAASA,EACTgZ,GAAkB,EAClBxC,GAA0B,EACrB4G,IAEHN,EAAS/W,KAAM/F,EAAOgZ,EAAQxC,EADf9M,KAAKsU,IAAI,EAAG,EAAIxH,GAAc,EACO,GAGtD,IAAI1a,EAAI0a,EAAa,EACjBiH,EAAM,EAEV,IADA1X,KAAKiT,EAASld,GAAa,IAARkE,IACVlE,GAAK,IAAM2hB,GAAO,MACzB1X,KAAKiT,EAASld,GAAMkE,EAAQyd,EAAO,IAGrC,OAAOzE,EAASxC,GAGlBzJ,EAAO7Q,UAAU2iB,WAAa,SAAqB7e,EAAOgZ,EAAQoE,GAMhE,OALApd,GAASA,EACTgZ,GAAkB,EACboE,GAAUN,EAAS/W,KAAM/F,EAAOgZ,EAAQ,EAAG,IAAM,GACjDjM,EAAO+I,sBAAqB9V,EAAQ0J,KAAKoV,MAAM9e,IACpD+F,KAAKiT,GAAmB,IAARhZ,EACTgZ,EAAS,GAWlBjM,EAAO7Q,UAAU6iB,cAAgB,SAAwB/e,EAAOgZ,EAAQoE,GAUtE,OATApd,GAASA,EACTgZ,GAAkB,EACboE,GAAUN,EAAS/W,KAAM/F,EAAOgZ,EAAQ,EAAG,MAAQ,GACpDjM,EAAO+I,qBACT/P,KAAKiT,GAAmB,IAARhZ,EAChB+F,KAAKiT,EAAS,GAAMhZ,IAAU,GAE9B+c,EAAkBhX,KAAM/F,EAAOgZ,GAAQ,GAElCA,EAAS,GAGlBjM,EAAO7Q,UAAU8iB,cAAgB,SAAwBhf,EAAOgZ,EAAQoE,GAUtE,OATApd,GAASA,EACTgZ,GAAkB,EACboE,GAAUN,EAAS/W,KAAM/F,EAAOgZ,EAAQ,EAAG,MAAQ,GACpDjM,EAAO+I,qBACT/P,KAAKiT,GAAWhZ,IAAU,EAC1B+F,KAAKiT,EAAS,GAAc,IAARhZ,GAEpB+c,EAAkBhX,KAAM/F,EAAOgZ,GAAQ,GAElCA,EAAS,GAUlBjM,EAAO7Q,UAAU+iB,cAAgB,SAAwBjf,EAAOgZ,EAAQoE,GAYtE,OAXApd,GAASA,EACTgZ,GAAkB,EACboE,GAAUN,EAAS/W,KAAM/F,EAAOgZ,EAAQ,EAAG,WAAY,GACxDjM,EAAO+I,qBACT/P,KAAKiT,EAAS,GAAMhZ,IAAU,GAC9B+F,KAAKiT,EAAS,GAAMhZ,IAAU,GAC9B+F,KAAKiT,EAAS,GAAMhZ,IAAU,EAC9B+F,KAAKiT,GAAmB,IAARhZ,GAEhBid,EAAkBlX,KAAM/F,EAAOgZ,GAAQ,GAElCA,EAAS,GAGlBjM,EAAO7Q,UAAUgjB,cAAgB,SAAwBlf,EAAOgZ,EAAQoE,GAYtE,OAXApd,GAASA,EACTgZ,GAAkB,EACboE,GAAUN,EAAS/W,KAAM/F,EAAOgZ,EAAQ,EAAG,WAAY,GACxDjM,EAAO+I,qBACT/P,KAAKiT,GAAWhZ,IAAU,GAC1B+F,KAAKiT,EAAS,GAAMhZ,IAAU,GAC9B+F,KAAKiT,EAAS,GAAMhZ,IAAU,EAC9B+F,KAAKiT,EAAS,GAAc,IAARhZ,GAEpBid,EAAkBlX,KAAM/F,EAAOgZ,GAAQ,GAElCA,EAAS,GAGlBjM,EAAO7Q,UAAUijB,WAAa,SAAqBnf,EAAOgZ,EAAQxC,EAAY4G,GAG5E,GAFApd,GAASA,EACTgZ,GAAkB,GACboE,EAAU,CACb,IAAIgC,EAAQ1V,KAAKsU,IAAI,EAAG,EAAIxH,EAAa,GAEzCsG,EAAS/W,KAAM/F,EAAOgZ,EAAQxC,EAAY4I,EAAQ,GAAIA,GAGxD,IAAItjB,EAAI,EACJ2hB,EAAM,EACN4B,EAAM,EAEV,IADAtZ,KAAKiT,GAAkB,IAARhZ,IACNlE,EAAI0a,IAAeiH,GAAO,MAC7Bzd,EAAQ,GAAa,IAARqf,GAAsC,IAAzBtZ,KAAKiT,EAASld,EAAI,KAC9CujB,EAAM,GAERtZ,KAAKiT,EAASld,IAAOkE,EAAQyd,GAAQ,GAAK4B,EAAM,IAGlD,OAAOrG,EAASxC,GAGlBzJ,EAAO7Q,UAAUojB,WAAa,SAAqBtf,EAAOgZ,EAAQxC,EAAY4G,GAG5E,GAFApd,GAASA,EACTgZ,GAAkB,GACboE,EAAU,CACb,IAAIgC,EAAQ1V,KAAKsU,IAAI,EAAG,EAAIxH,EAAa,GAEzCsG,EAAS/W,KAAM/F,EAAOgZ,EAAQxC,EAAY4I,EAAQ,GAAIA,GAGxD,IAAItjB,EAAI0a,EAAa,EACjBiH,EAAM,EACN4B,EAAM,EAEV,IADAtZ,KAAKiT,EAASld,GAAa,IAARkE,IACVlE,GAAK,IAAM2hB,GAAO,MACrBzd,EAAQ,GAAa,IAARqf,GAAsC,IAAzBtZ,KAAKiT,EAASld,EAAI,KAC9CujB,EAAM,GAERtZ,KAAKiT,EAASld,IAAOkE,EAAQyd,GAAQ,GAAK4B,EAAM,IAGlD,OAAOrG,EAASxC,GAGlBzJ,EAAO7Q,UAAUqjB,UAAY,SAAoBvf,EAAOgZ,EAAQoE,GAO9D,OANApd,GAASA,EACTgZ,GAAkB,EACboE,GAAUN,EAAS/W,KAAM/F,EAAOgZ,EAAQ,EAAG,KAAO,KAClDjM,EAAO+I,sBAAqB9V,EAAQ0J,KAAKoV,MAAM9e,IAChDA,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtC+F,KAAKiT,GAAmB,IAARhZ,EACTgZ,EAAS,GAGlBjM,EAAO7Q,UAAUsjB,aAAe,SAAuBxf,EAAOgZ,EAAQoE,GAUpE,OATApd,GAASA,EACTgZ,GAAkB,EACboE,GAAUN,EAAS/W,KAAM/F,EAAOgZ,EAAQ,EAAG,OAAS,OACrDjM,EAAO+I,qBACT/P,KAAKiT,GAAmB,IAARhZ,EAChB+F,KAAKiT,EAAS,GAAMhZ,IAAU,GAE9B+c,EAAkBhX,KAAM/F,EAAOgZ,GAAQ,GAElCA,EAAS,GAGlBjM,EAAO7Q,UAAUujB,aAAe,SAAuBzf,EAAOgZ,EAAQoE,GAUpE,OATApd,GAASA,EACTgZ,GAAkB,EACboE,GAAUN,EAAS/W,KAAM/F,EAAOgZ,EAAQ,EAAG,OAAS,OACrDjM,EAAO+I,qBACT/P,KAAKiT,GAAWhZ,IAAU,EAC1B+F,KAAKiT,EAAS,GAAc,IAARhZ,GAEpB+c,EAAkBhX,KAAM/F,EAAOgZ,GAAQ,GAElCA,EAAS,GAGlBjM,EAAO7Q,UAAUwjB,aAAe,SAAuB1f,EAAOgZ,EAAQoE,GAYpE,OAXApd,GAASA,EACTgZ,GAAkB,EACboE,GAAUN,EAAS/W,KAAM/F,EAAOgZ,EAAQ,EAAG,YAAa,YACzDjM,EAAO+I,qBACT/P,KAAKiT,GAAmB,IAARhZ,EAChB+F,KAAKiT,EAAS,GAAMhZ,IAAU,EAC9B+F,KAAKiT,EAAS,GAAMhZ,IAAU,GAC9B+F,KAAKiT,EAAS,GAAMhZ,IAAU,IAE9Bid,EAAkBlX,KAAM/F,EAAOgZ,GAAQ,GAElCA,EAAS,GAGlBjM,EAAO7Q,UAAUyjB,aAAe,SAAuB3f,EAAOgZ,EAAQoE,GAapE,OAZApd,GAASA,EACTgZ,GAAkB,EACboE,GAAUN,EAAS/W,KAAM/F,EAAOgZ,EAAQ,EAAG,YAAa,YACzDhZ,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GACxC+M,EAAO+I,qBACT/P,KAAKiT,GAAWhZ,IAAU,GAC1B+F,KAAKiT,EAAS,GAAMhZ,IAAU,GAC9B+F,KAAKiT,EAAS,GAAMhZ,IAAU,EAC9B+F,KAAKiT,EAAS,GAAc,IAARhZ,GAEpBid,EAAkBlX,KAAM/F,EAAOgZ,GAAQ,GAElCA,EAAS,GAgBlBjM,EAAO7Q,UAAU0jB,aAAe,SAAuB5f,EAAOgZ,EAAQoE,GACpE,OAAOD,EAAWpX,KAAM/F,EAAOgZ,GAAQ,EAAMoE,IAG/CrQ,EAAO7Q,UAAU2jB,aAAe,SAAuB7f,EAAOgZ,EAAQoE,GACpE,OAAOD,EAAWpX,KAAM/F,EAAOgZ,GAAQ,EAAOoE,IAWhDrQ,EAAO7Q,UAAU4jB,cAAgB,SAAwB9f,EAAOgZ,EAAQoE,GACtE,OAAOC,EAAYtX,KAAM/F,EAAOgZ,GAAQ,EAAMoE,IAGhDrQ,EAAO7Q,UAAU6jB,cAAgB,SAAwB/f,EAAOgZ,EAAQoE,GACtE,OAAOC,EAAYtX,KAAM/F,EAAOgZ,GAAQ,EAAOoE,IAIjDrQ,EAAO7Q,UAAUgb,KAAO,SAAetY,EAAQohB,EAAavI,EAAOC,GAQjE,GAPKD,IAAOA,EAAQ,GACfC,GAAe,IAARA,IAAWA,EAAM3R,KAAK/J,QAC9BgkB,GAAephB,EAAO5C,SAAQgkB,EAAcphB,EAAO5C,QAClDgkB,IAAaA,EAAc,GAC5BtI,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,EAAO,OAAO,EAC1B,GAAsB,IAAlB7Y,EAAO5C,QAAgC,IAAhB+J,KAAK/J,OAAc,OAAO,EAGrD,GAAIgkB,EAAc,EAChB,MAAM,IAAI/J,WAAW,6BAEvB,GAAIwB,EAAQ,GAAKA,GAAS1R,KAAK/J,OAAQ,MAAM,IAAIia,WAAW,6BAC5D,GAAIyB,EAAM,EAAG,MAAM,IAAIzB,WAAW,2BAG9ByB,EAAM3R,KAAK/J,SAAQ0b,EAAM3R,KAAK/J,QAC9B4C,EAAO5C,OAASgkB,EAActI,EAAMD,IACtCC,EAAM9Y,EAAO5C,OAASgkB,EAAcvI,GAGtC,IACI3b,EADAoH,EAAMwU,EAAMD,EAGhB,GAAI1R,OAASnH,GAAU6Y,EAAQuI,GAAeA,EAActI,EAE1D,IAAK5b,EAAIoH,EAAM,EAAGpH,GAAK,IAAKA,EAC1B8C,EAAO9C,EAAIkkB,GAAeja,KAAKjK,EAAI2b,QAEhC,GAAIvU,EAAM,MAAS6J,EAAO+I,oBAE/B,IAAKha,EAAI,EAAGA,EAAIoH,IAAOpH,EACrB8C,EAAO9C,EAAIkkB,GAAeja,KAAKjK,EAAI2b,QAGrC5T,WAAW3H,UAAUuM,IAAIrM,KACvBwC,EACAmH,KAAKkV,SAASxD,EAAOA,EAAQvU,GAC7B8c,GAIJ,OAAO9c,GAOT6J,EAAO7Q,UAAUqf,KAAO,SAAelZ,EAAKoV,EAAOC,EAAKd,GAEtD,GAAmB,iBAARvU,EAAkB,CAS3B,GARqB,iBAAVoV,GACTb,EAAWa,EACXA,EAAQ,EACRC,EAAM3R,KAAK/J,QACa,iBAAR0b,IAChBd,EAAWc,EACXA,EAAM3R,KAAK/J,QAEM,IAAfqG,EAAIrG,OAAc,CACpB,IAAIsO,EAAOjI,EAAIsE,WAAW,GACtB2D,EAAO,MACTjI,EAAMiI,GAGV,QAAiBtL,IAAb4X,GAA8C,iBAAbA,EACnC,MAAM,IAAIxK,UAAU,6BAEtB,GAAwB,iBAAbwK,IAA0B7J,EAAO8J,WAAWD,GACrD,MAAM,IAAIxK,UAAU,qBAAuBwK,OAErB,iBAARvU,IAChBA,GAAY,KAId,GAAIoV,EAAQ,GAAK1R,KAAK/J,OAASyb,GAAS1R,KAAK/J,OAAS0b,EACpD,MAAM,IAAIzB,WAAW,sBAGvB,GAAIyB,GAAOD,EACT,OAAO1R,KAQT,IAAIjK,EACJ,GANA2b,KAAkB,EAClBC,OAAc1Y,IAAR0Y,EAAoB3R,KAAK/J,OAAS0b,IAAQ,EAE3CrV,IAAKA,EAAM,GAGG,iBAARA,EACT,IAAKvG,EAAI2b,EAAO3b,EAAI4b,IAAO5b,EACzBiK,KAAKjK,GAAKuG,MAEP,CACL,IAAIsa,EAAQ5P,EAAOhI,SAAS1C,GACxBA,EACAiV,EAAY,IAAIvK,EAAO1K,EAAKuU,GAAUzV,YACtC+B,EAAMyZ,EAAM3gB,OAChB,IAAKF,EAAI,EAAGA,EAAI4b,EAAMD,IAAS3b,EAC7BiK,KAAKjK,EAAI2b,GAASkF,EAAM7gB,EAAIoH,GAIhC,OAAO6C,MAMT,IAAIka,EAAoB,qBAmBxB,SAAS3K,EAAO9U,GACd,OAAIA,EAAI,GAAW,IAAMA,EAAEW,SAAS,IAC7BX,EAAEW,SAAS,IAGpB,SAASmW,EAAaX,EAAQkD,GAE5B,IAAIW,EADJX,EAAQA,GAASqG,IAMjB,IAJA,IAAIlkB,EAAS2a,EAAO3a,OAChBmkB,EAAgB,KAChBxD,EAAQ,GAEH7gB,EAAI,EAAGA,EAAIE,IAAUF,EAAG,CAI/B,IAHA0e,EAAY7D,EAAOhQ,WAAW7K,IAGd,OAAU0e,EAAY,MAAQ,CAE5C,IAAK2F,EAAe,CAElB,GAAI3F,EAAY,MAAQ,EAEjBX,GAAS,IAAM,GAAG8C,EAAMrgB,KAAK,IAAM,IAAM,KAC9C,SACK,GAAIR,EAAI,IAAME,EAAQ,EAEtB6d,GAAS,IAAM,GAAG8C,EAAMrgB,KAAK,IAAM,IAAM,KAC9C,SAIF6jB,EAAgB3F,EAEhB,SAIF,GAAIA,EAAY,MAAQ,EACjBX,GAAS,IAAM,GAAG8C,EAAMrgB,KAAK,IAAM,IAAM,KAC9C6jB,EAAgB3F,EAChB,SAIFA,EAAkE,OAArD2F,EAAgB,OAAU,GAAK3F,EAAY,YAC/C2F,IAEJtG,GAAS,IAAM,GAAG8C,EAAMrgB,KAAK,IAAM,IAAM,KAMhD,GAHA6jB,EAAgB,KAGZ3F,EAAY,IAAM,CACpB,IAAKX,GAAS,GAAK,EAAG,MACtB8C,EAAMrgB,KAAKke,QACN,GAAIA,EAAY,KAAO,CAC5B,IAAKX,GAAS,GAAK,EAAG,MACtB8C,EAAMrgB,KACJke,GAAa,EAAM,IACP,GAAZA,EAAmB,UAEhB,GAAIA,EAAY,MAAS,CAC9B,IAAKX,GAAS,GAAK,EAAG,MACtB8C,EAAMrgB,KACJke,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,SAEhB,MAAIA,EAAY,SASrB,MAAM,IAAIrc,MAAM,sBARhB,IAAK0b,GAAS,GAAK,EAAG,MACtB8C,EAAMrgB,KACJke,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,MAOzB,OAAOmC,EA4BT,SAASpF,EAAe/V,GACtB,OAAOsP,EAAOsP,YAhIhB,SAAsB5e,GAIpB,IAFAA,EAUF,SAAqBA,GACnB,OAAIA,EAAI+E,KAAa/E,EAAI+E,OAClB/E,EAAIgF,QAAQ,aAAc,IAZ3B6Z,CAAW7e,GAAKgF,QAAQyZ,EAAmB,KAEzCjkB,OAAS,EAAG,MAAO,GAE3B,KAAOwF,EAAIxF,OAAS,GAAM,GACxBwF,GAAY,IAEd,OAAOA,EAuHmB8e,CAAY9e,IAGxC,SAAS8X,EAAYvb,EAAKwiB,EAAKvH,EAAQhd,GACrC,IAAK,IAAIF,EAAI,EAAGA,EAAIE,KACbF,EAAIkd,GAAUuH,EAAIvkB,QAAYF,GAAKiC,EAAI/B,UADhBF,EAE5BykB,EAAIzkB,EAAIkd,GAAUjb,EAAIjC,GAExB,OAAOA,K,+CCrvDTe,EAAQ2Z,WAuCR,SAAqBgK,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,GA1ClD/jB,EAAQujB,YAiDR,SAAsBI,GACpB,IAAIK,EAcA/kB,EAbA2kB,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvB5Y,EAAM,IAAIiZ,EAVhB,SAAsBN,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,EAS9BG,CAAYP,EAAKG,EAAUC,IAEzCI,EAAU,EAGV9d,EAAM0d,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAK7kB,EAAI,EAAGA,EAAIoH,EAAKpH,GAAK,EACxB+kB,EACGI,EAAUT,EAAI7Z,WAAW7K,KAAO,GAChCmlB,EAAUT,EAAI7Z,WAAW7K,EAAI,KAAO,GACpCmlB,EAAUT,EAAI7Z,WAAW7K,EAAI,KAAO,EACrCmlB,EAAUT,EAAI7Z,WAAW7K,EAAI,IAC/B+L,EAAImZ,KAAcH,GAAO,GAAM,IAC/BhZ,EAAImZ,KAAcH,GAAO,EAAK,IAC9BhZ,EAAImZ,KAAmB,IAANH,EAGK,IAApBD,IACFC,EACGI,EAAUT,EAAI7Z,WAAW7K,KAAO,EAChCmlB,EAAUT,EAAI7Z,WAAW7K,EAAI,KAAO,EACvC+L,EAAImZ,KAAmB,IAANH,GAGK,IAApBD,IACFC,EACGI,EAAUT,EAAI7Z,WAAW7K,KAAO,GAChCmlB,EAAUT,EAAI7Z,WAAW7K,EAAI,KAAO,EACpCmlB,EAAUT,EAAI7Z,WAAW7K,EAAI,KAAO,EACvC+L,EAAImZ,KAAcH,GAAO,EAAK,IAC9BhZ,EAAImZ,KAAmB,IAANH,GAGnB,OAAOhZ,GA3FThL,EAAQod,cAkHR,SAAwBiH,GAQtB,IAPA,IAAIL,EACA3d,EAAMge,EAAMllB,OACZmlB,EAAaje,EAAM,EACnB+O,EAAQ,GAIHnW,EAAI,EAAGslB,EAAOle,EAAMie,EAAYrlB,EAAIslB,EAAMtlB,GAH9B,MAInBmW,EAAM3V,KAAK+kB,EAAYH,EAAOplB,EAAIA,EAJf,MAIqCslB,EAAOA,EAAQtlB,EAJpD,QAQF,IAAfqlB,GACFN,EAAMK,EAAMhe,EAAM,GAClB+O,EAAM3V,KACJglB,EAAOT,GAAO,GACdS,EAAQT,GAAO,EAAK,IACpB,OAEsB,IAAfM,IACTN,GAAOK,EAAMhe,EAAM,IAAM,GAAKge,EAAMhe,EAAM,GAC1C+O,EAAM3V,KACJglB,EAAOT,GAAO,IACdS,EAAQT,GAAO,EAAK,IACpBS,EAAQT,GAAO,EAAK,IACpB,MAIJ,OAAO5O,EAAMnG,KAAK,KAzIpB,IALA,IAAIwV,EAAS,GACTL,EAAY,GACZH,EAA4B,oBAAfjd,WAA6BA,WAAahC,MAEvDyI,EAAO,mEACFxO,EAAI,EAAGoH,EAAMoH,EAAKtO,OAAQF,EAAIoH,IAAOpH,EAC5CwlB,EAAOxlB,GAAKwO,EAAKxO,GACjBmlB,EAAU3W,EAAK3D,WAAW7K,IAAMA,EAQlC,SAAS4kB,EAASF,GAChB,IAAItd,EAAMsd,EAAIxkB,OAEd,GAAIkH,EAAM,EAAI,EACZ,MAAM,IAAI/E,MAAM,kDAKlB,IAAIwiB,EAAWH,EAAI7Y,QAAQ,KAO3B,OANkB,IAAdgZ,IAAiBA,EAAWzd,GAMzB,CAACyd,EAJcA,IAAazd,EAC/B,EACA,EAAKyd,EAAW,GAsEtB,SAASU,EAAaH,EAAOzJ,EAAOC,GAGlC,IAFA,IAAImJ,EARoBU,EASpBC,EAAS,GACJ1lB,EAAI2b,EAAO3b,EAAI4b,EAAK5b,GAAK,EAChC+kB,GACIK,EAAMplB,IAAM,GAAM,WAClBolB,EAAMplB,EAAI,IAAM,EAAK,QACP,IAAfolB,EAAMplB,EAAI,IACb0lB,EAAOllB,KAdFglB,GADiBC,EAeMV,IAdT,GAAK,IACxBS,EAAOC,GAAO,GAAK,IACnBD,EAAOC,GAAO,EAAI,IAClBD,EAAa,GAANC,IAaT,OAAOC,EAAO1V,KAAK,IAjGrBmV,EAAU,IAAIta,WAAW,IAAM,GAC/Bsa,EAAU,IAAIta,WAAW,IAAM,I;;AClB/B9J,EAAQ6b,KAAO,SAAUjT,EAAQuT,EAAQyI,EAAMC,EAAMC,GACnD,IAAI3kB,EAAGqC,EACHuiB,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACTjmB,EAAI2lB,EAAQE,EAAS,EAAK,EAC1BpiB,EAAIkiB,GAAQ,EAAI,EAChBvgB,EAAIuE,EAAOuT,EAASld,GAOxB,IALAA,GAAKyD,EAELvC,EAAIkE,GAAM,IAAO6gB,GAAU,EAC3B7gB,KAAQ6gB,EACRA,GAASH,EACFG,EAAQ,EAAG/kB,EAAS,IAAJA,EAAWyI,EAAOuT,EAASld,GAAIA,GAAKyD,EAAGwiB,GAAS,GAKvE,IAHA1iB,EAAIrC,GAAM,IAAO+kB,GAAU,EAC3B/kB,KAAQ+kB,EACRA,GAASL,EACFK,EAAQ,EAAG1iB,EAAS,IAAJA,EAAWoG,EAAOuT,EAASld,GAAIA,GAAKyD,EAAGwiB,GAAS,GAEvE,GAAU,IAAN/kB,EACFA,EAAI,EAAI8kB,MACH,IAAI9kB,IAAM6kB,EACf,OAAOxiB,EAAI2iB,IAAsB9B,KAAdhf,GAAK,EAAI,GAE5B7B,GAAQqK,KAAKsU,IAAI,EAAG0D,GACpB1kB,GAAQ8kB,EAEV,OAAQ5gB,GAAK,EAAI,GAAK7B,EAAIqK,KAAKsU,IAAI,EAAGhhB,EAAI0kB,IAG5C7kB,EAAQka,MAAQ,SAAUtR,EAAQzF,EAAOgZ,EAAQyI,EAAMC,EAAMC,GAC3D,IAAI3kB,EAAGqC,EAAGC,EACNsiB,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBI,EAAe,KAATP,EAAchY,KAAKsU,IAAI,GAAI,IAAMtU,KAAKsU,IAAI,GAAI,IAAM,EAC1DliB,EAAI2lB,EAAO,EAAKE,EAAS,EACzBpiB,EAAIkiB,EAAO,GAAK,EAChBvgB,EAAIlB,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ0J,KAAKwY,IAAIliB,GAEboY,MAAMpY,IAAUA,IAAUkgB,KAC5B7gB,EAAI+Y,MAAMpY,GAAS,EAAI,EACvBhD,EAAI6kB,IAEJ7kB,EAAI0M,KAAKoV,MAAMpV,KAAKyY,IAAIniB,GAAS0J,KAAK0Y,KAClCpiB,GAASV,EAAIoK,KAAKsU,IAAI,GAAIhhB,IAAM,IAClCA,IACAsC,GAAK,IAGLU,GADEhD,EAAI8kB,GAAS,EACNG,EAAK3iB,EAEL2iB,EAAKvY,KAAKsU,IAAI,EAAG,EAAI8D,IAEpBxiB,GAAK,IACftC,IACAsC,GAAK,GAGHtC,EAAI8kB,GAASD,GACfxiB,EAAI,EACJrC,EAAI6kB,GACK7kB,EAAI8kB,GAAS,GACtBziB,GAAMW,EAAQV,EAAK,GAAKoK,KAAKsU,IAAI,EAAG0D,GACpC1kB,GAAQ8kB,IAERziB,EAAIW,EAAQ0J,KAAKsU,IAAI,EAAG8D,EAAQ,GAAKpY,KAAKsU,IAAI,EAAG0D,GACjD1kB,EAAI,IAID0kB,GAAQ,EAAGjc,EAAOuT,EAASld,GAAS,IAAJuD,EAAUvD,GAAKyD,EAAGF,GAAK,IAAKqiB,GAAQ,GAI3E,IAFA1kB,EAAKA,GAAK0kB,EAAQriB,EAClBuiB,GAAQF,EACDE,EAAO,EAAGnc,EAAOuT,EAASld,GAAS,IAAJkB,EAAUlB,GAAKyD,EAAGvC,GAAK,IAAK4kB,GAAQ,GAE1Enc,EAAOuT,EAASld,EAAIyD,IAAU,IAAJ2B,I,cCnF5B,IAAIC,EAAW,GAAGA,SAElBrE,EAAOD,QAAUgF,MAAMD,SAAW,SAAUiG,GAC1C,MAA6B,kBAAtB1G,EAAS/E,KAAKyL,K,6BCHvB,O,iBCEAhL,EADkC,EAAQ,EAChC6Y,EAA4B,IAE9BpZ,KAAK,CAACQ,EAAOhB,EAAI,s1GAAu1G,KAEh3GgB,EAAOD,QAAUA,G,6BCNjB,O,iBCEAA,EADkC,EAAQ,EAChC6Y,EAA4B,IAE9BpZ,KAAK,CAACQ,EAAOhB,EAAI,wxIAA6xI,KAEtzIgB,EAAOD,QAAUA,G,+UCGF,GAACsP,EAAU,GAAIkW,EAAMC,EAAWC,EAAgB,MAC7D,MAAMC,EAAM/kB,SAASglB,eAAeJ,GACpC,KAAKlW,GAAYqW,GAAQA,EAAIE,SAAYF,EAAIE,QAAQC,SACnD,OAGF,MAAM,QAAEA,GAAYH,EAAIE,QAElBnY,EAAS,CACbgF,SAAU,KACVC,OAAQ,KACRoT,WAAY,KACZnT,cAAe,KACfO,cAAe,KACfI,iBAAkB,QACfmS,KACApW,GAgBL,GAA2C,mBAAhCpL,OAAO8hB,qBAAqC,CACzC,IAAI9hB,OAAO8hB,qBACrB,CAACC,EAASC,KACRD,EAAQlgB,SAAQ,SAAUogB,GACxB,MAAM,eAAEC,EAAc,kBAAEC,GAAsBF,IACvB,IAAnBC,GAA2BC,EAAoB,KAjBzD,IAAIC,IAAI,CACNxV,OAAQuB,GACCA,EAAEoT,EAAW,CAClBxb,MAAO,CACLyD,SACAoY,eAILS,OAAOZ,GAUFO,EAASM,kBAIf,CACEC,WAAY,UAIZC,QAAQf,K,qBC7ChB,SAASgB,EAAOhiB,GACd,MAAMiiB,EAAU,CACd,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,MAAO,IACP,MAAO,MAET,OAAOzS,mBAAmBxP,GAAKgF,QAAQ,oBAAoB,SAAkB2V,GAC3E,OAAOsH,EAAQtH,MAYnB,SAASuH,EAAqBC,EAAQxX,GACpCpG,KAAK6d,OAAS,GAEdD,GAAU1X,YAAW0X,EAAQ5d,KAAMoG,GAGrC,MAAMjQ,EAAYwnB,EAAqBxnB,UAEvCA,EAAUkJ,OAAS,SAAgBtG,EAAMkB,GACvC+F,KAAK6d,OAAOtnB,KAAK,CAACwC,EAAMkB,KAG1B9D,EAAUiF,SAAW,SAAkB0iB,GACrC,MAAMC,EAAUD,EAAU,SAAS7jB,GACjC,OAAO6jB,EAAQznB,KAAK2J,KAAM/F,EAAOwjB,IAC/BA,EAEJ,OAAOzd,KAAK6d,OAAOhY,KAAI,SAAc3D,GACnC,OAAO6b,EAAQ7b,EAAK,IAAM,IAAM6b,EAAQ7b,EAAK,MAC5C,IAAI6D,KAAK,MAGC4X,QC5Cf,SAASF,EAAOnhB,GACd,OAAO2O,mBAAmB3O,GACxBmE,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KAYN,SAASud,EAASC,EAAKL,EAAQxX,GAE5C,IAAKwX,EACH,OAAOK,EAGT,MAAMF,EAAU3X,GAAWA,EAAQqX,QAAUA,EAEvCS,EAAc9X,GAAWA,EAAQ+X,UAEvC,IAAIC,EAUJ,GAPEA,EADEF,EACiBA,EAAYN,EAAQxX,GAEpBzB,IAAM/H,kBAAkBghB,GACzCA,EAAOxiB,WACP,IAAIuiB,EAAqBC,EAAQxX,GAAShL,SAAS2iB,GAGnDK,EAAkB,CACpB,MAAMC,EAAgBJ,EAAIrc,QAAQ,MAEX,IAAnByc,IACFJ,EAAMA,EAAI/iB,MAAM,EAAGmjB,IAErBJ,KAA8B,IAAtBA,EAAIrc,QAAQ,KAAc,IAAM,KAAOwc,EAGjD,OAAOH,ECSMK,MAlEf,MACErf,cACEe,KAAKue,SAAW,GAWlBC,IAAIC,EAAWC,EAAUtY,GAOvB,OANApG,KAAKue,SAAShoB,KAAK,CACjBkoB,YACAC,WACAC,cAAavY,GAAUA,EAAQuY,YAC/BC,QAASxY,EAAUA,EAAQwY,QAAU,OAEhC5e,KAAKue,SAAStoB,OAAS,EAUhC4oB,MAAMpT,GACAzL,KAAKue,SAAS9S,KAChBzL,KAAKue,SAAS9S,GAAM,MASxBqT,QACM9e,KAAKue,WACPve,KAAKue,SAAW,IAcpB1hB,QAAQE,GACN4H,IAAM9H,QAAQmD,KAAKue,UAAU,SAAwBpV,GACzC,OAANA,GACFpM,EAAGoM,Q,OC9DI,GACb4V,mBAAmB,EACnBC,mBAAmB,EACnBC,qBAAqB,GCDR,GACbC,WAAW,EACXC,QAAS,CACPC,gBCJsC,oBAApBA,gBAAkCA,gBAAkBzB,EDKtEve,SEN+B,oBAAbA,SAA2BA,SAAW,KFOxDyH,KGP2B,oBAATA,KAAuBA,KAAO,MHSlDwY,UAAW,CAAC,OAAQ,QAAS,OAAQ,OAAQ,MAAO,SIXtD,MAAMC,EAAkC,oBAAXtkB,QAA8C,oBAAbtD,SAmBxD6nB,GACH3C,EAEuB,oBAAdjQ,WAA6BA,UAAUiQ,QADxC0C,GAAiB,CAAC,cAAe,eAAgB,MAAM1d,QAAQgb,GAAW,GAFvD,IAC3BA,EAaH,MAAM4C,EAE2B,oBAAtBC,mBAEPjiB,gBAAgBiiB,mBACc,mBAAvBjiB,KAAKkiB,cCnCD,UACV/a,KACAgb,GCyFUC,MA9Cf,SAAwBzZ,GACtB,SAAS0Z,EAAUna,EAAMzL,EAAOpB,EAAQyO,GACtC,IAAIvO,EAAO2M,EAAK4B,KAEhB,GAAa,cAATvO,EAAsB,OAAO,EAEjC,MAAM+mB,EAAexc,OAAOC,UAAUxK,GAChCgnB,EAASzY,GAAS5B,EAAKzP,OAG7B,GAFA8C,GAAQA,GAAQ4L,IAAM9I,QAAQhD,GAAUA,EAAO5C,OAAS8C,EAEpDgnB,EAOF,OANIpb,IAAMpC,WAAW1J,EAAQE,GAC3BF,EAAOE,GAAQ,CAACF,EAAOE,GAAOkB,GAE9BpB,EAAOE,GAAQkB,GAGT6lB,EAGLjnB,EAAOE,IAAU4L,IAAMvI,SAASvD,EAAOE,MAC1CF,EAAOE,GAAQ,IASjB,OANe8mB,EAAUna,EAAMzL,EAAOpB,EAAOE,GAAOuO,IAEtC3C,IAAM9I,QAAQhD,EAAOE,MACjCF,EAAOE,GA/Cb,SAAuB+I,GACrB,MAAMhF,EAAM,GACNG,EAAO/G,OAAO+G,KAAK6E,GACzB,IAAI/L,EACJ,MAAMoH,EAAMF,EAAKhH,OACjB,IAAIsE,EACJ,IAAKxE,EAAI,EAAGA,EAAIoH,EAAKpH,IACnBwE,EAAM0C,EAAKlH,GACX+G,EAAIvC,GAAOuH,EAAIvH,GAEjB,OAAOuC,EAqCYkjB,CAAcnnB,EAAOE,MAG9B+mB,EAGV,GAAInb,IAAMzF,WAAWiH,IAAaxB,IAAMzI,WAAWiK,EAAS4W,SAAU,CACpE,MAAMjgB,EAAM,GAMZ,OAJA6H,IAAM5C,aAAaoE,EAAU,CAACpN,EAAMkB,KAClC4lB,EA1EN,SAAuB9mB,GAKrB,OAAO4L,IAAMxC,SAAS,gBAAiBpJ,GAAM8M,IAAIuQ,GAC3B,OAAbA,EAAM,GAAc,GAAKA,EAAM,IAAMA,EAAM,IAoEtC6J,CAAclnB,GAAOkB,EAAO6C,EAAK,KAGtCA,EAGT,OAAO,MCxDT,MAAMojB,EAAW,CAEfC,aAAcC,EAEdC,QAAS,CAAC,MAAO,QAEjBC,iBAAkB,CAAC,SAA0B5qB,EAAM6qB,GACjD,MAAMC,EAAcD,EAAQE,kBAAoB,GAC1CC,EAAqBF,EAAY5e,QAAQ,qBAAuB,EAChE+e,EAAkBhc,IAAMvI,SAAS1G,GAEnCirB,GAAmBhc,IAAM5G,WAAWrI,KACtCA,EAAO,IAAI0J,SAAS1J,IAKtB,GAFmBiP,IAAMzF,WAAWxJ,GAGlC,OAAOgrB,EAAqBzZ,KAAKC,UAAU0Y,EAAelqB,IAASA,EAGrE,GAAIiP,IAAM3I,cAActG,IACtBiP,IAAM3F,SAAStJ,IACfiP,IAAM/E,SAASlK,IACfiP,IAAMlI,OAAO/G,IACbiP,IAAMjI,OAAOhH,GAEb,OAAOA,EAET,GAAIiP,IAAMrF,kBAAkB5J,GAC1B,OAAOA,EAAKgK,OAEd,GAAIiF,IAAM/H,kBAAkBlH,GAE1B,OADA6qB,EAAQK,eAAe,mDAAmD,GACnElrB,EAAK0F,WAGd,IAAIuB,EAEJ,GAAIgkB,EAAiB,CACnB,GAAIH,EAAY5e,QAAQ,sCAAwC,EAC9D,OCtEO,SAA0BlM,EAAM0Q,GAC7C,OAAOF,YAAWxQ,EAAM,IAAIiqB,EAASR,QAAQC,gBAAmBlpB,OAAO8K,OAAO,CAC5E0F,QAAS,SAASzM,EAAOM,EAAKmL,EAAMmb,GAClC,OAAIlB,EAASmB,QAAUnc,IAAM3F,SAAS/E,IACpC+F,KAAKX,OAAO9E,EAAKN,EAAMmB,SAAS,YACzB,GAGFylB,EAAQla,eAAe4D,MAAMvK,KAAMG,aAE3CiG,ID4DU2a,CAAiBrrB,EAAMsK,KAAKghB,gBAAgB5lB,WAGrD,IAAKuB,EAAagI,IAAMhI,WAAWjH,KAAU8qB,EAAY5e,QAAQ,wBAA0B,EAAG,CAC5F,MAAMqf,EAAYjhB,KAAKkhB,KAAOlhB,KAAKkhB,IAAI9hB,SAEvC,OAAO8G,YACLvJ,EAAa,CAAC,UAAWjH,GAAQA,EACjCurB,GAAa,IAAIA,EACjBjhB,KAAKghB,iBAKX,OAAIL,GAAmBD,GACrBH,EAAQK,eAAe,oBAAoB,GAvEjD,SAAyBO,EAAUC,EAAQtD,GACzC,GAAInZ,IAAM1I,SAASklB,GACjB,IAEE,OADCC,GAAUna,KAAKoa,OAAOF,GAChBxc,IAAMnE,KAAK2gB,GAClB,MAAOlqB,GACP,GAAe,gBAAXA,EAAE8B,KACJ,MAAM9B,EAKZ,OAAQ6mB,GAAW7W,KAAKC,WAAWia,GA4DxBG,CAAgB5rB,IAGlBA,IAGT6rB,kBAAmB,CAAC,SAA2B7rB,GAC7C,MAAMyqB,EAAengB,KAAKmgB,cAAgBD,EAASC,aAC7CnB,EAAoBmB,GAAgBA,EAAanB,kBACjDwC,EAAsC,SAAtBxhB,KAAKyhB,aAE3B,GAAI/rB,GAAQiP,IAAM1I,SAASvG,KAAWspB,IAAsBhf,KAAKyhB,cAAiBD,GAAgB,CAChG,MACME,IADoBvB,GAAgBA,EAAapB,oBACPyC,EAEhD,IACE,OAAOva,KAAKoa,MAAM3rB,GAClB,MAAOuB,GACP,GAAIyqB,EAAmB,CACrB,GAAe,gBAAXzqB,EAAE8B,KACJ,MAAMuL,IAAWa,KAAKlO,EAAGqN,IAAWqd,iBAAkB3hB,KAAM,KAAMA,KAAKyE,UAEzE,MAAMxN,IAKZ,OAAOvB,IAOTmC,QAAS,EAET+pB,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBb,IAAK,CACH9hB,SAAUugB,EAASR,QAAQ/f,SAC3ByH,KAAM8Y,EAASR,QAAQtY,MAGzBmb,eAAgB,SAAwB9c,GACtC,OAAOA,GAAU,KAAOA,EAAS,KAGnCqb,QAAS,CACP0B,OAAQ,CACN,OAAU,oCACV,oBAAgBhpB,KAKtB0L,IAAM9H,QAAQ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,SAAWqlB,IAChEhC,EAASK,QAAQ2B,GAAU,KAGdhC,QErJf,MAAMiC,EAAoBxd,IAAMhC,YAAY,CAC1C,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,eCL5B,MAAMyf,EAAaroB,OAAO,aAE1B,SAASsoB,EAAgBC,GACvB,OAAOA,GAAU5gB,OAAO4gB,GAAQ9hB,OAAO9E,cAGzC,SAAS6mB,EAAetoB,GACtB,OAAc,IAAVA,GAA4B,MAATA,EACdA,EAGF0K,IAAM9I,QAAQ5B,GAASA,EAAM4L,IAAI0c,GAAkB7gB,OAAOzH,GAiBnE,SAASuoB,EAAiB7kB,EAAS1D,EAAOqoB,EAAQlhB,EAAQqhB,GACxD,OAAI9d,IAAMzI,WAAWkF,GACZA,EAAO/K,KAAK2J,KAAM/F,EAAOqoB,IAG9BG,IACFxoB,EAAQqoB,GAGL3d,IAAM1I,SAAShC,GAEhB0K,IAAM1I,SAASmF,IACiB,IAA3BnH,EAAM2H,QAAQR,GAGnBuD,IAAM1G,SAASmD,GACVA,EAAO6E,KAAKhM,QADrB,OANA,GA+BF,MAAMyoB,EACJzjB,YAAYshB,GACVA,GAAWvgB,KAAK0C,IAAI6d,GAGtB7d,IAAI4f,EAAQK,EAAgBC,GAC1B,MAAMplB,EAAOwC,KAEb,SAAS6iB,EAAUC,EAAQC,EAASC,GAClC,MAAMC,EAAUZ,EAAgBU,GAEhC,IAAKE,EACH,MAAM,IAAI7qB,MAAM,0CAGlB,MAAMmC,EAAMoK,IAAMvH,QAAQI,EAAMylB,KAE5B1oB,QAAqBtB,IAAduE,EAAKjD,KAAmC,IAAbyoB,QAAmC/pB,IAAb+pB,IAAwC,IAAdxlB,EAAKjD,MACzFiD,EAAKjD,GAAOwoB,GAAWR,EAAeO,IAI1C,MAAMI,EAAaA,CAAC3C,EAASyC,IAC3Bre,IAAM9H,QAAQ0jB,EAAS,CAACuC,EAAQC,IAAYF,EAAUC,EAAQC,EAASC,IAUzE,OARIre,IAAMtI,cAAcimB,IAAWA,aAAkBtiB,KAAKf,YACxDikB,EAAWZ,EAAQK,GACXhe,IAAM1I,SAASqmB,KAAYA,EAASA,EAAO9hB,UArEtB,iCAAiCyF,KAqEmBqc,EArEV9hB,QAsEvE0iB,ED1ESC,KACb,MAAM/P,EAAS,GACf,IAAI7Y,EACA+B,EACAvG,EAsBJ,OApBAotB,GAAcA,EAAWpgB,MAAM,MAAMlG,SAAQ,SAAgBumB,GAC3DrtB,EAAIqtB,EAAKxhB,QAAQ,KACjBrH,EAAM6oB,EAAKjU,UAAU,EAAGpZ,GAAGyK,OAAO9E,cAClCY,EAAM8mB,EAAKjU,UAAUpZ,EAAI,GAAGyK,QAEvBjG,GAAQ6Y,EAAO7Y,IAAQ4nB,EAAkB5nB,KAIlC,eAARA,EACE6Y,EAAO7Y,GACT6Y,EAAO7Y,GAAKhE,KAAK+F,GAEjB8W,EAAO7Y,GAAO,CAAC+B,GAGjB8W,EAAO7Y,GAAO6Y,EAAO7Y,GAAO6Y,EAAO7Y,GAAO,KAAO+B,EAAMA,MAIpD8W,GCgDQiQ,CAAaf,GAASK,GAEvB,MAAVL,GAAkBO,EAAUF,EAAgBL,EAAQM,GAG/C5iB,KAGTnG,IAAIyoB,EAAQlB,GAGV,GAFAkB,EAASD,EAAgBC,GAEb,CACV,MAAM/nB,EAAMoK,IAAMvH,QAAQ4C,KAAMsiB,GAEhC,GAAI/nB,EAAK,CACP,MAAMN,EAAQ+F,KAAKzF,GAEnB,IAAK6mB,EACH,OAAOnnB,EAGT,IAAe,IAAXmnB,EACF,OAxGV,SAAqB3lB,GACnB,MAAM6nB,EAASptB,OAAOoE,OAAO,MACvBipB,EAAW,mCACjB,IAAInN,EAEJ,KAAQA,EAAQmN,EAASjhB,KAAK7G,IAC5B6nB,EAAOlN,EAAM,IAAMA,EAAM,GAG3B,OAAOkN,EA+FQE,CAAYvpB,GAGrB,GAAI0K,IAAMzI,WAAWklB,GACnB,OAAOA,EAAO/qB,KAAK2J,KAAM/F,EAAOM,GAGlC,GAAIoK,IAAM1G,SAASmjB,GACjB,OAAOA,EAAO9e,KAAKrI,GAGrB,MAAM,IAAIoM,UAAU,4CAK1Bod,IAAInB,EAAQoB,GAGV,GAFApB,EAASD,EAAgBC,GAEb,CACV,MAAM/nB,EAAMoK,IAAMvH,QAAQ4C,KAAMsiB,GAEhC,SAAU/nB,QAAqBtB,IAAd+G,KAAKzF,IAAwBmpB,IAAWlB,EAAiBxiB,EAAMA,KAAKzF,GAAMA,EAAKmpB,IAGlG,OAAO,EAGTC,OAAOrB,EAAQoB,GACb,MAAMlmB,EAAOwC,KACb,IAAI4jB,GAAU,EAEd,SAASC,EAAad,GAGpB,GAFAA,EAAUV,EAAgBU,GAEb,CACX,MAAMxoB,EAAMoK,IAAMvH,QAAQI,EAAMulB,IAE5BxoB,GAASmpB,IAAWlB,EAAiBhlB,EAAMA,EAAKjD,GAAMA,EAAKmpB,YACtDlmB,EAAKjD,GAEZqpB,GAAU,IAWhB,OANIjf,IAAM9I,QAAQymB,GAChBA,EAAOzlB,QAAQgnB,GAEfA,EAAavB,GAGRsB,EAGT9E,MAAM4E,GACJ,MAAMzmB,EAAO/G,OAAO+G,KAAK+C,MACzB,IAAIjK,EAAIkH,EAAKhH,OACT2tB,GAAU,EAEd,KAAO7tB,KAAK,CACV,MAAMwE,EAAM0C,EAAKlH,GACb2tB,IAAWlB,EAAiBxiB,EAAMA,KAAKzF,GAAMA,EAAKmpB,GAAS,YACtD1jB,KAAKzF,GACZqpB,GAAU,GAId,OAAOA,EAGTE,UAAUC,GACR,MAAMvmB,EAAOwC,KACPugB,EAAU,GAsBhB,OApBA5b,IAAM9H,QAAQmD,KAAM,CAAC/F,EAAOqoB,KAC1B,MAAM/nB,EAAMoK,IAAMvH,QAAQmjB,EAAS+B,GAEnC,GAAI/nB,EAGF,OAFAiD,EAAKjD,GAAOgoB,EAAetoB,eACpBuD,EAAK8kB,GAId,MAAM0B,EAAaD,EA1JzB,SAAsBzB,GACpB,OAAOA,EAAO9hB,OACX9E,cAAc+E,QAAQ,kBAAmB,CAACwjB,EAAGC,EAAMzoB,IAC3CyoB,EAAKplB,cAAgBrD,GAuJA0oB,CAAa7B,GAAU5gB,OAAO4gB,GAAQ9hB,OAE9DwjB,IAAe1B,UACV9kB,EAAK8kB,GAGd9kB,EAAKwmB,GAAczB,EAAetoB,GAElCsmB,EAAQyD,IAAc,IAGjBhkB,KAGT4F,UAAUwe,GACR,OAAOpkB,KAAKf,YAAY2G,OAAO5F,QAASokB,GAG1Cxf,OAAOyf,GACL,MAAMvnB,EAAM5G,OAAOoE,OAAO,MAM1B,OAJAqK,IAAM9H,QAAQmD,KAAM,CAAC/F,EAAOqoB,KACjB,MAATroB,IAA2B,IAAVA,IAAoB6C,EAAIwlB,GAAU+B,GAAa1f,IAAM9I,QAAQ5B,GAASA,EAAM8L,KAAK,MAAQ9L,KAGrG6C,EAGT,CAAC/C,OAAOwC,YACN,OAAOrG,OAAO6mB,QAAQ/c,KAAK4E,UAAU7K,OAAOwC,YAG9CnB,WACE,OAAOlF,OAAO6mB,QAAQ/c,KAAK4E,UAAUiB,IAAI,EAAEyc,EAAQroB,KAAWqoB,EAAS,KAAOroB,GAAO8L,KAAK,MAG5FlM,IAAKE,OAAOC,eACV,MAAO,eAGT,YAAYwB,GACV,OAAOA,aAAiBwE,KAAOxE,EAAQ,IAAIwE,KAAKxE,GAGlD,cAAc8oB,KAAUF,GACtB,MAAMG,EAAW,IAAIvkB,KAAKskB,GAI1B,OAFAF,EAAQvnB,QAAShE,GAAW0rB,EAAS7hB,IAAI7J,IAElC0rB,EAGT,gBAAgBjC,GACd,MAIMkC,GAJYxkB,KAAKoiB,GAAepiB,KAAKoiB,GAAc,CACvDoC,UAAW,KAGeA,UACtBruB,EAAY6J,KAAK7J,UAEvB,SAASsuB,EAAe1B,GACtB,MAAME,EAAUZ,EAAgBU,GAE3ByB,EAAUvB,MAlNrB,SAAwBnmB,EAAKwlB,GAC3B,MAAMoC,EAAe/f,IAAM3B,YAAY,IAAMsf,GAE7C,CAAC,MAAO,MAAO,OAAOzlB,QAAQ8nB,IAC5BzuB,OAAOyD,eAAemD,EAAK6nB,EAAaD,EAAc,CACpDzqB,MAAO,SAAS2qB,EAAMC,EAAMC,GAC1B,OAAO9kB,KAAK2kB,GAAYtuB,KAAK2J,KAAMsiB,EAAQsC,EAAMC,EAAMC,IAEzDvP,cAAc,MA2MZwP,CAAe5uB,EAAW4sB,GAC1ByB,EAAUvB,IAAW,GAMzB,OAFAte,IAAM9I,QAAQymB,GAAUA,EAAOzlB,QAAQ4nB,GAAkBA,EAAenC,GAEjEtiB,MAIX0iB,EAAasC,SAAS,CAAC,eAAgB,iBAAkB,SAAU,kBAAmB,aAAc,kBAGpGrgB,IAAMzG,kBAAkBwkB,EAAavsB,UAAW,EAAE8D,SAAQM,KACxD,IAAI0qB,EAAS1qB,EAAI,GAAGuE,cAAgBvE,EAAIW,MAAM,GAC9C,MAAO,CACLrB,IAAKA,IAAMI,EACXyI,IAAIwiB,GACFllB,KAAKilB,GAAUC,MAKrBvgB,IAAMnC,cAAckgB,GAELA,QC3RA,SAASyC,EAAcC,EAAK3gB,GACzC,MAAMD,EAASxE,MAAQkgB,EACjBviB,EAAU8G,GAAYD,EACtB+b,EAAUmC,EAAavd,KAAKxH,EAAQ4iB,SAC1C,IAAI7qB,EAAOiI,EAAQjI,KAQnB,OANAiP,IAAM9H,QAAQuoB,GAAK,SAAmBroB,GACpCrH,EAAOqH,EAAG1G,KAAKmO,EAAQ9O,EAAM6qB,EAAQuD,YAAarf,EAAWA,EAASS,YAASjM,MAGjFsnB,EAAQuD,YAEDpuB,ECxBM,SAAS2vB,EAASprB,GAC/B,SAAUA,IAASA,EAAMqrB,YCW3B,SAASC,EAAczsB,EAAS0L,EAAQxL,GAEtCsL,IAAWjO,KAAK2J,KAAiB,MAAXlH,EAAkB,WAAaA,EAASwL,IAAWkhB,aAAchhB,EAAQxL,GAC/FgH,KAAKjH,KAAO,gBAGd4L,IAAM9D,SAAS0kB,EAAejhB,IAAY,CACxCghB,YAAY,IAGCC,Q,OCrBA5F,QAASJ,sBAGtB,CACEvO,MAAMjY,EAAMkB,EAAOwrB,EAAS/f,EAAMggB,EAAQC,GACxC,MAAMC,EAAS,CAAC7sB,EAAO,IAAMkS,mBAAmBhR,IAEhD0K,IAAMxI,SAASspB,IAAYG,EAAOrvB,KAAK,WAAa,IAAIsvB,KAAKJ,GAASK,eAEtEnhB,IAAM1I,SAASyJ,IAASkgB,EAAOrvB,KAAK,QAAUmP,GAE9Cf,IAAM1I,SAASypB,IAAWE,EAAOrvB,KAAK,UAAYmvB,IAEvC,IAAXC,GAAmBC,EAAOrvB,KAAK,UAE/BmB,SAASkuB,OAASA,EAAO7f,KAAK,OAGhC4M,KAAK5Z,GACH,MAAMqd,EAAQ1e,SAASkuB,OAAOxP,MAAM,IAAI2P,OAAO,aAAehtB,EAAO,cACrE,OAAQqd,EAAQ4P,mBAAmB5P,EAAM,IAAM,MAGjD1I,OAAO3U,GACLiH,KAAKgR,MAAMjY,EAAM,GAAI8sB,KAAKI,MAAQ,SAOtC,CACEjV,UACA2B,KAAIA,IACK,KAETjF,YCxBW,SAASwY,EAAcC,EAASC,GAC7C,OAAID,ICHG,8BAA8BlgB,KDGPmgB,GENjB,SAAqBD,EAASE,GAC3C,OAAOA,EACHF,EAAQ1lB,QAAQ,SAAU,IAAM,IAAM4lB,EAAY5lB,QAAQ,OAAQ,IAClE0lB,EFIKG,CAAYH,EAASC,GAEvBA,EGdMzG,QAASJ,sBAIrB,WACC,MAAMgH,EAAO,kBAAkBtgB,KAAK0G,UAAUC,WACxC4Z,EAAiB9uB,SAASC,cAAc,KAC9C,IAAI8uB,EAQJ,SAASC,EAAWzI,GAClB,IAAI0I,EAAO1I,EAWX,OATIsI,IAEFC,EAAezuB,aAAa,OAAQ4uB,GACpCA,EAAOH,EAAeG,MAGxBH,EAAezuB,aAAa,OAAQ4uB,GAG7B,CACLA,KAAMH,EAAeG,KACrBC,SAAUJ,EAAeI,SAAWJ,EAAeI,SAASnmB,QAAQ,KAAM,IAAM,GAChFomB,KAAML,EAAeK,KACrBC,OAAQN,EAAeM,OAASN,EAAeM,OAAOrmB,QAAQ,MAAO,IAAM,GAC3EsmB,KAAMP,EAAeO,KAAOP,EAAeO,KAAKtmB,QAAQ,KAAM,IAAM,GACpEumB,SAAUR,EAAeQ,SACzBC,KAAMT,EAAeS,KACrBC,SAAiD,MAAtCV,EAAeU,SAASC,OAAO,GACxCX,EAAeU,SACf,IAAMV,EAAeU,UAY3B,OARAT,EAAYC,EAAW1rB,OAAOosB,SAAST,MAQhC,SAAyBU,GAC9B,MAAMjU,EAAUzO,IAAM1I,SAASorB,GAAeX,EAAWW,GAAcA,EACvE,OAAQjU,EAAOwT,WAAaH,EAAUG,UAClCxT,EAAOyT,OAASJ,EAAUI,MAhDjC,GAsDQ,WACL,OAAO,GCVES,MA9Cf,SAAqBC,EAAclY,GACjCkY,EAAeA,GAAgB,GAC/B,MAAM3Q,EAAQ,IAAI9a,MAAMyrB,GAClBC,EAAa,IAAI1rB,MAAMyrB,GAC7B,IAEIE,EAFAtuB,EAAO,EACPuuB,EAAO,EAKX,OAFArY,OAAcpW,IAARoW,EAAoBA,EAAM,IAEzB,SAAcsY,GACnB,MAAM1B,EAAMJ,KAAKI,MAEX2B,EAAYJ,EAAWE,GAExBD,IACHA,EAAgBxB,GAGlBrP,EAAMzd,GAAQwuB,EACdH,EAAWruB,GAAQ8sB,EAEnB,IAAIlwB,EAAI2xB,EACJG,EAAa,EAEjB,KAAO9xB,IAAMoD,GACX0uB,GAAcjR,EAAM7gB,KACpBA,GAAQwxB,EASV,GANApuB,GAAQA,EAAO,GAAKouB,EAEhBpuB,IAASuuB,IACXA,GAAQA,EAAO,GAAKH,GAGlBtB,EAAMwB,EAAgBpY,EACxB,OAGF,MAAMyY,EAASF,GAAa3B,EAAM2B,EAElC,OAAOE,EAASnkB,KAAK2L,MAAmB,IAAbuY,EAAoBC,QAAU7uB,IClC7D,SAAS8uB,EAAqBC,EAAUC,GACtC,IAAIC,EAAgB,EACpB,MAAMC,EAAeb,EAAY,GAAI,KAErC,OAAOrwB,IACL,MAAMmxB,EAASnxB,EAAEmxB,OACXC,EAAQpxB,EAAEqxB,iBAAmBrxB,EAAEoxB,WAAQpvB,EACvCsvB,EAAgBH,EAASF,EACzBM,EAAOL,EAAaI,GAG1BL,EAAgBE,EAEhB,MAAM1yB,EAAO,CACX0yB,SACAC,QACAI,SAAUJ,EAASD,EAASC,OAASpvB,EACrC2d,MAAO2R,EACPC,KAAMA,QAAcvvB,EACpByvB,UAAWF,GAAQH,GAVLD,GAAUC,GAUeA,EAAQD,GAAUI,OAAOvvB,EAChEZ,MAAOpB,GAGTvB,EAAKuyB,EAAmB,WAAa,WAAY,EAEjDD,EAAStyB,IAMEizB,MAFyC,oBAAnBC,gBAEG,SAAUpkB,GAChD,OAAO,IAAInN,SAAQ,SAA4BC,EAASC,GACtD,IAAIsxB,EAAcrkB,EAAO9O,KACzB,MAAMozB,EAAiBpG,EAAavd,KAAKX,EAAO+b,SAASuD,YACzD,IACIiF,EAWAvI,GAZA,aAACiB,EAAY,cAAEuH,GAAiBxkB,EAEpC,SAASvC,IACHuC,EAAOykB,aACTzkB,EAAOykB,YAAYC,YAAYH,GAG7BvkB,EAAO2kB,QACT3kB,EAAO2kB,OAAOC,oBAAoB,QAASL,GAM/C,GAAIpkB,IAAMzF,WAAW2pB,GACnB,GAAIlJ,EAASJ,uBAAyBI,EAASH,+BAC7CsJ,EAAelI,gBAAe,QACzB,IAAwD,KAAnDJ,EAAcsI,EAAerI,kBAA6B,CAEpE,MAAO9nB,KAAS2qB,GAAU9C,EAAcA,EAAYzd,MAAM,KAAK8C,IAAIC,GAASA,EAAMtF,QAAQY,OAAOiN,SAAW,GAC5Gya,EAAelI,eAAe,CAACjoB,GAAQ,yBAA0B2qB,GAAQvd,KAAK,OAIlF,IAAI/M,EAAU,IAAI4vB,eAGlB,GAAIpkB,EAAO6kB,KAAM,CACf,MAAMC,EAAW9kB,EAAO6kB,KAAKC,UAAY,GACnCC,EAAW/kB,EAAO6kB,KAAKE,SAAWve,SAASC,mBAAmBzG,EAAO6kB,KAAKE,WAAa,GAC7FT,EAAepmB,IAAI,gBAAiB,SAAWkI,KAAK0e,EAAW,IAAMC,IAGvE,MAAMC,EAAWtD,EAAc1hB,EAAO2hB,QAAS3hB,EAAOyZ,KAOtD,SAASwL,IACP,IAAKzwB,EACH,OAGF,MAAM0wB,EAAkBhH,EAAavd,KACnC,0BAA2BnM,GAAWA,EAAQ2wB,0BCpFvC,SAAgBryB,EAASC,EAAQkN,GAC9C,MAAMud,EAAiBvd,EAASD,OAAOwd,eAClCvd,EAASS,QAAW8c,IAAkBA,EAAevd,EAASS,QAGjE3N,EAAO,IAAI+M,IACT,mCAAqCG,EAASS,OAC9C,CAACZ,IAAWslB,gBAAiBtlB,IAAWqd,kBAAkBhe,KAAKoV,MAAMtU,EAASS,OAAS,KAAO,GAC9FT,EAASD,OACTC,EAASzL,QACTyL,IAPFnN,EAAQmN,GD8FNolB,EAAO,SAAkB5vB,GACvB3C,EAAQ2C,GACRgI,OACC,SAAiBpH,GAClBtD,EAAOsD,GACPoH,MAde,CACfvM,KAHoB+rB,GAAiC,SAAjBA,GAA4C,SAAjBA,EACxCzoB,EAAQyL,SAA/BzL,EAAQ8wB,aAGR5kB,OAAQlM,EAAQkM,OAChB6kB,WAAY/wB,EAAQ+wB,WACpBxJ,QAASmJ,EACTllB,SACAxL,YAYFA,EAAU,KAoEZ,GArGAA,EAAQgxB,KAAKxlB,EAAO0d,OAAOpjB,cAAekf,EAASwL,EAAUhlB,EAAOoZ,OAAQpZ,EAAOylB,mBAAmB,GAGtGjxB,EAAQnB,QAAU2M,EAAO3M,QAiCrB,cAAemB,EAEjBA,EAAQywB,UAAYA,EAGpBzwB,EAAQkxB,mBAAqB,WACtBlxB,GAAkC,IAAvBA,EAAQmxB,aAQD,IAAnBnxB,EAAQkM,QAAkBlM,EAAQoxB,aAAwD,IAAzCpxB,EAAQoxB,YAAYxoB,QAAQ,WAKjF1I,WAAWuwB,IAKfzwB,EAAQqxB,QAAU,WACXrxB,IAILzB,EAAO,IAAI+M,IAAW,kBAAmBA,IAAWgmB,aAAc9lB,EAAQxL,IAG1EA,EAAU,OAIZA,EAAQV,QAAU,WAGhBf,EAAO,IAAI+M,IAAW,gBAAiBA,IAAWimB,YAAa/lB,EAAQxL,IAGvEA,EAAU,MAIZA,EAAQwxB,UAAY,WAClB,IAAIC,EAAsBjmB,EAAO3M,QAAU,cAAgB2M,EAAO3M,QAAU,cAAgB,mBAC5F,MAAMsoB,EAAe3b,EAAO2b,cAAgBC,EACxC5b,EAAOimB,sBACTA,EAAsBjmB,EAAOimB,qBAE/BlzB,EAAO,IAAI+M,IACTmmB,EACAtK,EAAalB,oBAAsB3a,IAAWomB,UAAYpmB,IAAWgmB,aACrE9lB,EACAxL,IAGFA,EAAU,MAMT2mB,EAASJ,wBACVyJ,GAAiBrkB,IAAMzI,WAAW8sB,KAAmBA,EAAgBA,EAAcxkB,IAE/EwkB,IAAoC,IAAlBA,GAA2B2B,EAAgBnB,IAAY,CAE3E,MAAMoB,EAAYpmB,EAAOqd,gBAAkBrd,EAAOod,gBAAkBiJ,EAAQlY,KAAKnO,EAAOod,gBAEpFgJ,GACF9B,EAAepmB,IAAI8B,EAAOqd,eAAgB+I,QAMhC3xB,IAAhB4vB,GAA6BC,EAAelI,eAAe,MAGvD,qBAAsB5nB,GACxB2L,IAAM9H,QAAQisB,EAAelkB,UAAU,SAA0BtI,EAAK/B,GACpEvB,EAAQ8xB,iBAAiBvwB,EAAK+B,MAK7BqI,IAAM5I,YAAYyI,EAAOumB,mBAC5B/xB,EAAQ+xB,kBAAoBvmB,EAAOumB,iBAIjCtJ,GAAiC,SAAjBA,IAClBzoB,EAAQyoB,aAAejd,EAAOid,cAIS,mBAA9Bjd,EAAOwmB,oBAChBhyB,EAAQiyB,iBAAiB,WAAYlD,EAAqBvjB,EAAOwmB,oBAAoB,IAIhD,mBAA5BxmB,EAAO0mB,kBAAmClyB,EAAQmyB,QAC3DnyB,EAAQmyB,OAAOF,iBAAiB,WAAYlD,EAAqBvjB,EAAO0mB,oBAGtE1mB,EAAOykB,aAAezkB,EAAO2kB,UAG/BJ,EAAaqC,IACNpyB,IAGLzB,GAAQ6zB,GAAUA,EAAOzyB,KAAO,IAAI4sB,EAAc,KAAM/gB,EAAQxL,GAAWoyB,GAC3EpyB,EAAQqyB,QACRryB,EAAU,OAGZwL,EAAOykB,aAAezkB,EAAOykB,YAAYqC,UAAUvC,GAC/CvkB,EAAO2kB,SACT3kB,EAAO2kB,OAAOoC,QAAUxC,IAAevkB,EAAO2kB,OAAO8B,iBAAiB,QAASlC,KAInF,MAAMnC,EEtPK,SAAuB3I,GACpC,MAAM7H,EAAQ,4BAA4B9T,KAAK2b,GAC/C,OAAO7H,GAASA,EAAM,IAAM,GFoPToV,CAAchC,GAE3B5C,IAAsD,IAA1CjH,EAASN,UAAUzd,QAAQglB,GACzCrvB,EAAO,IAAI+M,IAAW,wBAA0BsiB,EAAW,IAAKtiB,IAAWslB,gBAAiBplB,IAM9FxL,EAAQyyB,KAAK5C,GAAe,UG5PhC,MAAM6C,EAAgB,CACpBC,KAAMC,IACNC,IAAKC,GAGPnnB,IAAM9H,QAAQ6uB,EAAe,CAAC3uB,EAAI9C,KAChC,GAAI8C,EAAI,CACN,IACE7G,OAAOyD,eAAeoD,EAAI,OAAQ,CAAC9C,UACnC,MAAOhD,IAGTf,OAAOyD,eAAeoD,EAAI,cAAe,CAAC9C,aAI9C,MAAM8xB,EAAgBC,GAAW,KAAKA,EAEhCC,EAAoB5L,GAAY1b,IAAMzI,WAAWmkB,IAAwB,OAAZA,IAAgC,IAAZA,EAExE,MACA6L,IACXA,EAAWvnB,IAAM9I,QAAQqwB,GAAYA,EAAW,CAACA,GAEjD,MAAM,OAACj2B,GAAUi2B,EACjB,IAAIC,EACA9L,EAEJ,MAAM+L,EAAkB,GAExB,IAAK,IAAIr2B,EAAI,EAAGA,EAAIE,EAAQF,IAAK,CAE/B,IAAI0V,EAIJ,GALA0gB,EAAgBD,EAASn2B,GAGzBsqB,EAAU8L,GAELF,EAAiBE,KACpB9L,EAAUqL,GAAejgB,EAAK/J,OAAOyqB,IAAgBzwB,oBAErCzC,IAAZonB,GACF,MAAM,IAAI/b,IAAW,oBAAoBmH,MAI7C,GAAI4U,EACF,MAGF+L,EAAgB3gB,GAAM,IAAM1V,GAAKsqB,EAGnC,IAAKA,EAAS,CAEZ,MAAMgM,EAAUn2B,OAAO6mB,QAAQqP,GAC5BvmB,IAAI,EAAE4F,EAAI6gB,KAAW,WAAW7gB,OACpB,IAAV6gB,EAAkB,sCAAwC,kCAG/D,IAAInxB,EAAIlF,EACLo2B,EAAQp2B,OAAS,EAAI,YAAco2B,EAAQxmB,IAAIkmB,GAAchmB,KAAK,MAAQ,IAAMgmB,EAAaM,EAAQ,IACtG,0BAEF,MAAM,IAAI/nB,IACR,wDAA0DnJ,EAC1D,mBAIJ,OAAOklB,GCzDX,SAASkM,EAA6B/nB,GAKpC,GAJIA,EAAOykB,aACTzkB,EAAOykB,YAAYuD,mBAGjBhoB,EAAO2kB,QAAU3kB,EAAO2kB,OAAOoC,QACjC,MAAM,IAAIhG,EAAc,KAAM/gB,GAWnB,SAASioB,EAAgBjoB,GACtC+nB,EAA6B/nB,GAE7BA,EAAO+b,QAAUmC,EAAavd,KAAKX,EAAO+b,SAG1C/b,EAAO9O,KAAOyvB,EAAc9uB,KAC1BmO,EACAA,EAAO8b,mBAGgD,IAArD,CAAC,OAAQ,MAAO,SAAS1e,QAAQ4C,EAAO0d,SAC1C1d,EAAO+b,QAAQK,eAAe,qCAAqC,GAKrE,OAFgBsL,EAAoB1nB,EAAO6b,SAAWH,EAASG,QAExDA,CAAQ7b,GAAQJ,MAAK,SAA6BK,GAYvD,OAXA8nB,EAA6B/nB,GAG7BC,EAAS/O,KAAOyvB,EAAc9uB,KAC5BmO,EACAA,EAAO+c,kBACP9c,GAGFA,EAAS8b,QAAUmC,EAAavd,KAAKV,EAAS8b,SAEvC9b,KACN,SAA4BunB,GAe7B,OAdK3G,EAAS2G,KACZO,EAA6B/nB,GAGzBwnB,GAAUA,EAAOvnB,WACnBunB,EAAOvnB,SAAS/O,KAAOyvB,EAAc9uB,KACnCmO,EACAA,EAAO+c,kBACPyK,EAAOvnB,UAETunB,EAAOvnB,SAAS8b,QAAUmC,EAAavd,KAAK6mB,EAAOvnB,SAAS8b,WAIzDlpB,QAAQE,OAAOy0B,MCzE1B,MAAMU,EAAmBlxB,GAAUA,aAAiBknB,EAAe,IAAKlnB,GAAUA,EAWnE,SAASmxB,EAAYC,EAASC,GAE3CA,EAAUA,GAAW,GACrB,MAAMroB,EAAS,GAEf,SAASsoB,EAAej0B,EAAQoL,EAAQlE,GACtC,OAAI4E,IAAMtI,cAAcxD,IAAW8L,IAAMtI,cAAc4H,GAC9CU,IAAM7E,MAAMzJ,KAAK,CAAC0J,YAAWlH,EAAQoL,GACnCU,IAAMtI,cAAc4H,GACtBU,IAAM7E,MAAM,GAAImE,GACdU,IAAM9I,QAAQoI,GAChBA,EAAO/I,QAET+I,EAIT,SAAS8oB,EAAoB1sB,EAAGC,EAAGP,GACjC,OAAK4E,IAAM5I,YAAYuE,GAEXqE,IAAM5I,YAAYsE,QAAvB,EACEysB,OAAe7zB,EAAWoH,EAAGN,GAF7B+sB,EAAezsB,EAAGC,EAAGP,GAOhC,SAASitB,EAAiB3sB,EAAGC,GAC3B,IAAKqE,IAAM5I,YAAYuE,GACrB,OAAOwsB,OAAe7zB,EAAWqH,GAKrC,SAAS2sB,EAAiB5sB,EAAGC,GAC3B,OAAKqE,IAAM5I,YAAYuE,GAEXqE,IAAM5I,YAAYsE,QAAvB,EACEysB,OAAe7zB,EAAWoH,GAF1BysB,OAAe7zB,EAAWqH,GAOrC,SAAS4sB,EAAgB7sB,EAAGC,EAAGtC,GAC7B,OAAIA,KAAQ6uB,EACHC,EAAezsB,EAAGC,GAChBtC,KAAQ4uB,EACVE,OAAe7zB,EAAWoH,QAD5B,EAKT,MAAM8sB,EAAW,CACflP,IAAK+O,EACL9K,OAAQ8K,EACRt3B,KAAMs3B,EACN7G,QAAS8G,EACT3M,iBAAkB2M,EAClB1L,kBAAmB0L,EACnBhD,iBAAkBgD,EAClBp1B,QAASo1B,EACTG,eAAgBH,EAChBlC,gBAAiBkC,EACjBjE,cAAeiE,EACf5M,QAAS4M,EACTxL,aAAcwL,EACdrL,eAAgBqL,EAChBpL,eAAgBoL,EAChB/B,iBAAkB+B,EAClBjC,mBAAoBiC,EACpBI,WAAYJ,EACZnL,iBAAkBmL,EAClBlL,cAAekL,EACfK,eAAgBL,EAChBM,UAAWN,EACXO,UAAWP,EACXQ,WAAYR,EACZhE,YAAagE,EACbS,WAAYT,EACZU,iBAAkBV,EAClBjL,eAAgBkL,EAChB3M,QAASA,CAAClgB,EAAGC,IAAMysB,EAAoBL,EAAgBrsB,GAAIqsB,EAAgBpsB,IAAI,IASjF,OANAqE,IAAM9H,QAAQ3G,OAAO+G,KAAK/G,OAAO8K,OAAO,GAAI4rB,EAASC,KAAW,SAA4B7uB,GAC1F,MAAM8B,EAAQqtB,EAASnvB,IAAS+uB,EAC1Ba,EAAc9tB,EAAM8sB,EAAQ5uB,GAAO6uB,EAAQ7uB,GAAOA,GACvD2G,IAAM5I,YAAY6xB,IAAgB9tB,IAAUotB,IAAqB1oB,EAAOxG,GAAQ4vB,MAG5EppB,ECxGF,MCKDqpB,GAAa,GAGnB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUhxB,QAAQ,CAAClE,EAAM5C,KAC7E83B,GAAWl1B,GAAQ,SAAmB6C,GACpC,cAAcA,IAAU7C,GAAQ,KAAO5C,EAAI,EAAI,KAAO,KAAO4C,KAIjE,MAAMm1B,GAAqB,GAW3BD,GAAW1N,aAAe,SAAsB4N,EAAWC,EAASl1B,GAClE,SAASm1B,EAAcC,EAAKC,GAC1B,MAAO,uCAAoDD,EAAM,IAAOC,GAAQr1B,EAAU,KAAOA,EAAU,IAI7G,MAAO,CAACmB,EAAOi0B,EAAKE,KAClB,IAAkB,IAAdL,EACF,MAAM,IAAIzpB,IACR2pB,EAAcC,EAAK,qBAAuBF,EAAU,OAASA,EAAU,KACvE1pB,IAAW+pB,gBAef,OAXIL,IAAYF,GAAmBI,KACjCJ,GAAmBI,IAAO,EAE1BpzB,QAAQwzB,KACNL,EACEC,EACA,+BAAiCF,EAAU,8CAK1CD,GAAYA,EAAU9zB,EAAOi0B,EAAKE,KAqC9B,QACbG,cAxBF,SAAuBnoB,EAASooB,EAAQC,GACtC,GAAuB,iBAAZroB,EACT,MAAM,IAAI9B,IAAW,4BAA6BA,IAAWoqB,sBAE/D,MAAMzxB,EAAO/G,OAAO+G,KAAKmJ,GACzB,IAAIrQ,EAAIkH,EAAKhH,OACb,KAAOF,KAAM,GAAG,CACd,MAAMm4B,EAAMjxB,EAAKlH,GACXg4B,EAAYS,EAAON,GACzB,GAAIH,EAAJ,CACE,MAAM9zB,EAAQmM,EAAQ8nB,GAChB3uB,OAAmBtG,IAAVgB,GAAuB8zB,EAAU9zB,EAAOi0B,EAAK9nB,GAC5D,IAAe,IAAX7G,EACF,MAAM,IAAI+E,IAAW,UAAY4pB,EAAM,YAAc3uB,EAAQ+E,IAAWoqB,2BAI5E,IAAqB,IAAjBD,EACF,MAAM,IAAInqB,IAAW,kBAAoB4pB,EAAK5pB,IAAWqqB,kBAO7Dd,eC9EF,MAAMA,GAAaE,GAAUF,WAS7B,MAAMe,GACJ3vB,YAAY4vB,GACV7uB,KAAKkgB,SAAW2O,EAChB7uB,KAAK8uB,aAAe,CAClB91B,QAAS,IAAIslB,EACb7Z,SAAU,IAAI6Z,GAYlB,cAAcyQ,EAAavqB,GACzB,IACE,aAAaxE,KAAKgvB,SAASD,EAAavqB,GACxC,MAAO3J,GACP,GAAIA,aAAezC,MAAO,CACxB,IAAI62B,EAEJ72B,MAAMsM,kBAAoBtM,MAAMsM,kBAAkBuqB,EAAQ,IAAOA,EAAQ,IAAI72B,MAG7E,MAAM2L,EAAQkrB,EAAMlrB,MAAQkrB,EAAMlrB,MAAMtD,QAAQ,QAAS,IAAM,GAE1D5F,EAAIkJ,MAGEA,IAAUrC,OAAO7G,EAAIkJ,OAAOxC,SAASwC,EAAMtD,QAAQ,YAAa,OACzE5F,EAAIkJ,OAAS,KAAOA,GAHpBlJ,EAAIkJ,MAAQA,EAOhB,MAAMlJ,GAIVm0B,SAASD,EAAavqB,GAGO,iBAAhBuqB,GACTvqB,EAASA,GAAU,IACZyZ,IAAM8Q,EAEbvqB,EAASuqB,GAAe,GAG1BvqB,EAASmoB,EAAY3sB,KAAKkgB,SAAU1b,GAEpC,MAAM,aAAC2b,EAAY,iBAAE8J,EAAgB,QAAE1J,GAAW/b,OAE7BvL,IAAjBknB,GACF4N,GAAUQ,cAAcpO,EAAc,CACpCpB,kBAAmB8O,GAAW1N,aAAa0N,GAAWqB,SACtDlQ,kBAAmB6O,GAAW1N,aAAa0N,GAAWqB,SACtDjQ,oBAAqB4O,GAAW1N,aAAa0N,GAAWqB,WACvD,GAGmB,MAApBjF,IACEtlB,IAAMzI,WAAW+tB,GACnBzlB,EAAOylB,iBAAmB,CACxB9L,UAAW8L,GAGb8D,GAAUQ,cAActE,EAAkB,CACxCxM,OAAQoQ,GAAWsB,SACnBhR,UAAW0P,GAAWsB,WACrB,IAKP3qB,EAAO0d,QAAU1d,EAAO0d,QAAUliB,KAAKkgB,SAASgC,QAAU,OAAOxmB,cAGjE,IAAI0zB,EAAiB7O,GAAW5b,IAAM7E,MACpCygB,EAAQ0B,OACR1B,EAAQ/b,EAAO0d,SAGjB3B,GAAW5b,IAAM9H,QACf,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,UACjDqlB,WACQ3B,EAAQ2B,KAInB1d,EAAO+b,QAAUmC,EAAa9c,OAAOwpB,EAAgB7O,GAGrD,MAAM8O,EAA0B,GAChC,IAAIC,GAAiC,EACrCtvB,KAAK8uB,aAAa91B,QAAQ6D,SAAQ,SAAoC0yB,GACjC,mBAAxBA,EAAY3Q,UAA0D,IAAhC2Q,EAAY3Q,QAAQpa,KAIrE8qB,EAAiCA,GAAkCC,EAAY5Q,YAE/E0Q,EAAwBG,QAAQD,EAAY9Q,UAAW8Q,EAAY7Q,cAGrE,MAAM+Q,EAA2B,GAKjC,IAAIr4B,EAJJ4I,KAAK8uB,aAAarqB,SAAS5H,SAAQ,SAAkC0yB,GACnEE,EAAyBl5B,KAAKg5B,EAAY9Q,UAAW8Q,EAAY7Q,aAInE,IACIvhB,EADApH,EAAI,EAGR,IAAKu5B,EAAgC,CACnC,MAAMI,EAAQ,CAACjD,EAAgBjyB,KAAKwF,WAAO/G,GAO3C,IANAy2B,EAAMF,QAAQjlB,MAAMmlB,EAAOL,GAC3BK,EAAMn5B,KAAKgU,MAAMmlB,EAAOD,GACxBtyB,EAAMuyB,EAAMz5B,OAEZmB,EAAUC,QAAQC,QAAQkN,GAEnBzO,EAAIoH,GACT/F,EAAUA,EAAQgN,KAAKsrB,EAAM35B,KAAM25B,EAAM35B,MAG3C,OAAOqB,EAGT+F,EAAMkyB,EAAwBp5B,OAE9B,IAAI05B,EAAYnrB,EAIhB,IAFAzO,EAAI,EAEGA,EAAIoH,GAAK,CACd,MAAMyyB,EAAcP,EAAwBt5B,KACtC85B,EAAaR,EAAwBt5B,KAC3C,IACE45B,EAAYC,EAAYD,GACxB,MAAOx3B,GACP03B,EAAWx5B,KAAK2J,KAAM7H,GACtB,OAIJ,IACEf,EAAUq1B,EAAgBp2B,KAAK2J,KAAM2vB,GACrC,MAAOx3B,GACP,OAAOd,QAAQE,OAAOY,GAMxB,IAHApC,EAAI,EACJoH,EAAMsyB,EAAyBx5B,OAExBF,EAAIoH,GACT/F,EAAUA,EAAQgN,KAAKqrB,EAAyB15B,KAAM05B,EAAyB15B,MAGjF,OAAOqB,EAGT04B,OAAOtrB,GAGL,OAAOwZ,EADUkI,GADjB1hB,EAASmoB,EAAY3sB,KAAKkgB,SAAU1b,IACE2hB,QAAS3hB,EAAOyZ,KAC5BzZ,EAAOoZ,OAAQpZ,EAAOylB,mBAKpDtlB,IAAM9H,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BqlB,GAE/E0M,GAAMz4B,UAAU+rB,GAAU,SAASjE,EAAKzZ,GACtC,OAAOxE,KAAKhH,QAAQ2zB,EAAYnoB,GAAU,GAAI,CAC5C0d,SACAjE,MACAvoB,MAAO8O,GAAU,IAAI9O,YAK3BiP,IAAM9H,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BqlB,GAGrE,SAAS6N,EAAmBC,GAC1B,OAAO,SAAoB/R,EAAKvoB,EAAM8O,GACpC,OAAOxE,KAAKhH,QAAQ2zB,EAAYnoB,GAAU,GAAI,CAC5C0d,SACA3B,QAASyP,EAAS,CAChB,eAAgB,uBACd,GACJ/R,MACAvoB,WAKNk5B,GAAMz4B,UAAU+rB,GAAU6N,IAE1BnB,GAAMz4B,UAAU+rB,EAAS,QAAU6N,GAAmB,MAGzCnB,UCrNf,MAAMqB,GACJhxB,YAAYixB,GACV,GAAwB,mBAAbA,EACT,MAAM,IAAI7pB,UAAU,gCAGtB,IAAI8pB,EAEJnwB,KAAK5I,QAAU,IAAIC,SAAQ,SAAyBC,GAClD64B,EAAiB74B,KAGnB,MAAMwO,EAAQ9F,KAGdA,KAAK5I,QAAQgN,KAAKgnB,IAChB,IAAKtlB,EAAMsqB,WAAY,OAEvB,IAAIr6B,EAAI+P,EAAMsqB,WAAWn6B,OAEzB,KAAOF,KAAM,GACX+P,EAAMsqB,WAAWr6B,GAAGq1B,GAEtBtlB,EAAMsqB,WAAa,OAIrBpwB,KAAK5I,QAAQgN,KAAOisB,IAClB,IAAIC,EAEJ,MAAMl5B,EAAU,IAAIC,QAAQC,IAC1BwO,EAAMwlB,UAAUh0B,GAChBg5B,EAAWh5B,IACV8M,KAAKisB,GAMR,OAJAj5B,EAAQg0B,OAAS,WACftlB,EAAMojB,YAAYoH,IAGbl5B,GAGT84B,GAAS,SAAgBp3B,EAAS0L,EAAQxL,GACpC8M,EAAMkmB,SAKVlmB,EAAMkmB,OAAS,IAAIzG,EAAczsB,EAAS0L,EAAQxL,GAClDm3B,EAAerqB,EAAMkmB,YAOzBQ,mBACE,GAAIxsB,KAAKgsB,OACP,MAAMhsB,KAAKgsB,OAQfV,UAAUtD,GACJhoB,KAAKgsB,OACPhE,EAAShoB,KAAKgsB,QAIZhsB,KAAKowB,WACPpwB,KAAKowB,WAAW75B,KAAKyxB,GAErBhoB,KAAKowB,WAAa,CAACpI,GAQvBkB,YAAYlB,GACV,IAAKhoB,KAAKowB,WACR,OAEF,MAAM9oB,EAAQtH,KAAKowB,WAAWxuB,QAAQomB,IACvB,IAAX1gB,GACFtH,KAAKowB,WAAWG,OAAOjpB,EAAO,GAQlC,gBACE,IAAI8jB,EAIJ,MAAO,CACLtlB,MAJY,IAAImqB,IAAY,SAAkB12B,GAC9C6xB,EAAS7xB,KAIT6xB,WAKS6E,UCxHf,MAAMO,GAAiB,CACrBC,SAAU,IACVC,mBAAoB,IACpBC,WAAY,IACZC,WAAY,IACZC,GAAI,IACJC,QAAS,IACTC,SAAU,IACVC,4BAA6B,IAC7BC,UAAW,IACXC,aAAc,IACdC,eAAgB,IAChBC,YAAa,IACbC,gBAAiB,IACjBC,OAAQ,IACRC,gBAAiB,IACjBC,iBAAkB,IAClBC,MAAO,IACPC,SAAU,IACVC,YAAa,IACbC,SAAU,IACVC,OAAQ,IACRC,kBAAmB,IACnBC,kBAAmB,IACnBC,WAAY,IACZC,aAAc,IACdC,gBAAiB,IACjBC,UAAW,IACXC,SAAU,IACVC,iBAAkB,IAClBC,cAAe,IACfC,4BAA6B,IAC7BC,eAAgB,IAChBC,SAAU,IACVC,KAAM,IACNC,eAAgB,IAChBC,mBAAoB,IACpBC,gBAAiB,IACjBC,WAAY,IACZC,qBAAsB,IACtBC,oBAAqB,IACrBC,kBAAmB,IACnBC,UAAW,IACXC,mBAAoB,IACpBC,oBAAqB,IACrBC,OAAQ,IACRC,iBAAkB,IAClBC,SAAU,IACVC,gBAAiB,IACjBC,qBAAsB,IACtBC,gBAAiB,IACjBC,4BAA6B,IAC7BC,2BAA4B,IAC5BC,oBAAqB,IACrBC,eAAgB,IAChBC,WAAY,IACZC,mBAAoB,IACpBC,eAAgB,IAChBC,wBAAyB,IACzBC,sBAAuB,IACvBC,oBAAqB,IACrBC,aAAc,IACdC,YAAa,IACbC,8BAA+B,KAGjCr+B,OAAO6mB,QAAQyT,IAAgB3zB,QAAQ,EAAEtC,EAAKN,MAC5Cu2B,GAAev2B,GAASM,IAGXi2B,UCxBf,MAAMgE,GAnBN,SAASC,EAAejY,GACtB,MAAM7e,EAAU,IAAIixB,GAAMpS,GACpBkY,EAAWl6B,YAAKo0B,GAAMz4B,UAAU6C,QAAS2E,GAa/C,OAVAgH,IAAMvE,OAAOs0B,EAAU9F,GAAMz4B,UAAWwH,EAAS,CAACX,YAAY,IAG9D2H,IAAMvE,OAAOs0B,EAAU/2B,EAAS,KAAM,CAACX,YAAY,IAGnD03B,EAASp6B,OAAS,SAAgBu0B,GAChC,OAAO4F,EAAe9H,EAAYnQ,EAAeqS,KAG5C6F,EAIKD,CAAevU,GAG7BsU,GAAM5F,MAAQA,GAGd4F,GAAMjP,cAAgBA,EACtBiP,GAAMvE,YAAcA,GACpBuE,GAAMnP,SAAWA,EACjBmP,GAAMG,QLvDiB,QKwDvBH,GAAMtuB,WAAaA,IAGnBsuB,GAAMlwB,WAAaA,IAGnBkwB,GAAMI,OAASJ,GAAMjP,cAGrBiP,GAAMn7B,IAAM,SAAanC,GACvB,OAAOG,QAAQgC,IAAInC,IAGrBs9B,GAAMK,OC9CS,SAAgBC,GAC7B,OAAO,SAAchzB,GACnB,OAAOgzB,EAASvqB,MAAM,KAAMzI,KD+ChC0yB,GAAMO,aE7DS,SAAsBC,GACnC,OAAOrwB,IAAMvI,SAAS44B,KAAsC,IAAzBA,EAAQD,cF+D7CP,GAAM7H,YAAcA,EAEpB6H,GAAM9R,aAAeA,EAErB8R,GAAMS,WAAaz5B,GAASokB,EAAejb,IAAM5G,WAAWvC,GAAS,IAAI4D,SAAS5D,GAASA,GAE3Fg5B,GAAMU,WAAahJ,EAEnBsI,GAAMhE,eAAiBA,GAEvBgE,GAAMjrB,QAAUirB,GAGDA,U,iBGxFwL,GCsDxL,CACfz7B,KAAA,SAEAgI,MAAA,IACAuI,KACA6rB,OAAA,CACAx8B,KAAA2K,OACAiG,QAAA,GAEA6rB,aAAA,CACAz8B,KAAA2K,OACAiG,QAAA,IAIA7T,UACA,CACA2/B,MAAAv5B,MAAA,GAAA0Z,KAAA,KAIA8f,UACA,KAAAC,eAGAhR,SAAA,CACAiR,YACA,uBAAAhxB,OAAAkF,cAAAM,OAEAyrB,WACA,MAAAA,EAAA,KAAAjxB,OAAAkF,cAAAE,UACA,OAAA6rB,EAGA,iBAAAA,EACAA,EAAA,KAEAA,EALA,KAAAD,UAAA,eAOAE,iBACA,MAAAD,EAAA,KAAAjxB,OAAAkF,cAAAE,UACA,IAAA6rB,EACA,YAAAD,UAAA,MAEA,oBAAAC,EACA,OAAAA,EAEA,MAAArf,EAAA1U,OAAA+zB,GAAArf,MAAA,oBACA,OAAAA,EAAAuf,WAAAvf,EAAA,SAAAof,UAAA,OAEAI,wBACA,MAAAT,EAAAxxB,KAAAwS,IAAA,EAAAxS,KAAA0L,IAAA,OAAA8lB,SAEA,OAAAA,GAAA,EACAA,EAAA,KACAA,GAAA,EACA,IAAAA,EAAA,UACAA,GAAA,IACA,IAAAA,EAAA,UAEA,IAAAA,EAAA,YAGAU,YACA,YAAArxB,OAAAkF,cAAAG,YAAA,WAEAisB,aACA,YAAAC,aAAA,KAAAX,eAEAY,eACA,OAAAlnB,aAAA,KAAAtK,OAAAkF,cAAAG,WAAA,KAEAosB,kBACA,OAAA3yB,OAAA4yB,UAAA,KAAAf,QACA,KAAAA,OAEA7xB,OAAA,KAAA6xB,OAAAgB,QAAA,MAIAC,QAAA,CACAtnB,kBACAinB,aAAAva,GACAA,GAAA,KACAA,EAAA,KAAA2a,QAAA,GAAA11B,QAAA,eACA+a,GAAA,KACAA,EAAA,KAAA2a,QAAA,GAAA11B,QAAA,eAEA+a,EAAApgB,WAIAm6B,cACA,MAAAJ,EAAAxxB,KAAAwS,IAAA,EAAAxS,KAAA0L,IAAA,OAAA8lB,SACA,KAAAE,MAAAv5B,MAAA,GAAA0Z,KAAA,GAAA3P,IAAA,CAAAwwB,EAAA/uB,IAEA6tB,GADA7tB,EAAA,EAEA,EACA6tB,EAAA7tB,EACA,GAEA,IAKAgvB,aAAAC,GACA,IAAAA,EACA,0BACA,KAAAA,EACA,wBAEA,mBAIAC,YAAAD,EAAAjvB,GACA,WAAAivB,EACA,KAAAV,UACA,KAAAU,EACA,iBAAAjvB,KAEA,SAKAmvB,MAAA,CACAtB,OAAA,gB,gBCnKe,GAXC,aACd,ICTW,WAAa,IAAIuB,EAAI12B,KAAS22B,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACE,YAAY,gBAAgBC,MAAM,CAAE,yBAA0BN,EAAIlB,YAAa,CAAGkB,EAAIlB,UAAogD,CAACqB,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAACF,EAAG,MAAM,CAACE,YAAY,+CAA+CE,MAAM,CAAGC,MAAOR,EAAIlyB,OAAOkF,cAAcG,YAAcstB,MAAM,CAAC,MAAQ,6BAA6B,MAAQT,EAAIhB,eAAe,OAASgB,EAAIhB,eAAe,QAAU,YAAY,eAAe,IAAI,OAAS,eAAe,iBAAiB,QAAQ,kBAAkB,UAAU,CAACmB,EAAG,OAAO,CAACA,EAAG,iBAAiB,CAACM,MAAM,CAAC,GAAM,oBAAsBT,EAAIU,KAAM,GAAK,KAAK,GAAK,KAAK,GAAK,OAAO,GAAK,OAAO,CAACP,EAAG,OAAO,CAACI,MAAQ,cAAiBP,EAAIlyB,OAAOkF,cAAwB,WAAI,kBAAoBytB,MAAM,CAAC,OAAS,QAAQN,EAAG,OAAO,CAACI,MAAQ,cAAiBP,EAAIlyB,OAAOkF,cAAwB,WAAI,kBAAoBytB,MAAM,CAAC,OAAUT,EAAId,sBAAwB,OAAQiB,EAAG,OAAO,CAACI,MAAQ,cAAiBP,EAAIlyB,OAAOkF,cAAwB,WAAI,kBAAoBytB,MAAM,CAAC,OAAUT,EAAId,sBAAwB,OAAQiB,EAAG,OAAO,CAACI,MAAQ,cAAiBP,EAAIlyB,OAAOkF,cAAwB,WAAI,kBAAoBytB,MAAM,CAAC,OAAS,WAAW,IAAI,GAAGN,EAAG,OAAO,CAACM,MAAM,CAAC,OAAS,OAAO,EAAI,gBAAgB,KAAO,UAAUN,EAAG,OAAO,CAACM,MAAM,CAAC,EAAI,iRAAiR,KAAQ,yBAA2BT,EAAIU,KAAO,SAAUP,EAAG,OAAO,CAACE,YAAY,8BAA8BE,MAAM,CAAGxB,SAAUiB,EAAIjB,WAAa,CAACiB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIT,iBAAiB,aAA7jG,CAACS,EAAIa,GAAIb,EAAS,OAAE,SAASH,EAAKjvB,GAAO,OAAOuvB,EAAG,MAAM,CAACt8B,IAAI+M,EAAMyvB,YAAY,mBAAmBC,MAAMN,EAAIJ,aAAaC,GAAMU,MAAM,CAAGC,MAAOR,EAAIlyB,OAAOkF,cAAcG,YAAcstB,MAAM,CAAC,MAAQ,6BAA6B,MAAQT,EAAIhB,eAAe,OAASgB,EAAIhB,eAAe,QAAU,YAAY,eAAe,IAAI,OAAS,eAAe,KAAOgB,EAAIF,YAAYD,EAAMjvB,GAAO,iBAAiB,QAAQ,kBAAkB,UAAU,CAAW,KAATivB,EAAcM,EAAG,OAAO,CAACA,EAAG,iBAAiB,CAACM,MAAM,CAAC,GAAM,YAAc7vB,EAAO,GAAK,KAAK,GAAK,KAAK,GAAK,OAAO,GAAK,OAAO,CAACuvB,EAAG,OAAO,CAACI,MAAQ,cAAiBP,EAAIlyB,OAAOkF,cAAwB,WAAI,kBAAoBytB,MAAM,CAAC,OAAS,SAASN,EAAG,OAAO,CAACI,MAAQ,cAAiBP,EAAIlyB,OAAOkF,cAAwB,WAAI,kBAAoBytB,MAAM,CAAC,OAAS,UAAU,IAAI,GAAGT,EAAIc,KAAKX,EAAG,OAAO,CAACM,MAAM,CAAC,OAAS,OAAO,EAAI,gBAAgB,KAAO,UAAUN,EAAG,OAAO,CAACM,MAAM,CAAC,EAAI,iRAAiR,KAAOT,EAAIF,YAAYD,EAAMjvB,WAAcuvB,EAAG,OAAO,CAACE,YAAY,qBAAqBE,MAAM,CAAGC,MAAO,mBAAoBzB,SAAUiB,EAAIjB,WAAa,CAACiB,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIT,iBAAiB,UAAUY,EAAG,OAAO,CAACE,YAAY,qBAAqBE,MAAM,CAAGC,MAAO,cAAezB,SAAUiB,EAAIjB,WAAa,CAACiB,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAItB,cAAc,SAA0lD,KACjwG,IDWpB,EACA,KACA,KACA,M,QEwNaqC,OAhOf,MACEx4B,YAAamH,GACXpG,KAAKyK,KAAO,GACZzK,KAAKiT,OAAS,EACdjT,KAAK03B,SAAU,EACf13B,KAAKoG,QAAUA,EAGjB,aACE,UACQpG,KAAK23B,qBACL33B,KAAKs1B,UACXt1B,KAAK43B,wBACL,MAAOz/B,GACP2C,QAAQ3C,MAAM,6BAA8BA,IAIhD,qBACE,GAAI6H,KAAK03B,QACP,OAAOrgC,QAAQC,UAGjB,GADA0I,KAAK03B,SAAU,EACX13B,KAAK63B,uBAEP,OADA73B,KAAK03B,SAAU,EACRrgC,QAAQC,UAGjB,OAAOk9B,GAAM,CACXvW,IAFa6Z,GAAH,sCAGVvX,QAAS,CACP,aAAcvgB,KAAKoG,QAAQoD,SAC3B,YAAaxJ,KAAKoG,QAAQqD,UAG3BrF,KAAK,EAAG1O,WACPsK,KAAKyK,KAAO/U,EAAK6J,QAAU,GACpBS,KAAK+3B,mBAAmB,CAC7Bx4B,OAAQ7J,EAAK6J,OACby4B,UAAWnS,KAAKI,UAGnB5hB,MAAOxJ,IACNC,QAAQ3C,MAAM,6BAA8B0C,KAIlDg9B,uBACE,IACE,MAAMI,EAAmBj9B,OAAOk9B,aAAaC,QAAQ,kBACrD,GAAIF,EAAkB,CACpB,MAAMviC,EAAOuR,KAAKoa,MAAM4W,GACxB,SACEviC,GACAA,EAAK6J,QACL7J,EAAKsiC,WACLnS,KAAKI,MAAQvwB,EAAKsiC,UAAY,SAE9Bh4B,KAAKyK,KAAO/U,EAAK6J,QACV,IAKX,MAAOpH,GAEP,OADA2C,QAAQ3C,MAAM,qCAAsCA,IAC7C,GAIX4/B,mBAAoBriC,GAClBsF,OAAOk9B,aAAaE,QAAQ,iBAAkBnxB,KAAKC,UAAUxR,IAG/D2iC,yBAA0BC,GACxB,OAAKA,GAAQt4B,KAAKyK,MAA6B,IAArBzK,KAAKyK,KAAKxU,OAI7B+J,KAAKyK,KAAK8tB,KAAMpD,GAAWA,EAAOmD,MAAQA,GAHxC,KAMXE,aACE,MAAMrZ,EAAU,CAAC,wBAAyB,sBAI1C,OAHInf,KAAKoG,QAAQsD,cAAc+uB,cAC7BtZ,EAAQ5oB,KAAKyJ,KAAKoG,QAAQsD,cAAc+uB,cAEnCtZ,EAGT,gBACE,MAAMA,EAAUnf,KAAKw4B,aACfE,EAAWhhC,SAASihC,iBAAiBxZ,EAAQpZ,KAAK,MAClD7O,EAAW,GACjB4E,MAAMqJ,KAAKuzB,GAAU77B,QAAS+7B,IAC5B1hC,EAASX,KAAKyJ,KAAK64B,aAAaD,YAE5BvhC,QAAQgC,IAAInC,GAAUkN,KAAK,KAC/BpE,KAAK84B,0BAIT,mBAAoBF,GAClB,OAAO,IAAIvhC,QAASC,IAClB,IAAKshC,EAAQjc,QAAS,OAAOrlB,IAC7B,MAAMslB,EAAU5c,KAAK+4B,sBAAsBH,GAC3C,IAAKhc,EAAS,OAAOtlB,IAErB,MAAM69B,EAASn1B,KAAKq4B,yBAAyBzb,GAC7C,GACGuY,GACgB,IAAjBA,EAAO9M,OACgC,QAAvCroB,KAAKoG,QAAQsD,cAAcI,UACzBqrB,GAAiD,QAAvCn1B,KAAKoG,QAAQsD,cAAcI,QAEvC,OAAOxS,IAET,MAAM0hC,EAAYthC,SAASC,cAAc,OACnCyO,EAAUpG,KAAKoG,QAcrB,OAbA,IAAIgX,IAAI,CACNxV,OAAQuB,GACCA,EAAE8vB,GAAkB,CACzBl4B,MAAO,CACLo0B,OAAQA,GAAUA,EAAO+D,QAAU/D,EAAO+D,QAAU,EACpD9D,aAAcD,GAAUA,EAAO9M,MAAQ8M,EAAO9M,MAAQ,EACtD7jB,OAAQ4B,OAIbiX,OAAOub,GACVA,EAAQ7gC,aAAa,wBAAyBiI,KAAKm5B,cACnDP,EAAQx/B,YAAY4/B,GACb1hC,MAIX6hC,WAAYC,GACV,OAAOz1B,KAAKC,SACTxI,SAAS,IACTqF,QAAQ,KAAM24B,GAAU,IAG7BN,wBAOmB,IAAI99B,OAAOq+B,iBAC1Br5B,KAAKs5B,sBAAsB9+B,KAAKwF,OAEzBwd,QAAQ9lB,SAAS6hC,KATV,CACdC,WAAW,EACXC,YAAY,EACZC,SAAS,IASbJ,sBAAuBK,EAAW3c,GAChC2c,EAAU98B,QAAS+8B,IACK,cAAlBA,EAASjhC,MACXihC,EAASC,WAAWh9B,QAASi9B,IACvB95B,KAAK+5B,gBAAgBD,IAAS95B,KAAK+4B,sBAAsBe,IAC3D95B,KAAK64B,aAAaiB,OAO5BC,gBAAiBnB,GACf,IAAIoB,GAAO,EACX,MAAM7a,EAAUnf,KAAKw4B,aASrB,OARII,EAAQqB,UAAUhkC,QACpB2iC,EAAQqB,UAAUp9B,QAAS5C,IACrBklB,EAAQ1I,SAASxc,KACnB+/B,GAAO,KAKNA,EAGTjB,sBAAuBH,GACrB,OAAKA,EAAQjc,UAEXic,EAAQjc,QAAQud,iBAChBtB,EAAQjc,QAAQC,SAChBgc,EAAQjc,QAAQ2b,KAChBM,EAAQjc,QAAQwd,mBALW,KAU/BvC,wBACE,MAAMwC,EAAgB1iC,SAASglB,eAAe,iBAC9C,IAAK0d,IAAkBp6B,KAAKoG,QAAQsD,cAAcK,YAChD,OAAO,EAGT,MAkBMswB,EAAuB,IAAIr/B,OAAOq+B,iBAlBvBvE,KACfuF,EAAqB/c,aACrB,MAAMgd,EAAaF,EAAczB,iBAC/B,iCACA,GAEI4B,EAAc,IAAIv/B,OAAOq+B,iBAAiB,KAC9CngC,WAAW,KACT8G,KAAKs1B,WACJ,KACHiF,EAAYjd,eAEdid,EAAY/c,QAAQ8c,EAAY,CAC9Bd,WAAW,EACXE,SAAS,MAKbW,EAAqB7c,QAAQ4c,EAAe,CAC1CX,YAAY,EACZD,WAAW,MClOuL,GCgDzL,CACfzgC,KAAA,UAEAgI,MAAA,IACAuI,KACAsT,QAAA,CACAjkB,KAAA+I,OACA84B,UAAA,IAIA9kC,UACA,CACA+U,KAAA,GACA4d,MAAA,EACAhP,MAAA,EACApG,OAAA,EAEAykB,SAAA,EAEA+C,YAAA,KACAC,aAAA,KAEAC,YAAA,EACAC,OAAA,KACAC,SAAA,EAEAC,aAAA,EACAC,iBAAA,KACA7B,QAAA,CACA8B,IAAA,EACAC,IAAA,EACAC,MAAA,EACAC,KAAA,EACAC,KAAA,GAGAC,iBAAA,EACAC,eAAA,KACAC,cAAA,EAEAC,QAAA,OAIA/E,MAAA,CACAgF,iBAAA,SAAAC,IACA,KAAAF,SAAAE,EAAAzlC,OAAA,IACA,KAAAulC,QAAA9jC,SAAAiW,cAAA,4BAGA8sB,YAAA,SAAAkB,EAAAC,GACAD,IAAAC,IACA,KAAAnxB,KAAA,GACA,KAAAoxB,iBAIAnB,aAAA,SAAAiB,EAAAC,GACAD,IAAAC,IACA,KAAAnxB,KAAA,GACA,KAAAoxB,iBAIAxiB,MAAA,WACA,KAAAwiB,gBAGA5oB,OAAA,WACA,KAAA4oB,iBAIAtX,SAAA,CACAuX,wBAAA,2BACAC,uBAAA,0BACAC,gBAAA,oBACAP,mBACA,YAAAhxB,KAAArJ,OACA66B,KAAAC,UAAAD,EAAAC,SAAAjmC,OAAA,IAGAkmC,WAGA,+BAFA,IAAAC,IAAAphC,OAAAosB,SAAAT,MACA0V,OAGAnyB,QACA,YAAA1F,OAAAyF,cAAAC,MACA,KAAA1F,OAAAyF,cAAAC,MAEA,OAIAksB,QAAA,CACAyF,eACA,MAAAje,EAAA,CACAvE,MAAA,KAAAA,MACApG,OAAA,KAAAA,OACAqlB,IAAA,KAAA1b,SAGA,KAAA8d,eACA9c,EAAA0e,QAAA,KAAA5B,aACA9c,EAAAvE,MAAA,KAAAA,MACAuE,EAAA3K,OAAA,GAGA,KAAAwnB,cACA7c,EAAAuX,OAAA,KAAAsF,aAGA,KAAAG,OAAA,KACA,KAAAlD,SAAA,EAEAlD,MAAA,CACAvW,IAAA6Z,GAAA,uBACAvX,QAAA,CACA,kBAAA/b,OAAAgF,SACA,iBAAAhF,OAAAiF,QAEAmU,WAEAxZ,KAAA,EAAA1O,WACA,aAAA6J,EAAA,MAAAg9B,GAAA7mC,EACA,IAAA+U,EAAA,GAIA,GAFA,KAAAowB,QAAAt7B,EAAAtJ,QAAA,KAAAojB,MAGAvd,MAAAD,QAAA,KAAA4O,QAAA,KAAAiwB,cACA,KAAAA,cAAA,KAAAC,WACA,CACA,UAAA/B,KAAAr5B,EAAA,CACA,KAAAkL,KAAAtD,KAAA80B,KAAAxwB,KAAAmtB,EAAAntB,KAGA,KAAAhB,KAAAlU,KAAAqiC,GAIAnuB,EAAA,SAAAA,WAEA3O,MAAAD,QAAA,KAAA4O,OAAA,KAAAiwB,cACA,KAAAD,eAEAhwB,EAAAlL,EACA,KAAAo7B,YAAA,GAGA,OAAA4B,QAAA9xB,UAGArG,KAAA,EAAAm4B,QAAA9xB,WACA,KAAAgwB,YACA,KAAAG,OAAA2B,EAEA,KAAAlU,MAAAkU,EAEA,KAAA9xB,OAEAA,IAGApG,MAAAxJ,IACAC,QAAA3C,MAAA,sCAAA0C,KAGA2hC,QAAA,KACA,KAAA9E,SAAA,KAIA,qBACA,IACA,MAAAvC,EAAA,IAAAsC,GAAA,CACAjuB,SAAA,KAAAhF,OAAAgF,SACAC,OAAA,KAAAjF,OAAAiF,eAEA0rB,EAAAwC,eACA,MAAAjiC,EAAAy/B,EAAAkD,yBAAA,KAAAzb,SACA,GAAAlnB,EAAA,CACA,cAAAwjC,EAAA,KAAA1Q,EAAA,uBAAAiU,GAAA/mC,EACAQ,OAAA8K,OAAA,KAAAk4B,QAAA1Q,GACA,KAAAsS,aAAA5B,EACA,KAAA6B,iBAAA0B,GAEA,MAAAtkC,GACA2C,QAAA3C,MAAA,qCAAAA,KAIAukC,WACA,KAAAhC,aACA,KAAArhB,MAAA,KAAAA,MAAA,KAAAA,MAEA,KAAApG,UAIA0pB,eACA,YAAAjF,YAIA,KAAAmD,UAIA,KAAAJ,YACA,KAAAG,OAAA,QAAAnwB,KAAAxU,OAAA,KAAA2kC,OAEA,KAAAvS,MAAA,QAAA5d,KAAAxU,OAAA,KAAAoyB,SAIAuU,cAAAzH,GACAA,IAAA,KAAAsF,YACA,KAAAA,YAAA,MAEA,KAAAxnB,OAAA,EACA,KAAAwnB,YAAAtF,GAEA,KAAA0F,SAAA,GAGAgC,QAAA,MAAAC,IACA,KAAApC,aAAAoC,EACA,KAAAjC,SAAA,GAGAkC,cAAA,iBAAAd,IACA,KAAAX,eAAAW,EACA,KAAAZ,iBAAA,GAGA2B,iBAAA,WACA,KAAA3B,iBAAA,EACA,KAAAC,eAAA,MAGA2B,qBACA,MAAAxyB,EAAA,KAAA+wB,QACA/wB,IAEA,KAAA8wB,aAAA9wB,EAAAyyB,YAAAzyB,EAAA0yB,cAEAC,aACA,MAAA3yB,EAAA,KAAA+wB,QACA/wB,GAEAA,EAAA4yB,SAAA,CAAAC,MAAA,KAAAC,SAAA,YAEAC,cACA,MAAA/yB,EAAA,KAAA+wB,QACA/wB,GAEAA,EAAA4yB,SAAA,CAAAC,KAAA,KAAAC,SAAA,YAGAE,cAGA,GAFAC,IAAAC,SAAA,gCAYA,CACA,MAAAC,EAAA,KAAAnhB,IAAA9O,cAAA,cACAiwB,GACAA,EAAA3D,UAAAvsB,OAAA,mCAbA,CACA,MAAAkwB,EAAA,KAAAnhB,IAAA9O,cAAA,cACA,GAAAiwB,EAAA,CACAA,EAAA3D,UAAArxB,IAAA,+BAEAg1B,EAAAjF,iBAAA,eACA97B,QAAAghC,IACAA,EAAA5D,UAAArxB,IAAA,sBAYA0sB,UACAj+B,QAAAgC,IAAA,MAAAykC,eAAA,KAAAjC,iBAAAz3B,KAAA,KACA,KAAA64B,qBACA,KAAAQ,cACAziC,OAAAiwB,iBAAA,cACA,KAAAgS,qBACA,KAAAQ,mBAKAM,gBACA/iC,OAAAouB,oBAAA,cAAA6T,qBAGAe,WAAA,CACAC,eAAA,6BACAC,cAAA,mDACAC,YAAA,6BACAC,WAAA,6BACAC,YAAA,6BACAC,WAAA,6BACAC,cAAA,+BC/Ue,I,MAXC,aACd,ICTW,WAAa,IAAI7H,EAAI12B,KAAS22B,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAC2H,WAAW,CAAC,CAACzlC,KAAK,OAAO0lC,QAAQ,SAASxkC,MAAOy8B,EAAIrO,MAAQ,EAAGqW,WAAW,cAAc3H,YAAY,4BAA4B,CAAEL,EAAS,MAAEG,EAAG,IAAI,CAACE,YAAY,QAAQ,CAACF,EAAG,IAAI,CAACM,MAAM,CAAC,KAAO,WAAW,KAAOT,EAAIxsB,OAAS,YAAY,CAACwsB,EAAIW,GAAG,OAAOX,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAIxsB,OAAO,OAAOwsB,EAAIc,KAAKX,EAAGH,EAAIlyB,OAAOyF,cAAcE,cAAc,CAACw0B,IAAI,YAAYxH,MAAM,CAAC,OAAST,EAAIlyB,OAAO,OAASkyB,EAAIwC,QAAQ,YAAcxC,EAAIqE,iBAAiB,QAAUrE,EAAIoE,aAAa,eAAepE,EAAIrO,MAAM,KAAOqO,EAAIjsB,KAAK,eAAeisB,EAAI+D,YAAY,OAAS/D,EAAIzjB,QAAQ2rB,GAAG,CAAC,kBAAkBlI,EAAIkG,iBAAiB/F,EAAG,MAAM,CAACG,MAAMN,EAAIlyB,OAAOyF,cAAcG,gBAAgB,CAACysB,EAAG,mBAAmB,CAACG,MAAMN,EAAIlyB,OAAOyF,cAAcG,eAAe+sB,MAAM,CAAC,KAAO,cAAc,IAAM,QAAQT,EAAIa,GAAIb,EAAQ,MAAE,SAASuF,GAAQ,OAAOpF,EAAG,cAAc,CAACt8B,IAAI0hC,EAAOxwB,GAAGsrB,YAAY,eAAeI,MAAM,CAAC,OAAS8E,EAAO,aAAavF,EAAIlyB,OAAOyF,cAAcJ,YAAY+0B,GAAG,CAAC,cAAgBlI,EAAIqG,oBAAmB,IAAI,GAAIrG,EAAIiG,eAAgB9F,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,SAAS,CAACE,YAAY,kBAAkBI,MAAM,CAAC,SAAWT,EAAIgB,SAASkH,GAAG,CAAC,MAAQlI,EAAIgG,WAAW,CAAChG,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAIgB,QAAU,eAAiB,2BAA2B,WAAWhB,EAAIc,KAAKX,EAAG,YAAY,CAACM,MAAM,CAAC,OAAST,EAAI2E,gBAAgB,OAAS3E,EAAI4E,eAAe,UAAY5E,EAAIlyB,OAAOyF,cAAcJ,YAAY+0B,GAAG,CAAC,QAAUlI,EAAIsG,oBAAoBnG,EAAG,MAAM,CAACE,YAAY,UAAU,CAACL,EAAIW,GAAG,qCAAqCR,EAAG,IAAI,CAACM,MAAM,CAAC,KAAOT,EAAIyF,OAAO,OAAS,SAAS,IAAM,aAAa,CAACzF,EAAIW,GAAG,mBAAmB,KAC7qD,IDWpB,EACA,KACA,WACA,M,SEfwM,GCkE3L,CACft+B,KAAA,YAEAgI,MAAA,IACAuI,KACAsT,QAAA,CACAjkB,KAAA+I,OACA84B,UAAA,IAIA9kC,UACA,CACA+U,KAAA,GACA4d,MAAA,EACAhP,MAAA,EACApG,OAAA,EACA4rB,YAAA,GACAnH,SAAA,EACAoH,cAAA,KACAC,YAAA,EACAC,YAAA,KACAC,aAAA,MAIA1a,SAAA,CACAra,QACA,MAAA1F,EAAA,KAAAA,QAAA,GACA,OAAAA,EAAA6F,kBAAA7F,EAAA6F,iBAAAH,MAGA1F,EAAA6F,iBAAAH,MAFA,MAIAg1B,YACA,IAAAxZ,EAAA,KACAyZ,EAAA,KAKA,GAJAnkC,OAAAokC,YAAApkC,OAAAokC,WAAAC,WACAF,EAAAl0B,mBAAA,WAAAjQ,OAAAokC,WAAAC,SAAA3Z,yBACAA,EAAA1qB,OAAAokC,WAAAC,SAAA3Z,SAEA1qB,OAAAokC,aAAApkC,OAAAokC,WAAAzhC,UAAA3C,OAAAokC,WAAAzhC,QAAA47B,KACA,SAEA,MAAA+F,EAAAtkC,OAAAokC,WAAAzhC,QAAA47B,KAAAgG,IACAC,EAAAxkC,OAAAokC,WAAAzhC,QAAA47B,KAAAjB,IACAmH,EAAA,KAAAj7B,OAAAiF,OACAi2B,EAAA,KAAAl7B,OAAAgF,SACA6yB,EAAArhC,OAAAosB,SAAAiV,QAAA3W,EACA,SAAAia,eAAAL,SAAAE,YAAAC,cAAAC,YAAAz0B,mBAAAoxB,iBAAA8C,MAIA1I,MAAA,CACAoI,YAAAe,GAKA,GAJA,KAAAd,eACAtmC,aAAA,KAAAsmC,gBAGAc,EAAAp/B,OAGA,OAFA,KAAAyS,OAAA,OACA,KAAA4sB,iBAIA,KAAAf,cAAA5lC,WAAA,KACA,KAAA+Z,OAAA,EACA,KAAA4sB,kBACA,OAIAvK,UACA,KAAAuK,iBACA,KAAAC,8BAGA/B,gBACA,KAAAe,eACAtmC,aAAA,KAAAsmC,eAEA,KAAAiB,+BAGA3J,QAAA,CACAyJ,iBACA,MAAAjiB,EAAA,CACAvE,MAAA,KAAAA,MACApG,OAAA,KAAAA,OACAqlB,IAAA,KAAA1b,QACAojB,OAAA,SAGA,KAAAnB,YAAAr+B,SACAod,EAAAqiB,MAAA,KAAApB,YAAAr+B,QAGA,KAAAk3B,SAAA,EACAlD,MAAA,CACAvW,IAAA6Z,GAAA,yBACAvX,QAAA,CACA,kBAAA/b,OAAAgF,SACA,iBAAAhF,OAAAiF,QAEAmU,WAEAxZ,KAAA,EAAA1O,WACA,aAAA6J,EAAA,KAAA2gC,GAAAxqC,EACA,SAAAud,OACA,KAAAxI,KAAAlL,EAEA,KAAAkL,KAAA,SAAAA,QAAAlL,GAGA,KAAA8oB,MAAA6X,EAAA3D,QAEAC,QAAA,KACA,KAAA9E,SAAA,KAIAyI,oBACA,KAAAltB,QAAA,KAAAoG,MACA,KAAAwmB,kBAGAO,cACA,KAAArB,YAAA,KAAAA,WACA,KAAAA,aACA,KAAAC,YAAA,OAIAqB,oBACA,KAAArB,YAAA,8GAGAsB,cACA,KAAAzB,YAAA,GACA,KAAA5rB,OAAA,EACA,KAAA4sB,kBAGAC,6BACA,KAAAS,eAAAloC,IACA,yBAAAA,EAAA3C,KAAAiD,OACA,KAAAsmC,aAAA5mC,EAAA3C,KAAA8qC,SAGAxlC,OAAAiwB,iBAAA,eAAAsV,iBAGAR,8BACA,KAAAQ,gBACAvlC,OAAAouB,oBAAA,eAAAmX,mBCzMe,I,MAXC,aACd,ICTW,WAAa,IAAI7J,EAAI12B,KAAS22B,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAQD,EAAIlyB,OAAO6F,iBAA2B,WAAEwsB,EAAG,MAAM,CAACE,YAAY,8BAA8B,CAAEL,EAAS,MAAEG,EAAG,IAAI,CAACE,YAAY,QAAQ,CAACF,EAAG,IAAI,CAACM,MAAM,CAAC,KAAO,aAAa,KAAOT,EAAIxsB,OAAS,0BAA0B,CAACwsB,EAAIW,GAAG,OAAOX,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAIxsB,OAAO,OAAOwsB,EAAIc,KAAKX,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAACF,EAAG,QAAQ,CAAC2H,WAAW,CAAC,CAACzlC,KAAK,QAAQ0lC,QAAQ,UAAUxkC,MAAOy8B,EAAe,YAAEgI,WAAW,gBAAgB3H,YAAY,eAAeI,MAAM,CAAC,KAAO,OAAO,YAAc,2CAA2CsJ,SAAS,CAAC,MAAS/J,EAAe,aAAGkI,GAAG,CAAC,MAAQ,SAAS8B,GAAWA,EAAO7nC,OAAO8nC,YAAqBjK,EAAImI,YAAY6B,EAAO7nC,OAAOoB,WAAWy8B,EAAIlyB,OAAO6F,iBAAqC,qBAAEwsB,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,SAAS,CAACE,YAAY,iBAAiBI,MAAM,CAAC,KAAO,SAAS,gBAAgBT,EAAIqI,WAAW,gBAAgB,kBAAkB,aAAa,iDAAiDH,GAAG,CAAC,MAAQlI,EAAI0J,cAAc,CAAC1J,EAAIW,GAAG,wEAAwEX,EAAIc,KAAMd,EAAc,WAAEG,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,SAAS,CAACE,YAAY,kBAAkBI,MAAM,CAAC,GAAK,kBAAkB,IAAMT,EAAIwI,UAAU,MAAQ,MAAM,OAASxI,EAAIuI,aAAa,YAAc,IAAI,MAAQ,uCAAuCL,GAAG,CAAC,MAAQlI,EAAI2J,uBAAuB3J,EAAIc,SAAUd,EAAIjsB,KAAKxU,OAAS,EAAG4gC,EAAG,MAAM,CAACE,YAAY,kBAAkBL,EAAIa,GAAIb,EAAQ,MAAE,SAASkK,GAAU,OAAO/J,EAAG,MAAM,CAACt8B,IAAIqmC,EAASrB,IAAIxI,YAAY,iBAAiB,CAACF,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACL,EAAIW,GAAG,IAAIX,EAAIY,GAAGsJ,EAASrH,MAAM,OAAQqH,EAAc,MAAE/J,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACL,EAAImK,GAAG,GAAE,GAAMhK,EAAG,MAAM,CAACE,YAAY,eAAe,CAACL,EAAIW,GAAG,IAAIX,EAAIY,GAAGsJ,EAASE,MAAMvH,MAAM,SAAS7C,EAAIc,UAAS,GAAKd,EAAIgB,SAA+B,IAApBhB,EAAIjsB,KAAKxU,OAAkHygC,EAAIc,KAAxGX,EAAG,MAAM,CAACE,YAAY,gBAAgB,CAACL,EAAIW,GAAG,sDAAgEX,EAAW,QAAEG,EAAG,MAAM,CAACE,YAAY,WAAW,CAACL,EAAIW,GAAG,+BAA+BX,EAAIc,KAAMd,EAAIjsB,KAAKxU,OAASygC,EAAIrO,MAAOwO,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,SAAS,CAACE,YAAY,kBAAkBI,MAAM,CAAC,SAAWT,EAAIgB,SAASkH,GAAG,CAAC,MAAQlI,EAAIyJ,oBAAoB,CAACzJ,EAAIW,GAAG,IAAIX,EAAIY,GAAGZ,EAAIgB,QAAU,eAAiB,0BAA0B,WAAWhB,EAAIc,OAAOd,EAAIc,OACt7E,CAAC,WAAa,IAAiBb,EAAT32B,KAAgB42B,eAAmBC,EAAnC72B,KAA0C82B,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACE,YAAY,sBDWpK,EACA,KACA,WACA,M,SEXK,MAAMe,GAAa,mCACb6H,GAAyB,sCAEtBv5B,cACTA,GAAYA,EAAQoD,UAAapD,EAAQqD,QAS1CrD,EAAQiE,kBAAoBjE,EAAQiE,iBAAiBV,YCd5C,EAACvD,EAAU,GAAIkW,EAAO,sBAK5BykB,EAAkB36B,EAASkW,EAAMC,GAJlB,CACpBlS,iBAAkB,QDalB22B,CAAU56B,GAERA,EAAQ6D,eAAiB7D,EAAQ6D,cAAcN,YEjBtC,EAACvD,EAAU,GAAIkW,EAAO,oBAC5BykB,EAAkB36B,EAASkW,EAAM2kB,KFiBtCA,CAAQ76B,GAENA,EAAQsD,eAAiBtD,EAAQsD,cAAcC,YACjD,IAAI8tB,GAAQrxB,GAAS86B,QAfrBpmC,QAAQ3C,MACN,IAAIC,MACF,0E,cGXRrB,EAAOD,aAAUmC,G,cCAjBlC,EAAOD,aAAUmC,K","file":"widget-martan.var.min.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t};\n\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t0: 0\n \t};\n\n\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"widget-martan.\" + ({}[chunkId]||chunkId) + \".min.js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 = \"/assets/vendor/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonpwidgetMartan\"] = window[\"webpackJsonpwidgetMartan\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 25);\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","export const configProp = {\n config: {\n type: Object,\n default: () => ({\n store_id: null,\n web_id: null,\n widget_rating: {\n is_enabled: false,\n font_size: 15,\n star_color: null,\n display: null,\n search_page: true,\n theme: null\n },\n widget_review: {\n is_enabled: false,\n title: null,\n star_color: null,\n header_layout: null,\n reviews_layout: null\n },\n widget_questions: {\n is_enabled: false,\n title: null,\n enable_new_questions: false\n }\n })\n }\n}\n","module.exports = undefined;","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","// eslint-disable-next-line strict\nexport default null;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","export function lightenColor (hex, amount = 0.2) {\n hex = hex.replace(/^#/, '')\n if (hex.length === 3) {\n hex = hex\n .split('')\n .map((x) => x + x)\n .join('')\n }\n\n let r = parseInt(hex.substring(0, 2), 16)\n let g = parseInt(hex.substring(2, 4), 16)\n let b = parseInt(hex.substring(4, 6), 16)\n\n r = Math.min(255, Math.round(r + (255 - r) * amount))\n g = Math.min(255, Math.round(g + (255 - g) * amount))\n b = Math.min(255, Math.round(b + (255 - b) * amount))\n\n const toHex = (x) => x.toString(16).padStart(2, '0')\n return `#${toHex(r)}${toHex(g)}${toHex(b)}`\n}\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=style&index=0&id=2033b273&prod&lang=css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5ee28310\", content, true, {});","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=style&index=0&id=1f781a3f&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4042fd78\", content, true, {});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Questions.vue?vue&type=style&index=0&id=009bb4ce&prod&lang=scss&scoped=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"271f866a\", content, true, {});","export * from \"-!../../../../../node_modules/vue-style-loader/index.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=style&index=0&id=2033b273&prod&lang=css\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".martan-rating{align-items:center;display:flex;gap:4px}.martan-rating-text{color:#6c757d;font-size:12px;font-weight:600}.martan-rating--compact{align-items:center;display:flex;gap:6px}.martan-rating-compact{align-items:center;display:flex;gap:4px}.martan-rating-compact__star{flex-shrink:0}.martan-rating-compact__text{color:var(--gray-dark);font-size:12px;font-weight:600;white-space:nowrap}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","export * from \"-!../../../../../node_modules/vue-style-loader/index.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=style&index=0&id=1f781a3f&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".martan-reviews[data-v-1f781a3f]{color:#444}.martan-reviews .widget-header[data-v-1f781a3f]{align-items:center;display:flex;gap:1rem;justify-content:space-between}.martan-reviews .widget-header__score[data-v-1f781a3f]{max-width:500px;width:100%}.martan-reviews .widget-header__score-average[data-v-1f781a3f]{color:#444;font-size:1.25rem}.martan-reviews .list-expanded[data-v-1f781a3f]{display:flex;flex-direction:column;gap:1rem}.martan-reviews .list-grid[data-v-1f781a3f]{align-items:start;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);grid-template-rows:masonry;margin:0 auto;max-width:1200px}@media(max-width:768px){.martan-reviews .list-grid[data-v-1f781a3f]{gap:.75rem;grid-template-columns:1fr;grid-template-rows:masonry;max-width:100%}}@media(min-width:769px)and (max-width:1200px){.martan-reviews .list-grid[data-v-1f781a3f]{grid-template-columns:repeat(2,1fr);grid-template-rows:masonry;max-width:100%}}@media(min-width:1201px){.martan-reviews .list-grid[data-v-1f781a3f]{grid-template-columns:repeat(2,minmax(0,580px));grid-template-rows:masonry;justify-content:center}}@supports not (grid-template-rows:masonry){.martan-reviews .list-grid[data-v-1f781a3f]{align-content:flex-start;display:flex;flex-direction:column;flex-wrap:wrap;max-height:none}@media(min-width:769px){.martan-reviews .list-grid[data-v-1f781a3f]{align-content:flex-start;flex-direction:row}}}.martan-reviews .list-grid--masonry-fallback[data-v-1f781a3f]{-moz-column-count:1;column-count:1;-moz-column-gap:1rem;column-gap:1rem;display:block}@media(min-width:769px){.martan-reviews .list-grid--masonry-fallback[data-v-1f781a3f]{-moz-column-count:2;column-count:2}}@media(min-width:1201px){.martan-reviews .list-grid--masonry-fallback[data-v-1f781a3f]{-moz-column-count:2;column-count:2;margin:0 auto;max-width:1200px}}.martan-reviews .list-grid--masonry-fallback .masonry-item[data-v-1f781a3f]{-moz-column-break-inside:avoid;break-inside:avoid;display:inline-block;margin-bottom:1rem;width:100%}.martan-reviews .reviews-with-pictures[data-v-1f781a3f]{background-color:rgba(255,236,219,.102);border:1px solid rgba(255,236,219,.102);border-radius:.25rem;display:flex;flex-direction:column;font-size:80%;gap:.5rem;margin-top:1rem;padding:2rem;width:100%}.martan-reviews .reviews-with-pictures .list[data-v-1f781a3f]{-webkit-overflow-scrolling:touch;display:flex;flex-direction:row;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.martan-reviews .reviews-with-pictures .list[data-v-1f781a3f]::-webkit-scrollbar{display:none}.martan-reviews .reviews-with-pictures .list img[data-v-1f781a3f]{border-radius:.25rem;cursor:pointer;height:80px;-o-object-fit:cover;object-fit:cover;width:80px}.martan-reviews .credit[data-v-1f781a3f]{color:#a1a1aa;font-size:.75rem;line-height:1rem;margin-top:1rem;text-align:right}.martan-reviews .credit a[data-v-1f781a3f]{color:#0f172a!important}.martan-reviews .actions[data-v-1f781a3f]{display:flex;justify-content:center;margin-bottom:1rem;margin-top:1rem}.martan-reviews .review-list-enter-active[data-v-1f781a3f],.martan-reviews .review-list-leave-active[data-v-1f781a3f]{transition:all .3s ease}.martan-reviews .review-list-enter-from[data-v-1f781a3f]{opacity:0;transform:translateY(20px)}.martan-reviews .review-list-leave-to[data-v-1f781a3f]{opacity:0;transform:translateY(-20px)}.martan-reviews .review-list-move[data-v-1f781a3f]{transition:transform .3s ease}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","export * from \"-!../../../../../node_modules/vue-style-loader/index.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--2-2!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Questions.vue?vue&type=style&index=0&id=009bb4ce&prod&lang=scss&scoped=true\"","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".martan-questions[data-v-009bb4ce]{margin-bottom:3rem}.martan-questions .questions-search[data-v-009bb4ce]{margin-bottom:20px}.martan-questions .questions-search .search-input-group[data-v-009bb4ce]{max-width:500px}.martan-questions .questions-search .search-input-group .search-input[data-v-009bb4ce]{border:1px solid #e0e0e0;border-radius:8px 0 0 8px;border-right:none;flex:1;font-size:14px;outline:none;padding:12px 16px;transition:border-color .2s}.martan-questions .questions-search .search-input-group .search-input[data-v-009bb4ce]:focus{border-color:#69f}.martan-questions .questions-search .search-input-group .search-input[data-v-009bb4ce]::-moz-placeholder{color:#999}.martan-questions .questions-search .search-input-group .search-input[data-v-009bb4ce]::placeholder{color:#999}.martan-questions .questions-search .search-input-group .search-button[data-v-009bb4ce]{align-items:center;background-color:#69f;border:1px solid #69f;border-radius:0 8px 8px 0;color:#fff;cursor:pointer;display:flex;justify-content:center;padding:12px 16px;transition:background-color .2s}.martan-questions .questions-search .search-input-group .search-button[data-v-009bb4ce]:hover:not(:disabled){background-color:#58e}.martan-questions .questions-search .search-input-group .search-button[data-v-009bb4ce]:disabled{cursor:not-allowed;opacity:.6}.martan-questions .questions-list .question-item[data-v-009bb4ce]{border-bottom:1px solid #f0f0f0;margin-bottom:20px;padding-bottom:20px}.martan-questions .questions-list .question-item[data-v-009bb4ce]:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.martan-questions .questions-list .question-item .question-text[data-v-009bb4ce]{color:#333;font-size:.9375rem;font-weight:500;line-height:1.4;margin-bottom:12px}.martan-questions .questions-list .question-item .answer-container[data-v-009bb4ce]{align-items:flex-start;display:flex;margin-top:8px;position:relative}.martan-questions .questions-list .question-item .answer-container .subtle-hook[data-v-009bb4ce]{flex-shrink:0;height:12px;margin-right:16px;margin-top:6px;position:relative;width:12px}.martan-questions .questions-list .question-item .answer-container .subtle-hook .hook-l-shape[data-v-009bb4ce]{height:12px;position:relative;width:12px}.martan-questions .questions-list .question-item .answer-container .subtle-hook .hook-l-shape[data-v-009bb4ce]:before{background-color:#d0d0d0;content:\\\"\\\";height:8px;left:0;position:absolute;top:0;width:1px}.martan-questions .questions-list .question-item .answer-container .subtle-hook .hook-l-shape[data-v-009bb4ce]:after{background-color:#d0d0d0;content:\\\"\\\";height:1px;left:0;position:absolute;top:7px;width:6px}.martan-questions .questions-list .question-item .answer-container .answer-text[data-v-009bb4ce]{color:#666;flex:1;font-weight:300;line-height:1.4}.martan-questions .no-questions[data-v-009bb4ce]{color:#999;font-style:italic;padding:40px 20px;text-align:center}.martan-questions .loading[data-v-009bb4ce]{color:#666;padding:20px;text-align:center}.martan-questions .questions-footer .view-more-link[data-v-009bb4ce]{background:none;border:none;color:#69f;cursor:pointer;font-family:inherit;font-size:14px;padding:0;text-decoration:none}.martan-questions .questions-footer .view-more-link[data-v-009bb4ce]:hover{text-decoration:underline}.martan-questions .questions-footer .view-more-link[data-v-009bb4ce]:focus{border-radius:2px;outline:2px solid #69f;outline-offset:2px}.martan-questions .iframe-container[data-v-009bb4ce]{border:1px solid #e0e0e0;border-radius:4px;margin-top:20px;max-width:580px;overflow:hidden}.martan-questions .iframe-container .question-iframe[data-v-009bb4ce]{border:none;display:block;width:100%}.martan-questions .ask-question-section[data-v-009bb4ce]{margin-top:30px}.martan-questions .ask-question-section .ask-question-button[data-v-009bb4ce]{align-items:center;background-color:#e6f2ff;border:1px solid #b3d9ff;border-radius:8px;color:#69f;cursor:pointer;display:inline-flex;font-size:14px;gap:8px;padding:12px 20px;transition:all .2s}.martan-questions .ask-question-section .ask-question-button[data-v-009bb4ce]:hover{background-color:#d1e7ff;border-color:#9cf}.martan-questions .ask-question-section .ask-question-button svg[data-v-009bb4ce]{flex-shrink:0}.martan-questions .actions[data-v-009bb4ce]{display:flex;justify-content:center;margin-bottom:1rem;margin-top:1rem}\", \"\"]);\n// Exports\nmodule.exports = exports;\n","import Vue from 'vue'\n\n/**\n * Inicializa um widget Vue com IntersectionObserver\n * @param {Object} options - Opções de configuração\n * @param {string} elId - ID do elemento HTML\n * @param {Object} Component - Componente Vue a ser renderizado\n * @param {Object} defaultConfig - Configuração padrão do widget\n */\nexport default (options = {}, elId, Component, defaultConfig = {}) => {\n const $el = document.getElementById(elId)\n if (!options || !$el || !$el.dataset || !$el.dataset.product) {\n return\n }\n\n const { product } = $el.dataset\n\n const config = {\n store_id: null,\n web_id: null,\n widget_key: null,\n widget_rating: null,\n widget_review: null,\n widget_questions: null,\n ...defaultConfig,\n ...options\n }\n\n const init = () => {\n new Vue({\n render (h) {\n return h(Component, {\n props: {\n config,\n product\n }\n })\n }\n }).$mount($el)\n }\n\n if (typeof window.IntersectionObserver === 'function') {\n const obs = new window.IntersectionObserver(\n (entries, observer) => {\n entries.forEach(function (entry) {\n const { isIntersecting, intersectionRatio } = entry\n if (isIntersecting === true || intersectionRatio > 0) {\n init()\n observer.disconnect()\n }\n })\n },\n {\n rootMargin: '250px'\n }\n )\n\n obs.observe($el)\n }\n}\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.8\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Rating.vue?vue&type=script&lang=js\"","<template>\n <span class=\"martan-rating\" :class=\"{ 'martan-rating--compact': isCompact }\">\n <template v-if=\"!isCompact\">\n <svg v-for=\"(star, index) in stars\" :key=\"index\" xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler\"\n :class=\"getStarClass(star)\" :width=\"fontSizeNumber\" :height=\"fontSizeNumber\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\"\n :fill=\"getStarFill(star, index)\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\n :style=\"{ color: config.widget_rating.star_color }\">\n <defs v-if=\"star === 0.5\">\n <linearGradient :id=\"`gradient-${index}`\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"50%\" :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:1`\" />\n <stop offset=\"50%\" :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:0`\" />\n </linearGradient>\n </defs>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\"\n :fill=\"getStarFill(star, index)\" />\n </svg>\n\n <span class=\"martan-rating-text\" :style=\"{ color: 'var(--gray-dark)', fontSize: fontSize }\">{{ normalizeRating }} / 5</span>\n\n <span class=\"martan-rating-text\" :style=\"{ color: 'var(--gray)', fontSize: fontSize }\">({{ totalReviews }})</span>\n </template>\n\n <template v-else>\n <div class=\"martan-rating-compact\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon icon-tabler martan-rating-compact__star\" :width=\"fontSizeNumber\"\n :height=\"fontSizeNumber\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\" :style=\"{ color: config.widget_rating.star_color }\">\n <defs>\n <linearGradient :id=\"`compact-gradient-${_uid}`\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n <stop offset=\"0%\" :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:1`\" />\n <stop :offset=\"`${compactFillPercentage}%`\"\n :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:1`\" />\n <stop :offset=\"`${compactFillPercentage}%`\"\n :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:0`\" />\n <stop offset=\"100%\" :style=\"`stop-color:${config.widget_rating.star_color};stop-opacity:0`\" />\n </linearGradient>\n </defs>\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\"\n :fill=\"`url(#compact-gradient-${_uid})`\" />\n </svg>\n <span class=\"martan-rating-compact__text\" :style=\"{ fontSize: fontSize }\">{{ normalizeRating }} / 5</span>\n </div>\n </template>\n </span>\n</template>\n\n<script>\nimport { lightenColor } from '../../utils/lighten-color';\nimport { configProp } from '../../utils/configProps';\n\nexport default {\n name: 'Rating',\n\n props: {\n ...configProp,\n rating: {\n type: Number,\n default: 0\n },\n totalReviews: {\n type: Number,\n default: 0\n }\n },\n\n data() {\n return {\n stars: Array(5).fill(0)\n };\n },\n\n mounted() {\n this.updateStars();\n },\n\n computed: {\n isCompact() {\n return this.config.widget_rating.theme === 'compact';\n },\n fontSize() {\n const fontSize = this.config.widget_rating.font_size\n if (!fontSize) {\n return this.isCompact ? '16px' : '14px'\n }\n if (typeof fontSize === 'number') {\n return `${fontSize}px`\n }\n return fontSize\n },\n fontSizeNumber() {\n const fontSize = this.config.widget_rating.font_size\n if (!fontSize) {\n return this.isCompact ? 16 : 14\n }\n if (typeof fontSize === 'number') {\n return fontSize\n }\n const match = String(fontSize).match(/^(\\d+(?:\\.\\d+)?)/)\n return match ? parseFloat(match[1]) : (this.isCompact ? 16 : 14)\n },\n compactFillPercentage() {\n const rating = Math.max(0, Math.min(5, this.rating));\n\n if (rating <= 2) {\n return (rating / 2) * 25;\n } else if (rating <= 3) {\n return 25 + ((rating - 2) / 1.5) * 20;\n } else if (rating <= 4.5) {\n return 45 + ((rating - 3.5) / 1) * 25;\n } else {\n return 70 + ((rating - 4.5) / 0.5) * 30;\n }\n },\n starColor() {\n return this.config.widget_rating.star_color || '#ffc107';\n },\n ratingText() {\n return this.formatNumber(this.totalReviews);\n },\n colorClosest() {\n return lightenColor(this.config.widget_rating.star_color, 0.3);\n },\n normalizeRating() {\n if (Number.isInteger(this.rating)) {\n return this.rating;\n }\n return Number(this.rating.toFixed(1));\n }\n },\n\n methods: {\n lightenColor,\n formatNumber(num) {\n if (num >= 1000000) {\n return (num / 1000000).toFixed(1).replace(/\\.0$/, '') + 'M';\n } else if (num >= 1000) {\n return (num / 1000).toFixed(1).replace(/\\.0$/, '') + 'k';\n } else {\n return num.toString();\n }\n },\n\n updateStars() {\n const rating = Math.max(0, Math.min(5, this.rating));\n this.stars = Array(5).fill(0).map((_, index) => {\n const starPosition = index + 1;\n if (rating >= starPosition) {\n return 1;\n } else if (rating > index) {\n return 0.5;\n } else {\n return 0;\n }\n });\n },\n\n getStarClass(star) {\n if (star === 1) {\n return 'icon-tabler-star-filled';\n } else if (star === 0.5) {\n return 'icon-tabler-star-half';\n } else {\n return 'icon-tabler-star';\n }\n },\n\n getStarFill(star, index) {\n if (star === 1) {\n return this.starColor;\n } else if (star === 0.5) {\n return `url(#gradient-${index})`;\n } else {\n return 'none';\n }\n }\n },\n\n watch: {\n rating: 'updateStars'\n }\n};\n</script>\n\n<style lang=\"css\">\n.martan-rating {\n display: flex;\n gap: 4px;\n align-items: center;\n}\n\n.martan-rating-text {\n font-size: 12px;\n font-weight: 600;\n color: #6c757d;\n}\n\n.martan-rating--compact {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.martan-rating-compact {\n display: flex;\n align-items: center;\n gap: 4px;\n}\n\n.martan-rating-compact__star {\n flex-shrink: 0;\n}\n\n.martan-rating-compact__text {\n font-size: 12px;\n font-weight: 600;\n color: var(--gray-dark);\n white-space: nowrap;\n}\n</style>\n","import { render, staticRenderFns } from \"./Rating.vue?vue&type=template&id=2033b273\"\nimport script from \"./Rating.vue?vue&type=script&lang=js\"\nexport * from \"./Rating.vue?vue&type=script&lang=js\"\nimport style0 from \"./Rating.vue?vue&type=style&index=0&id=2033b273&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"martan-rating\",class:{ 'martan-rating--compact': _vm.isCompact }},[(!_vm.isCompact)?[_vm._l((_vm.stars),function(star,index){return _c('svg',{key:index,staticClass:\"icon icon-tabler\",class:_vm.getStarClass(star),style:({ color: _vm.config.widget_rating.star_color }),attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":_vm.fontSizeNumber,\"height\":_vm.fontSizeNumber,\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"2\",\"stroke\":\"currentColor\",\"fill\":_vm.getStarFill(star, index),\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[(star === 0.5)?_c('defs',[_c('linearGradient',{attrs:{\"id\":(\"gradient-\" + index),\"x1\":\"0%\",\"y1\":\"0%\",\"x2\":\"100%\",\"y2\":\"0%\"}},[_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:1\")),attrs:{\"offset\":\"50%\"}}),_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:0\")),attrs:{\"offset\":\"50%\"}})],1)],1):_vm._e(),_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\",\"fill\":_vm.getStarFill(star, index)}})])}),_c('span',{staticClass:\"martan-rating-text\",style:({ color: 'var(--gray-dark)', fontSize: _vm.fontSize })},[_vm._v(_vm._s(_vm.normalizeRating)+\" / 5\")]),_c('span',{staticClass:\"martan-rating-text\",style:({ color: 'var(--gray)', fontSize: _vm.fontSize })},[_vm._v(\"(\"+_vm._s(_vm.totalReviews)+\")\")])]:[_c('div',{staticClass:\"martan-rating-compact\"},[_c('svg',{staticClass:\"icon icon-tabler martan-rating-compact__star\",style:({ color: _vm.config.widget_rating.star_color }),attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":_vm.fontSizeNumber,\"height\":_vm.fontSizeNumber,\"viewBox\":\"0 0 24 24\",\"stroke-width\":\"2\",\"stroke\":\"currentColor\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}},[_c('defs',[_c('linearGradient',{attrs:{\"id\":(\"compact-gradient-\" + _vm._uid),\"x1\":\"0%\",\"y1\":\"0%\",\"x2\":\"100%\",\"y2\":\"0%\"}},[_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:1\")),attrs:{\"offset\":\"0%\"}}),_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:1\")),attrs:{\"offset\":(_vm.compactFillPercentage + \"%\")}}),_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:0\")),attrs:{\"offset\":(_vm.compactFillPercentage + \"%\")}}),_c('stop',{style:((\"stop-color:\" + (_vm.config.widget_rating.star_color) + \";stop-opacity:0\")),attrs:{\"offset\":\"100%\"}})],1)],1),_c('path',{attrs:{\"stroke\":\"none\",\"d\":\"M0 0h24v24H0z\",\"fill\":\"none\"}}),_c('path',{attrs:{\"d\":\"M8.243 7.34l-6.38 .925l-.113 .023a1 1 0 0 0 -.44 1.684l4.622 4.499l-1.09 6.355l-.013 .11a1 1 0 0 0 1.464 .944l5.706 -3l5.693 3l.1 .046a1 1 0 0 0 1.352 -1.1l-1.091 -6.355l4.624 -4.5l.078 -.085a1 1 0 0 0 -.633 -1.62l-6.38 -.926l-2.852 -5.78a1 1 0 0 0 -1.794 0l-2.853 5.78z\",\"fill\":(\"url(#compact-gradient-\" + _vm._uid + \")\")}})]),_c('span',{staticClass:\"martan-rating-compact__text\",style:({ fontSize: _vm.fontSize })},[_vm._v(_vm._s(_vm.normalizeRating)+\" / 5\")])])]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from 'axios'\nimport Vue from 'vue'\n\nimport RatingsComponent from './Rating.vue'\n\nimport { MARTAN_API } from '../..'\n\nclass Ratings {\n constructor (options) {\n this.list = []\n this.offset = 0\n this.loading = false\n this.options = options\n }\n\n async init () {\n try {\n await this.fetchRatings()\n await this.mounted()\n this.listenerForSearchPage()\n } catch (error) {\n console.error('@Martan/Ratings init error', error)\n }\n }\n\n async fetchRatings () {\n if (this.loading) {\n return Promise.resolve()\n }\n this.loading = true\n if (this.loadFromLocalStorage()) {\n this.loading = false\n return Promise.resolve()\n }\n const url = `${MARTAN_API}/api/v1/ratings.json?expand=metrics`\n return axios({\n url,\n headers: {\n 'X-Store-Id': this.options.store_id,\n 'X-Api-Key': this.options.web_id\n }\n })\n .then(({ data }) => {\n this.list = data.result || []\n return this.saveToLocalStorage({\n result: data.result,\n timestamp: Date.now()\n })\n })\n .catch((err) => {\n console.error('Ratings fetchRatings error', err)\n })\n }\n\n loadFromLocalStorage () {\n try {\n const fromLocalStorage = window.localStorage.getItem('martan_ratings')\n if (fromLocalStorage) {\n const data = JSON.parse(fromLocalStorage)\n if (\n data &&\n data.result &&\n data.timestamp &&\n Date.now() - data.timestamp < 1000 * 60 * 60 * 24\n ) {\n this.list = data.result\n return true\n } else {\n return false\n }\n }\n } catch (error) {\n console.error('Ratings loadFromLocalStorage error', error)\n return false\n }\n }\n\n saveToLocalStorage (data) {\n window.localStorage.setItem('martan_ratings', JSON.stringify(data))\n }\n\n getProductRatingFromList (sku) {\n if (!sku || !this.list || this.list.length === 0) {\n return null\n }\n\n return this.list.find((rating) => rating.sku === sku)\n }\n\n getClasses () {\n const classes = ['.product-card__rating', '.mt-review-average']\n if (this.options.widget_rating.custom_class) {\n classes.push(this.options.widget_rating.custom_class)\n }\n return classes\n }\n\n async mounted () {\n const classes = this.getClasses()\n const elements = document.querySelectorAll(classes.join(','))\n const promises = []\n Array.from(elements).forEach((element) => {\n promises.push(this.renderRating(element))\n })\n await Promise.all(promises).then(() => {\n this.listenerForNewRatings()\n })\n }\n\n async renderRating (element) {\n return new Promise((resolve) => {\n if (!element.dataset) return resolve()\n const product = this.getProductFromElement(element)\n if (!product) return resolve()\n\n const rating = this.getProductRatingFromList(product)\n if (\n (rating &&\n rating.total === 0 &&\n this.options.widget_rating.display === 'gt1') ||\n (!rating && this.options.widget_rating.display === 'gt1')\n ) {\n return resolve()\n }\n const $ratingEl = document.createElement('div')\n const options = this.options\n new Vue({\n render (h) {\n return h(RatingsComponent, {\n props: {\n rating: rating && rating.average ? rating.average : 0,\n totalReviews: rating && rating.total ? rating.total : 0,\n config: options\n }\n })\n }\n }).$mount(element)\n element.setAttribute('data-martan-rating-id', this.generateId())\n element.appendChild($ratingEl)\n return resolve()\n })\n }\n\n generateId (prefix) {\n return Math.random()\n .toString(36)\n .replace('0.', prefix || '')\n }\n\n listenerForNewRatings () {\n const options = {\n childList: true,\n attributes: false,\n subtree: false\n }\n\n const observer = new window.MutationObserver(\n this.callbackForNewRatings.bind(this)\n )\n observer.observe(document.body, options)\n }\n\n callbackForNewRatings (mutations, observer) {\n mutations.forEach((mutation) => {\n if (mutation.type === 'childList') {\n mutation.addedNodes.forEach((node) => {\n if (this.isMartanElement(node) && this.getProductFromElement(node)) {\n this.renderRating(node)\n }\n })\n }\n })\n }\n\n isMartanElement (element) {\n let isIn = false\n const classes = this.getClasses()\n if (element.classList.length) {\n element.classList.forEach((value) => {\n if (classes.includes(value)) {\n isIn = true\n }\n })\n }\n\n return isIn\n }\n\n getProductFromElement (element) {\n if (!element.dataset) return null\n return (\n element.dataset.martanProductId ||\n element.dataset.product ||\n element.dataset.sku ||\n element.dataset.martanProductSku ||\n null\n )\n }\n\n listenerForSearchPage () {\n const $searchEngine = document.getElementById('search-engine')\n if (!$searchEngine || !this.options.widget_rating.search_page) {\n return false\n }\n\n const callback = () => {\n searchEngineObserver.disconnect()\n const $retailRow = $searchEngine.querySelectorAll(\n '.search-engine__retail > .row'\n )[0]\n\n const rowObserver = new window.MutationObserver(() => {\n setTimeout(() => {\n this.mounted()\n }, 100)\n rowObserver.disconnect()\n })\n rowObserver.observe($retailRow, {\n childList: true,\n subtree: true\n })\n }\n\n const searchEngineObserver = new window.MutationObserver(callback)\n searchEngineObserver.observe($searchEngine, {\n attributes: true,\n childList: true\n })\n }\n}\n\nexport default Ratings\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Reviews.vue?vue&type=script&lang=js\"","<template>\n <div v-show=\"total > 0\" class=\"martan-reviews container\">\n <p class=\"lead\" v-if=\"title\">\n <a href=\"#reviews\" :name=\"title || 'reviews'\">#</a>\n {{ title }}\n </p>\n\n <component :is=\"config.widget_review.header_layout\" :config=\"config\" :rating=\"average\"\n :recommended=\"totalRecommended\" :average=\"averageTotal\" :total-rating=\"total\" @rating-selected=\"updateOrderBy\"\n :list=\"list\" :order-rating=\"orderRating\" :offset=\"offset\" />\n\n <div :class=\"config.widget_review.reviews_layout\">\n <transition-group name=\"review-list\" tag=\"div\" :class=\"config.widget_review.reviews_layout\">\n <review-card\n v-for=\"review in list\"\n :key=\"review.id\"\n :review=\"review\"\n :star-color=\"config.widget_review.star_color\"\n class=\"masonry-item\"\n @openQuickview=\"openQuickview\"\n />\n </transition-group>\n </div>\n\n <div class=\"actions\" v-if=\"showLoadMore()\">\n <div class=\"pagination\">\n <button class=\"btn btn-primary\" @click=\"loadMore\" :disabled=\"loading\">\n {{ loading ? \"Carregando..\" : \"Mostrar mais avaliações\" }}\n </button>\n </div>\n </div>\n\n <Quickview @onClose=\"onCloseQuickview\" :isOpen=\"isOpenQuickView\" :review=\"selectedReview\" :starColor=\"config.widget_review.star_color\" />\n\n <div class=\"credit\">\n Avaliações reais, auditadas por\n <a :href=\"getUrl\" target=\"_blank\" rel=\"noopener\">MARTAN.app</a>\n </div>\n </div>\n</template>\n\n<script>\nimport { MARTAN_API } from \"../..\";\n\nimport Ratings from \"../ratings\";\n\nimport { configProp } from \"../../utils/configProps\";\n\nexport default {\n name: \"Reviews\",\n\n props: {\n ...configProp,\n product: {\n type: String,\n required: true,\n }\n },\n\n data() {\n return {\n list: [],\n total: 0,\n limit: 4,\n offset: 0,\n\n loading: false,\n\n orderRating: null,\n orderReviews: null,\n\n $isSorting: false,\n $count: null,\n hasMore: false,\n\n averageTotal: 0,\n totalRecommended: null,\n average: {\n one: 0,\n two: 0,\n three: 0,\n four: 0,\n five: 0,\n },\n\n isOpenQuickView: false,\n selectedReview: null,\n isScrollable: false,\n\n $listEl: null,\n };\n },\n\n watch: {\n onlyWithPictures: function (newVal) {\n if (!this.$listEl && newVal.length > 0) {\n this.$listEl = document.querySelector(\".reviews-with-pictures\");\n }\n },\n orderRating: function (oldOrder, newOrder) {\n if (oldOrder !== newOrder) {\n this.list = [];\n this.fetchReviews();\n }\n },\n\n orderReviews: function (oldOrder, newOrder) {\n if (oldOrder !== newOrder) {\n this.list = [];\n this.fetchReviews();\n }\n },\n\n limit: function () {\n this.fetchReviews();\n },\n\n offset: function () {\n this.fetchReviews();\n },\n },\n\n computed: {\n i19basedOn$1Reviews: () => \"Baseado em $1 avaliações\",\n i19basedOn$1Review: () => \"Baseado em $1 avaliação\",\n i19noReview: () => \"Nenhuma avaliação\",\n onlyWithPictures() {\n return this.list.filter(\n (review) => review.pictures && review.pictures.length > 0\n );\n },\n getUrl() {\n const url = new URL(window.location.href);\n const ref = url.origin;\n return `https://www.martan.app/?ref=${ref}`;\n },\n title() {\n if (this.config.widget_review.title) {\n return this.config.widget_review.title;\n }\n return null;\n }\n },\n\n methods: {\n fetchReviews() {\n const params = {\n limit: this.limit,\n offset: this.offset,\n sku: this.product,\n };\n\n if (this.orderReviews) {\n params.orderBy = this.orderReviews;\n params.limit = this.limit;\n params.offset = 0;\n }\n\n if (this.orderRating) {\n params.rating = this.orderRating;\n }\n\n this.$count = null;\n this.loading = true;\n\n axios({\n url: MARTAN_API + \"/api/v1/reviews.json\",\n headers: {\n \"X-Store-Id\": this.config.store_id,\n \"X-Api-Key\": this.config.web_id,\n },\n params,\n })\n .then(({ data }) => {\n const { result, count } = data;\n let list = [];\n\n this.hasMore = result.length >= this.limit;\n \n if (\n (Array.isArray(this.list) && !this.orderReviews) ||\n (this.orderReviews && this.$isSorting)\n ) {\n for (const element of result) {\n const isIn = this.list.some((review) => review.id === element.id);\n\n if (!isIn) {\n this.list.push(element);\n }\n }\n\n list = [...this.list];\n } else if (\n (Array.isArray(this.list) && this.orderReviews) ||\n this.orderRating\n ) {\n list = result;\n this.$isSorting = false;\n }\n\n return { count, list };\n })\n\n .then(({ count, list }) => {\n if (this.orderRating) {\n this.$count = count;\n } else {\n this.total = count;\n }\n this.list = list;\n\n return list;\n })\n\n .catch((err) => {\n console.error(\"Failed to load resource from Martan\", err);\n })\n\n .finally(() => {\n this.loading = false;\n });\n },\n\n async fetchAverage() {\n try {\n const rating = new Ratings({\n store_id: this.config.store_id,\n web_id: this.config.web_id,\n })\n await rating.fetchRatings()\n const data = rating.getProductRatingFromList(this.product);\n if (data) {\n const { average, rate, recommended_percentage } = data;\n Object.assign(this.average, rate);\n this.averageTotal = average;\n this.totalRecommended = recommended_percentage;\n }\n } catch (error) {\n console.error('Failed to load average from Martan', error);\n }\n },\n\n loadMore() {\n if (this.orderReviews) {\n this.limit = this.limit + this.limit;\n } else {\n this.offset++;\n }\n },\n\n showLoadMore() {\n if (this.loading) {\n return false;\n }\n\n if (!this.hasMore) {\n return false;\n }\n\n if (this.orderRating) {\n return this.$count > 0 && this.list.length < this.$count;\n } else {\n return this.total > 0 && this.list.length < this.total;\n }\n },\n\n updateOrderBy(rating) {\n if (rating === this.orderRating) {\n this.orderRating = null;\n } else {\n this.offset = 0;\n this.orderRating = rating;\n }\n this.hasMore = true;\n },\n\n onSort({ order }) {\n this.orderReviews = order;\n this.hasMore = true;\n },\n\n openQuickview: function ({ review }) {\n this.selectedReview = review;\n this.isOpenQuickView = true;\n },\n\n onCloseQuickview: function () {\n this.isOpenQuickView = false;\n this.selectedReview = null;\n },\n\n checkScrollability() {\n const list = this.$listEl;\n if (!list) return;\n\n this.isScrollable = list.scrollWidth > list.clientWidth;\n },\n scrollLeft() {\n const list = this.$listEl;\n if (!list) return;\n\n list.scrollBy({ left: -1500, behavior: \"smooth\" });\n },\n scrollRight() {\n const list = this.$listEl;\n if (!list) return;\n\n list.scrollBy({ left: 1500, behavior: \"smooth\" });\n },\n\n initMasonry() {\n const supportsMasonry = CSS.supports('grid-template-rows', 'masonry');\n\n if (!supportsMasonry) {\n const gridContainer = this.$el.querySelector('.list-grid');\n if (gridContainer) {\n gridContainer.classList.add('list-grid--masonry-fallback');\n\n const cards = gridContainer.querySelectorAll('review-card');\n cards.forEach(card => {\n card.classList.add('masonry-item');\n });\n }\n } else {\n const gridContainer = this.$el.querySelector('.list-grid');\n if (gridContainer) {\n gridContainer.classList.remove('list-grid--masonry-fallback');\n }\n }\n },\n },\n\n mounted() {\n Promise.all([this.fetchAverage(), this.fetchReviews()]).then(() => {\n this.checkScrollability();\n this.initMasonry();\n window.addEventListener(\"resize\", () => {\n this.checkScrollability();\n this.initMasonry();\n });\n });\n },\n\n beforeDestroy() {\n window.removeEventListener(\"resize\", this.checkScrollability);\n },\n\n components: {\n ReviewCard: () => import(\"./components/ReviewCard.vue\"),\n Quickview: () => import(\"./components/Quickview.vue\"),\n Compact: () => import(\"./headers/Compact.vue\"),\n Center: () => import(\"./headers/Center.vue\"),\n Summary: () => import(\"./headers/Summary.vue\"),\n Padrao: () => import(\"./headers/Padrao.vue\"),\n Histogram: () => import(\"./headers/Histogram.vue\"),\n },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.martan-reviews {\n color: #444;\n .widget-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 1rem;\n\n &__score {\n max-width: 500px;\n width: 100%;\n }\n\n &__score-average {\n font-size: 1.25rem;\n color: #444;\n }\n }\n\n .list-expanded {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n\n .list-grid {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n grid-template-rows: masonry;\n gap: 1rem;\n max-width: 1200px;\n margin: 0 auto;\n align-items: start;\n\n @media (max-width: 768px) {\n grid-template-columns: 1fr;\n grid-template-rows: masonry;\n max-width: 100%;\n gap: 0.75rem;\n }\n\n @media (min-width: 769px) and (max-width: 1200px) {\n grid-template-columns: repeat(2, 1fr);\n grid-template-rows: masonry;\n max-width: 100%;\n }\n\n @media (min-width: 1201px) {\n grid-template-columns: repeat(2, minmax(0, 580px));\n grid-template-rows: masonry;\n justify-content: center;\n }\n\n @supports not (grid-template-rows: masonry) {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n max-height: none;\n align-content: flex-start;\n\n @media (min-width: 769px) {\n flex-direction: row;\n align-content: flex-start;\n }\n }\n }\n\n .list-grid--masonry-fallback {\n display: block;\n column-count: 1;\n column-gap: 1rem;\n\n @media (min-width: 769px) {\n column-count: 2;\n }\n\n @media (min-width: 1201px) {\n column-count: 2;\n max-width: 1200px;\n margin: 0 auto;\n }\n\n .masonry-item {\n break-inside: avoid;\n margin-bottom: 1rem;\n display: inline-block;\n width: 100%;\n }\n }\n\n .reviews-with-pictures {\n display: flex;\n gap: 0.5rem;\n flex-direction: column;\n background-color: rgba(255, 236, 219, 0.102);\n border: 1px solid rgba(255, 236, 219, 0.102);\n border-radius: 0.25rem;\n display: flex;\n font-size: 80%;\n margin-top: 1rem;\n padding: 2rem;\n width: 100%;\n\n .list {\n display: flex;\n gap: 1rem;\n flex-direction: row;\n overflow-x: auto;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n\n img {\n width: 80px;\n height: 80px;\n object-fit: cover;\n border-radius: 0.25rem;\n cursor: pointer;\n }\n }\n }\n\n .credit {\n margin-top: 1rem;\n font-size: 0.75rem;\n line-height: 1rem;\n text-align: right;\n color: rgb(161 161 170 / 1);\n\n a {\n color: rgb(15 23 42 / 1) !important;\n }\n }\n\n .actions {\n display: flex;\n justify-content: center;\n margin-top: 1rem;\n margin-bottom: 1rem;\n }\n\n .review-list-enter-active,\n .review-list-leave-active {\n transition: all 0.3s ease;\n }\n\n .review-list-enter-from {\n opacity: 0;\n transform: translateY(20px);\n }\n\n .review-list-leave-to {\n opacity: 0;\n transform: translateY(-20px);\n }\n\n .review-list-move {\n transition: transform 0.3s ease;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./Reviews.vue?vue&type=template&id=1f781a3f&scoped=true\"\nimport script from \"./Reviews.vue?vue&type=script&lang=js\"\nexport * from \"./Reviews.vue?vue&type=script&lang=js\"\nimport style0 from \"./Reviews.vue?vue&type=style&index=0&id=1f781a3f&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1f781a3f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.total > 0),expression:\"total > 0\"}],staticClass:\"martan-reviews container\"},[(_vm.title)?_c('p',{staticClass:\"lead\"},[_c('a',{attrs:{\"href\":\"#reviews\",\"name\":_vm.title || 'reviews'}},[_vm._v(\"#\")]),_vm._v(\" \"+_vm._s(_vm.title)+\" \")]):_vm._e(),_c(_vm.config.widget_review.header_layout,{tag:\"component\",attrs:{\"config\":_vm.config,\"rating\":_vm.average,\"recommended\":_vm.totalRecommended,\"average\":_vm.averageTotal,\"total-rating\":_vm.total,\"list\":_vm.list,\"order-rating\":_vm.orderRating,\"offset\":_vm.offset},on:{\"rating-selected\":_vm.updateOrderBy}}),_c('div',{class:_vm.config.widget_review.reviews_layout},[_c('transition-group',{class:_vm.config.widget_review.reviews_layout,attrs:{\"name\":\"review-list\",\"tag\":\"div\"}},_vm._l((_vm.list),function(review){return _c('review-card',{key:review.id,staticClass:\"masonry-item\",attrs:{\"review\":review,\"star-color\":_vm.config.widget_review.star_color},on:{\"openQuickview\":_vm.openQuickview}})}),1)],1),(_vm.showLoadMore())?_c('div',{staticClass:\"actions\"},[_c('div',{staticClass:\"pagination\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"disabled\":_vm.loading},on:{\"click\":_vm.loadMore}},[_vm._v(\" \"+_vm._s(_vm.loading ? \"Carregando..\" : \"Mostrar mais avaliações\")+\" \")])])]):_vm._e(),_c('Quickview',{attrs:{\"isOpen\":_vm.isOpenQuickView,\"review\":_vm.selectedReview,\"starColor\":_vm.config.widget_review.star_color},on:{\"onClose\":_vm.onCloseQuickview}}),_c('div',{staticClass:\"credit\"},[_vm._v(\" Avaliações reais, auditadas por \"),_c('a',{attrs:{\"href\":_vm.getUrl,\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(\"MARTAN.app\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Questions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Questions.vue?vue&type=script&lang=js\"","<template>\n <div class=\"martan-questions container\" v-if=\"config.widget_questions.is_enabled\">\n <p class=\"lead\" v-if=\"title\">\n <a href=\"#questions\" :name=\"title || 'Perguntas e respostas'\">#</a>\n {{ title }}\n </p>\n\n <div class=\"questions-search\">\n <div class=\"search-input-group\">\n <input type=\"text\" v-model=\"searchQuery\" placeholder=\"Busque uma pergunta ou palavra-chave...\"\n class=\"form-control\" />\n\n <div class=\"questions-footer\" v-if=\"config.widget_questions.enable_new_questions\">\n <button type=\"button\" class=\"view-more-link\" @click=\"askQuestion\" :aria-expanded=\"showIframe\"\n aria-controls=\"question-iframe\" aria-label=\"Abrir formulário para fazer uma nova pergunta\">\n Não encontrou a resposta para sua pergunta? Faça uma pergunta.\n </button>\n </div>\n\n <div v-if=\"showIframe\" class=\"iframe-container\">\n <iframe id=\"question-iframe\" :src=\"iframeUrl\" width=\"580\" :height=\"iframeHeight\" frameborder=\"0\"\n class=\"question-iframe\" title=\"Formulário para fazer nova pergunta\" @error=\"handleIframeError\">\n </iframe>\n </div>\n </div>\n </div>\n\n <div class=\"questions-list\" v-if=\"list.length > 0\">\n <div v-for=\"question in list\" :key=\"question._id\" class=\"question-item\">\n <div class=\"question-text\">\n {{ question.body }}\n </div>\n <div class=\"answer-container\" v-if=\"question.reply\">\n <div class=\"subtle-hook\">\n <div class=\"hook-l-shape\"></div>\n </div>\n <div class=\"answer-text\">\n {{ question.reply.body }}\n </div>\n </div>\n </div>\n </div>\n\n <div v-else-if=\"!loading && list.length === 0\" class=\"no-questions\">\n Nenhuma pergunta encontrada para este produto.\n </div>\n\n <div v-if=\"loading\" class=\"loading\">\n Carregando perguntas...\n </div>\n\n <div class=\"actions\" v-if=\"list.length < total\">\n <div class=\"pagination\">\n <button class=\"btn btn-primary\" @click=\"loadMoreQuestions\" :disabled=\"loading\">\n {{ loading ? \"Carregando..\" : \"Mostrar mais perguntas\" }}\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { MARTAN_API, MARTAN_QUESTIONS_WEBUI } from \"../..\";\n\nimport { configProp } from \"../../utils/configProps\";\n\nexport default {\n name: \"Questions\",\n\n props: {\n ...configProp,\n product: {\n type: String,\n required: true,\n }\n },\n\n data() {\n return {\n list: [],\n total: 0,\n limit: 4,\n offset: 0,\n searchQuery: '',\n loading: false,\n searchTimeout: null,\n showIframe: false,\n iframeError: null,\n iframeHeight: 215,\n };\n },\n\n computed: {\n title() {\n const config = this.config || {};\n if (!config.widget_questions || !config.widget_questions.title) {\n return null;\n }\n return config.widget_questions.title;\n },\n iframeUrl() {\n let domain = null;\n let stylesheet = null;\n if (window.storefront && window.storefront.settings) {\n stylesheet = encodeURIComponent(`https://${window.storefront.settings.domain}/storefront.css`)\n domain = window.storefront.settings.domain;\n }\n if (!window.storefront || !window.storefront.context || !window.storefront.context.body) {\n return '';\n }\n const productID = window.storefront.context.body._id;\n const productSKU = window.storefront.context.body.sku;\n const webId = this.config.web_id;\n const storeId = this.config.store_id;\n const origin = window.location.origin || domain;\n return `${MARTAN_QUESTIONS_WEBUI}/?product=${productID}&sku=${productSKU}&web_id=${webId}&store_id=${storeId}&origin=${encodeURIComponent(origin)}&stylesheet=${stylesheet}`;\n }\n },\n\n watch: {\n searchQuery(newValue) {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n\n if (!newValue.trim()) {\n this.offset = 0;\n this.fetchQuestions();\n return;\n }\n\n this.searchTimeout = setTimeout(() => {\n this.offset = 0;\n this.fetchQuestions();\n }, 500);\n }\n },\n\n mounted() {\n this.fetchQuestions();\n this.setupIframeMessageListener();\n },\n\n beforeDestroy() {\n if (this.searchTimeout) {\n clearTimeout(this.searchTimeout);\n }\n this.removeIframeMessageListener();\n },\n\n methods: {\n fetchQuestions() {\n const params = {\n limit: this.limit,\n offset: this.offset,\n sku: this.product,\n expand: 'reply',\n };\n\n if (this.searchQuery.trim()) {\n params.terms = this.searchQuery.trim();\n }\n\n this.loading = true;\n axios({\n url: MARTAN_API + \"/api/v1/questions.json\",\n headers: {\n \"X-Store-Id\": this.config.store_id,\n \"X-Api-Key\": this.config.web_id,\n },\n params,\n })\n .then(({ data }) => {\n const { result, meta } = data;\n if (this.offset === 0) {\n this.list = result;\n } else {\n this.list = [...this.list, ...result];\n }\n\n this.total = meta.count;\n })\n .finally(() => {\n this.loading = false;\n });\n },\n\n loadMoreQuestions() {\n this.offset += this.limit;\n this.fetchQuestions();\n },\n\n askQuestion() {\n this.showIframe = !this.showIframe;\n if (this.showIframe) {\n this.iframeError = null;\n }\n },\n\n handleIframeError() {\n this.iframeError = 'Erro ao carregar o iframe. Verifique se o servidor está rodando e se não há restrições de X-Frame-Options.';\n },\n\n clearSearch() {\n this.searchQuery = '';\n this.offset = 0;\n this.fetchQuestions();\n },\n\n setupIframeMessageListener() {\n this.messageHandler = (event) => {\n if (event.data.type === 'iframe_height_change') {\n this.iframeHeight = event.data.height;\n }\n };\n window.addEventListener('message', this.messageHandler);\n },\n\n removeIframeMessageListener() {\n if (this.messageHandler) {\n window.removeEventListener('message', this.messageHandler);\n }\n }\n }\n};\n</script>\n\n<style lang=\"scss\" scoped>\n.martan-questions {\n margin-bottom: 3rem;\n\n .questions-search {\n margin-bottom: 20px;\n\n .search-input-group {\n max-width: 500px;\n\n .search-input {\n flex: 1;\n padding: 12px 16px;\n border: 1px solid #e0e0e0;\n border-radius: 8px 0 0 8px;\n border-right: none;\n font-size: 14px;\n outline: none;\n transition: border-color 0.2s;\n\n &:focus {\n border-color: #6699ff;\n }\n\n &::placeholder {\n color: #999;\n }\n }\n\n .search-button {\n padding: 12px 16px;\n background-color: #6699ff;\n border: 1px solid #6699ff;\n border-radius: 0 8px 8px 0;\n color: white;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: background-color 0.2s;\n\n &:hover:not(:disabled) {\n background-color: #5588ee;\n }\n\n &:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n }\n }\n }\n\n .questions-list {\n .question-item {\n margin-bottom: 20px;\n padding-bottom: 20px;\n border-bottom: 1px solid #f0f0f0;\n\n &:last-child {\n border-bottom: none;\n margin-bottom: 0;\n padding-bottom: 0;\n }\n\n .question-text {\n color: #333;\n font-weight: 500;\n line-height: 1.4;\n margin-bottom: 12px;\n font-size: .9375rem;\n }\n\n .answer-container {\n position: relative;\n display: flex;\n align-items: flex-start;\n margin-top: 8px;\n\n .subtle-hook {\n position: relative;\n margin-right: 16px;\n margin-top: 6px;\n flex-shrink: 0;\n width: 12px;\n height: 12px;\n\n .hook-l-shape {\n position: relative;\n width: 12px;\n height: 12px;\n\n &::before {\n content: '';\n position: absolute;\n left: 0;\n top: 0;\n width: 1px;\n height: 8px;\n background-color: #d0d0d0;\n }\n\n &::after {\n content: '';\n position: absolute;\n left: 0;\n top: 7px;\n width: 6px;\n height: 1px;\n background-color: #d0d0d0;\n }\n }\n }\n\n .answer-text {\n color: #666;\n line-height: 1.4;\n flex: 1;\n font-weight: 300;\n }\n }\n }\n }\n\n .no-questions {\n text-align: center;\n color: #999;\n padding: 40px 20px;\n font-style: italic;\n }\n\n .loading {\n text-align: center;\n color: #666;\n padding: 20px;\n }\n\n .questions-footer {\n .view-more-link {\n background: none;\n border: none;\n color: #6699ff;\n text-decoration: none;\n font-size: 14px;\n cursor: pointer;\n padding: 0;\n font-family: inherit;\n\n &:hover {\n text-decoration: underline;\n }\n\n &:focus {\n outline: 2px solid #6699ff;\n outline-offset: 2px;\n border-radius: 2px;\n }\n }\n }\n\n .iframe-container {\n margin-top: 20px;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n overflow: hidden;\n max-width: 580px;\n\n .question-iframe {\n width: 100%;\n border: none;\n display: block;\n }\n }\n\n .ask-question-section {\n margin-top: 30px;\n\n .ask-question-button {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n padding: 12px 20px;\n background-color: #e6f2ff;\n border: 1px solid #b3d9ff;\n border-radius: 8px;\n color: #6699ff;\n font-size: 14px;\n cursor: pointer;\n transition: all 0.2s;\n\n &:hover {\n background-color: #d1e7ff;\n border-color: #99ccff;\n }\n\n svg {\n flex-shrink: 0;\n }\n }\n }\n\n .actions {\n display: flex;\n justify-content: center;\n margin-top: 1rem;\n margin-bottom: 1rem;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./Questions.vue?vue&type=template&id=009bb4ce&scoped=true\"\nimport script from \"./Questions.vue?vue&type=script&lang=js\"\nexport * from \"./Questions.vue?vue&type=script&lang=js\"\nimport style0 from \"./Questions.vue?vue&type=style&index=0&id=009bb4ce&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"009bb4ce\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.config.widget_questions.is_enabled)?_c('div',{staticClass:\"martan-questions container\"},[(_vm.title)?_c('p',{staticClass:\"lead\"},[_c('a',{attrs:{\"href\":\"#questions\",\"name\":_vm.title || 'Perguntas e respostas'}},[_vm._v(\"#\")]),_vm._v(\" \"+_vm._s(_vm.title)+\" \")]):_vm._e(),_c('div',{staticClass:\"questions-search\"},[_c('div',{staticClass:\"search-input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchQuery),expression:\"searchQuery\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"placeholder\":\"Busque uma pergunta ou palavra-chave...\"},domProps:{\"value\":(_vm.searchQuery)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.searchQuery=$event.target.value}}}),(_vm.config.widget_questions.enable_new_questions)?_c('div',{staticClass:\"questions-footer\"},[_c('button',{staticClass:\"view-more-link\",attrs:{\"type\":\"button\",\"aria-expanded\":_vm.showIframe,\"aria-controls\":\"question-iframe\",\"aria-label\":\"Abrir formulário para fazer uma nova pergunta\"},on:{\"click\":_vm.askQuestion}},[_vm._v(\" Não encontrou a resposta para sua pergunta? Faça uma pergunta. \")])]):_vm._e(),(_vm.showIframe)?_c('div',{staticClass:\"iframe-container\"},[_c('iframe',{staticClass:\"question-iframe\",attrs:{\"id\":\"question-iframe\",\"src\":_vm.iframeUrl,\"width\":\"580\",\"height\":_vm.iframeHeight,\"frameborder\":\"0\",\"title\":\"Formulário para fazer nova pergunta\"},on:{\"error\":_vm.handleIframeError}})]):_vm._e()])]),(_vm.list.length > 0)?_c('div',{staticClass:\"questions-list\"},_vm._l((_vm.list),function(question){return _c('div',{key:question._id,staticClass:\"question-item\"},[_c('div',{staticClass:\"question-text\"},[_vm._v(\" \"+_vm._s(question.body)+\" \")]),(question.reply)?_c('div',{staticClass:\"answer-container\"},[_vm._m(0,true),_c('div',{staticClass:\"answer-text\"},[_vm._v(\" \"+_vm._s(question.reply.body)+\" \")])]):_vm._e()])}),0):(!_vm.loading && _vm.list.length === 0)?_c('div',{staticClass:\"no-questions\"},[_vm._v(\" Nenhuma pergunta encontrada para este produto. \")]):_vm._e(),(_vm.loading)?_c('div',{staticClass:\"loading\"},[_vm._v(\" Carregando perguntas... \")]):_vm._e(),(_vm.list.length < _vm.total)?_c('div',{staticClass:\"actions\"},[_c('div',{staticClass:\"pagination\"},[_c('button',{staticClass:\"btn btn-primary\",attrs:{\"disabled\":_vm.loading},on:{\"click\":_vm.loadMoreQuestions}},[_vm._v(\" \"+_vm._s(_vm.loading ? \"Carregando..\" : \"Mostrar mais perguntas\")+\" \")])])]):_vm._e()]):_vm._e()}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"subtle-hook\"},[_c('div',{staticClass:\"hook-l-shape\"})])}]\n\nexport { render, staticRenderFns }","import Reviews from './widgets/reviews'\nimport Questions from './widgets/questions'\nimport Ratings from './widgets/ratings'\n\nexport const MARTAN_API = 'https://widgets.appmartan.com.br'\nexport const MARTAN_QUESTIONS_WEBUI = 'https://create-questions.martan.app'\n\nexport default (options) => {\n if (!options || !options.store_id || !options.web_id) {\n console.error(\n new Error(\n \"Can't setup Martan widget without `martanStoreId` and `martanWebId`\"\n )\n )\n\n return\n }\n if (options.widget_questions && options.widget_questions.is_enabled) {\n Questions(options)\n }\n if (options.widget_review && options.widget_review.is_enabled) {\n Reviews(options)\n }\n if (options.widget_rating && options.widget_rating.is_enabled) {\n new Ratings(options).init()\n }\n}\n","import widgetInitializer from '../../utils/widget-initializer'\nimport Component from './Questions.vue'\n\nexport default (options = {}, elId = 'questions_widget') => {\n const defaultConfig = {\n widget_questions: null\n }\n\n return widgetInitializer(options, elId, Component, defaultConfig)\n}\n","import widgetInitializer from '../../utils/widget-initializer'\nimport Reviews from './Reviews.vue'\n\nexport default (options = {}, elId = 'reviews_widget') => {\n return widgetInitializer(options, elId, Reviews)\n}\n","module.exports = undefined;","module.exports = undefined;"],"sourceRoot":""}