forked from AkkomaGang/akkoma
1 line
No EOL
330 KiB
Text
1 line
No EOL
330 KiB
Text
{"version":3,"sources":["webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/utils.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/utils.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/defaults.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/defaults.js","webpack:///./node_modules/file-type/index.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/core/createError.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/check-types/src/check-types.js","webpack:///./node_modules/resolve-url/resolve-url.js","webpack:///./node_modules/tesseract.js/src/browser/index.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/core/createError.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/tesseract.js/src/common/types.js","webpack:///./node_modules/tesseract.js-utils/src/index.browser.js","webpack:///./node_modules/tesseract.js-utils/src/common/browser/cache.js","webpack:///./node_modules/idb-keyval/dist/idb-keyval.mjs","webpack:///./node_modules/tesseract.js-utils/src/loadLang.js","webpack:///./node_modules/tesseract.js-utils/node_modules/is-url/index.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/index.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/axios.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/core/settle.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/tesseract.js-utils/node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/tesseract.js-utils/src/common/browser/gunzip.js","webpack:///./node_modules/zlibjs/bin/node-zlib.js","webpack:///./node_modules/tesseract.js-utils/src/readImage.js","webpack:///./node_modules/bmp-js/index.js","webpack:///./node_modules/bmp-js/lib/encoder.js","webpack:///./node_modules/bmp-js/lib/decoder.js","webpack:///./node_modules/tesseract.js/src/common/TesseractWorker.js","webpack:///./node_modules/tesseract.js/node_modules/axios/index.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/axios.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/core/settle.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/tesseract.js/node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/tesseract.js/src/browser/b64toU8Array.js","webpack:///./node_modules/tesseract.js/src/common/options.js","webpack:///./node_modules/tesseract.js/src/common/circularize.js","webpack:///./node_modules/tesseract.js/src/common/TesseractJob.js","webpack:///./node_modules/tesseract.js/src/index.js"],"names":["bind","isBuffer","toString","Object","prototype","isArray","val","call","isObject","isFunction","forEach","obj","fn","i","l","length","key","hasOwnProperty","module","exports","isArrayBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isUndefined","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","result","assignValue","arguments","extend","a","b","thisArg","trim","str","replace","utils","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","value","adapter","defaults","XMLHttpRequest","process","transformRequest","data","JSON","stringify","transformResponse","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","method","toBytes","s","concat","map","c","charCodeAt","xpiZipFilename","oxmlContentTypes","oxmlRels","readUInt64LE","buf","offset","n","mul","fileType","input","Uint8Array","Buffer","TypeError","check","header","options","assign","mask","checkString","ext","mime","findNextZipHeaderIndex","arr","startAt","findIndex","el","zipHeaderIndex","oxmlFound","type","sliced","subarray","idPos","docTypePos","findDocType","every","_offset","objectSize","start","default","defineProperty","stream","readableStream","Promise","resolve","reject","eval","once","pass","PassThrough","chunk","read","minimumBytes","error","unshift","pipeline","args","Array","apply","constructor","settle","buildURL","parseHeaders","isURLSameOrigin","createError","config","requestData","requestHeaders","request","auth","username","password","Authorization","btoa","open","toUpperCase","url","params","paramsSerializer","onreadystatechange","readyState","responseURL","indexOf","responseHeaders","getAllResponseHeaders","response","responseType","responseText","statusText","onerror","ontimeout","cookies","xsrfValue","withCredentials","undefined","toLowerCase","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","then","cancel","abort","send","enhanceError","message","code","Error","__CANCEL__","Cancel","this","globals","strings","messages","predicates","functions","assert","not","maybe","collections","slice","neginf","posinf","haveSymbols","assigned","number","integer","greater","lhs","rhs","less","greaterOrEqual","lessOrEqual","string","nonEmptyString","object","instanceStrict","like","archetype","name","array","arrayLike","mapComplex","keys","predicate","m","testArray","testObject","mixin","target","source","assertModifier","defaultMessage","assertPredicate","argCount","ErrorType","assertImpl","notModifier","modifiedPredicate","notImpl","ofModifier","collection","coerceCollection","item","ignore","createModifiedPredicates","modifier","createModifiedFunctions","shift","pop","configurable","enumerable","writable","createModifiedModifier","modified","createOfModifiers","base","of","v","o","t","al","d","f","iterator","iteration","Symbol","values","next","done","x","y","substring","regex","match","Date","getTime","hasLength","index","mapSimple","all","any","Number","NEGATIVE_INFINITY","POSITIVE_INFINITY","exportFunctions","numUrls","createElement","href","head","getElementsByTagName","insertBefore","firstChild","resolved","removeChild","_extends2","_interopRequireDefault","resolveURL","axios","b64toU8Array","defaultOptions","version","readFromBlobOrFile","blob","res","fileReader","FileReader","onload","readAsArrayBuffer","workerPath","env","TESS_ENV","Math","random","corePath","WebAssembly","spawnWorker","instance","_ref","worker","workerBlobURL","Blob","URL","Worker","createObjectURL","onmessage","_ref2","jobId","startsWith","recv","path","msSaveBlob","link","download","setAttribute","style","visibility","body","appendChild","click","downloadFile","terminateWorker","terminate","sendPacket","iPacket","packet","loadImage","image","test","split","get","resp","HTMLElement","tagName","src","poster","toBlob","File","payload","img","from","postMessage","OEM","TESSERACT_ONLY","LSTM_ONLY","TESSERACT_LSTM_COMBINED","DEFAULT","PSM","OSD_ONLY","AUTO_OSD","AUTO_ONLY","AUTO","SINGLE_COLUMN","SINGLE_BLOCK_VERT_TEXT","SINGLE_BLOCK","SINGLE_LINE","SINGLE_WORD","SINGLE_CHAR","SPARSE_TEXT","SPARSE_TEXT_OSD","RAW_LINE","cache","loadLang","gunzip","readImage","_require","set","del","readCache","writeCache","deleteCache","checkCache","store","Store","dbName","storeName","_dbp","openreq","indexedDB","onsuccess","onupgradeneeded","createObjectStore","_withIDBStore","callback","_this","db","transaction","oncomplete","onabort","objectStore","getDefaultStore","req","put","delete","clear","openKeyCursor","openCursor","push","continue","_objectWithoutPropertiesLoose2","isURL","modules","_ref4","langs","langPath","cachePath","cacheMethod","_ref2$gzip","gzip","lang","langCode","handleTraineddata","doHandleLang","TessModule","dataPath","FS","mkdir","err","writeFile","includes","handleLang","catch","iLangPath","_ref3","loadAndGunzipFile","protocolAndDomainRE","everythingAfterProtocol","localhostDomainRE","nonLocalhostDomainRE","Axios","createInstance","defaultConfig","context","create","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","normalizedName","encode","encodeURIComponent","serializedParams","parts","toISOString","join","ignoreDuplicateOf","parsed","line","substr","originURL","msie","userAgent","urlParsingNode","protocol","host","search","hash","hostname","port","pathname","charAt","location","requestURL","write","expires","domain","secure","cookie","toGMTString","RegExp","decodeURIComponent","remove","now","handlers","use","eject","id","h","transformData","isAbsoluteURL","combineURLs","throwIfCancellationRequested","throwIfRequested","baseURL","reason","fns","relativeURL","executor","resolvePromise","token","gunzipSync","q","B","Uint16Array","Uint32Array","DataView","G","k","g","I","finish","L","aa","ba","R","ca","ha","S","ia","ja","ka","T","r","p","na","oa","F","lazy","compressionType","outputBuffer","outputIndex","getParent","U","pa","NONE","X","qa","va","N","w","C","u","ra","M","z","Y","da","Fa","ea","Ga","la","Ha","Z","ma","E","Ia","D","qb","ta","ua","sa","O","A","fa","H","Ja","Ka","K","J","P","Q","Na","ga","wa","Oa","Pa","Qa","Ra","La","Ma","xa","ya","za","Aa","Ba","flags","filename","comment","deflateOptions","fname","Ca","fcomment","Da","fhcrc","Ea","Sa","byteLength","V","j","Ta","bufferSize","bufferType","resize","Ua","W","Va","Wa","Xa","Ya","$","ib","Za","$a","ab","bb","cb","eb","fb","gb","hb","kb","lb","jb","mb","nb","ob","verify","pb","String","fromCharCode","rb","sb","ub","Bb","wb","noBuffer","yb","Ab","LOG2E","log","deflate","nextTick","deflateSync","inflate","inflateSync","gzipSync","bmp","iBuf","yres","bytesPerPixel","pix","bmpBuf","decode","_malloc","BYTES_PER_ELEMENT","HEAPU8","width","height","ptr","_pixReadMem","getValue","setValue","_Array$fill$map","fill","idx","BmpEncoder","imgData","extraBytes","rgbSize","headerInfoSize","flag","reserved","fileSize","planes","bitPP","compress","hr","vr","colors","importantColors","tempBuffer","pos","writeUInt32LE","writeInt32LE","writeUInt16LE","rowBytes","fillOffset","quality","BmpDecoder","is_with_alpha","bottom_up","parseHeader","parseRGBA","readUInt32LE","headerSize","readInt32LE","readUInt16LE","rawSize","len","palette","blue","readUInt8","green","red","quad","bitn","bit1","xlen","ceil","mode","rgb","bit4","setPixelData","rgbIndex","lines","low_nibble","before","after","bit8","bit15","dif_w","_1_5","parseInt","alpha","bit16","maskRed","maskGreen","maskBlue","mask0","ns","bit24","bit32","getData","bmpData","_extends3","circularize","TesseractJob","TesseractWorker","_currentJob","_queue","_proto","recognize","_sendJob","detect","handle","action","console","warn","dequeue","_this2","_delay","job","_this3","null","atob","defaultParams","tessedit_ocr_engine_mode","tessedit_pageseg_mode","tessedit_char_whiltelist","tessjs_create_pdf","tessjs_create_hocr","tessjs_create_tsv","tessjs_create_box","tessjs_create_unlv","tessjs_create_osd","tessjs_textonly_pdf","tessjs_pdf_name","tessjs_pdf_title","tessjs_pdf_auto_download","tessjs_pdf_bin","tessjs_image_rectangle_left","tessjs_image_rectangle_top","tessjs_image_rectangle_width","tessjs_image_rectangle_height","iPage","page","paragraphs","words","symbols","blocks","iBlock","block","iPara","para","iLine","paragraph","iWord","word","iSym","sym","jobCounter","_worker","_resolve","_reject","_progress","_finally","rej","_result","progress","finally","runFinallyCbs","ret","types"],"mappings":"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","file":"tesseract.js","sourcesContent":["'use strict';\n\nvar bind = require('./helpers/bind');\n\nvar isBuffer = require('is-buffer');\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof 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 * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\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 */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\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\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\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 (var 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 for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\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 * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\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 * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};","'use strict';\n\nvar bind = require('./helpers/bind');\n\nvar isBuffer = require('is-buffer');\n/*global toString:true*/\n// utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof 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 * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\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 */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\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\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\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 (var 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 for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\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 * @returns {Object} Result of all merge properties\n */\n\n\nfunction merge()\n/* obj1, obj2, obj3, ... */\n{\n var result = {};\n\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\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 * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\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 xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) {\n /* Ignore */\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 xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nvar toBytes = function toBytes(s) {\n return [].concat(s).map(function (c) {\n return c.charCodeAt(0);\n });\n};\n\nvar xpiZipFilename = toBytes('META-INF/mozilla.rsa');\nvar oxmlContentTypes = toBytes('[Content_Types].xml');\nvar oxmlRels = toBytes('_rels/.rels');\n\nfunction readUInt64LE(buf, offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n var n = buf[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < 8) {\n mul *= 0x100;\n n += buf[offset + i] * mul;\n }\n\n return n;\n}\n\nvar fileType = function fileType(input) {\n if (!(input instanceof Uint8Array || input instanceof ArrayBuffer || Buffer.isBuffer(input))) {\n throw new TypeError(\"Expected the `input` argument to be of type `Uint8Array` or `Buffer` or `ArrayBuffer`, got `\" + typeof input + \"`\");\n }\n\n var buf = input instanceof Uint8Array ? input : new Uint8Array(input);\n\n if (!(buf && buf.length > 1)) {\n return null;\n }\n\n var check = function check(header, options) {\n options = Object.assign({\n offset: 0\n }, options);\n\n for (var i = 0; i < header.length; i++) {\n // If a bitmask is set\n if (options.mask) {\n // If header doesn't equal `buf` with bits masked off\n if (header[i] !== (options.mask[i] & buf[i + options.offset])) {\n return false;\n }\n } else if (header[i] !== buf[i + options.offset]) {\n return false;\n }\n }\n\n return true;\n };\n\n var checkString = function checkString(header, options) {\n return check(toBytes(header), options);\n };\n\n if (check([0xFF, 0xD8, 0xFF])) {\n return {\n ext: 'jpg',\n mime: 'image/jpeg'\n };\n }\n\n if (check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n return {\n ext: 'png',\n mime: 'image/png'\n };\n }\n\n if (check([0x47, 0x49, 0x46])) {\n return {\n ext: 'gif',\n mime: 'image/gif'\n };\n }\n\n if (check([0x57, 0x45, 0x42, 0x50], {\n offset: 8\n })) {\n return {\n ext: 'webp',\n mime: 'image/webp'\n };\n }\n\n if (check([0x46, 0x4C, 0x49, 0x46])) {\n return {\n ext: 'flif',\n mime: 'image/flif'\n };\n } // Needs to be before `tif` check\n\n\n if ((check([0x49, 0x49, 0x2A, 0x0]) || check([0x4D, 0x4D, 0x0, 0x2A])) && check([0x43, 0x52], {\n offset: 8\n })) {\n return {\n ext: 'cr2',\n mime: 'image/x-canon-cr2'\n };\n }\n\n if (check([0x49, 0x49, 0x2A, 0x0]) || check([0x4D, 0x4D, 0x0, 0x2A])) {\n return {\n ext: 'tif',\n mime: 'image/tiff'\n };\n }\n\n if (check([0x42, 0x4D])) {\n return {\n ext: 'bmp',\n mime: 'image/bmp'\n };\n }\n\n if (check([0x49, 0x49, 0xBC])) {\n return {\n ext: 'jxr',\n mime: 'image/vnd.ms-photo'\n };\n }\n\n if (check([0x38, 0x42, 0x50, 0x53])) {\n return {\n ext: 'psd',\n mime: 'image/vnd.adobe.photoshop'\n };\n } // Zip-based file formats\n // Need to be before the `zip` check\n\n\n if (check([0x50, 0x4B, 0x3, 0x4])) {\n if (check([0x6D, 0x69, 0x6D, 0x65, 0x74, 0x79, 0x70, 0x65, 0x61, 0x70, 0x70, 0x6C, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x65, 0x70, 0x75, 0x62, 0x2B, 0x7A, 0x69, 0x70], {\n offset: 30\n })) {\n return {\n ext: 'epub',\n mime: 'application/epub+zip'\n };\n } // Assumes signed `.xpi` from addons.mozilla.org\n\n\n if (check(xpiZipFilename, {\n offset: 30\n })) {\n return {\n ext: 'xpi',\n mime: 'application/x-xpinstall'\n };\n }\n\n if (checkString('mimetypeapplication/vnd.oasis.opendocument.text', {\n offset: 30\n })) {\n return {\n ext: 'odt',\n mime: 'application/vnd.oasis.opendocument.text'\n };\n }\n\n if (checkString('mimetypeapplication/vnd.oasis.opendocument.spreadsheet', {\n offset: 30\n })) {\n return {\n ext: 'ods',\n mime: 'application/vnd.oasis.opendocument.spreadsheet'\n };\n }\n\n if (checkString('mimetypeapplication/vnd.oasis.opendocument.presentation', {\n offset: 30\n })) {\n return {\n ext: 'odp',\n mime: 'application/vnd.oasis.opendocument.presentation'\n };\n } // The docx, xlsx and pptx file types extend the Office Open XML file format:\n // https://en.wikipedia.org/wiki/Office_Open_XML_file_formats\n // We look for:\n // - one entry named '[Content_Types].xml' or '_rels/.rels',\n // - one entry indicating specific type of file.\n // MS Office, OpenOffice and LibreOffice may put the parts in different order, so the check should not rely on it.\n\n\n var findNextZipHeaderIndex = function findNextZipHeaderIndex(arr, startAt) {\n if (startAt === void 0) {\n startAt = 0;\n }\n\n return arr.findIndex(function (el, i, arr) {\n return i >= startAt && arr[i] === 0x50 && arr[i + 1] === 0x4B && arr[i + 2] === 0x3 && arr[i + 3] === 0x4;\n });\n };\n\n var zipHeaderIndex = 0; // The first zip header was already found at index 0\n\n var oxmlFound = false;\n var type = null;\n\n do {\n var offset = zipHeaderIndex + 30;\n\n if (!oxmlFound) {\n oxmlFound = check(oxmlContentTypes, {\n offset: offset\n }) || check(oxmlRels, {\n offset: offset\n });\n }\n\n if (!type) {\n if (checkString('word/', {\n offset: offset\n })) {\n type = {\n ext: 'docx',\n mime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n };\n } else if (checkString('ppt/', {\n offset: offset\n })) {\n type = {\n ext: 'pptx',\n mime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'\n };\n } else if (checkString('xl/', {\n offset: offset\n })) {\n type = {\n ext: 'xlsx',\n mime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n };\n }\n }\n\n if (oxmlFound && type) {\n return type;\n }\n\n zipHeaderIndex = findNextZipHeaderIndex(buf, offset);\n } while (zipHeaderIndex >= 0); // No more zip parts available in the buffer, but maybe we are almost certain about the type?\n\n\n if (type) {\n return type;\n }\n }\n\n if (check([0x50, 0x4B]) && (buf[2] === 0x3 || buf[2] === 0x5 || buf[2] === 0x7) && (buf[3] === 0x4 || buf[3] === 0x6 || buf[3] === 0x8)) {\n return {\n ext: 'zip',\n mime: 'application/zip'\n };\n }\n\n if (check([0x75, 0x73, 0x74, 0x61, 0x72], {\n offset: 257\n })) {\n return {\n ext: 'tar',\n mime: 'application/x-tar'\n };\n }\n\n if (check([0x52, 0x61, 0x72, 0x21, 0x1A, 0x7]) && (buf[6] === 0x0 || buf[6] === 0x1)) {\n return {\n ext: 'rar',\n mime: 'application/x-rar-compressed'\n };\n }\n\n if (check([0x1F, 0x8B, 0x8])) {\n return {\n ext: 'gz',\n mime: 'application/gzip'\n };\n }\n\n if (check([0x42, 0x5A, 0x68])) {\n return {\n ext: 'bz2',\n mime: 'application/x-bzip2'\n };\n }\n\n if (check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) {\n return {\n ext: '7z',\n mime: 'application/x-7z-compressed'\n };\n }\n\n if (check([0x78, 0x01])) {\n return {\n ext: 'dmg',\n mime: 'application/x-apple-diskimage'\n };\n }\n\n if (check([0x33, 0x67, 0x70, 0x35]) || // 3gp5\n check([0x0, 0x0, 0x0]) && check([0x66, 0x74, 0x79, 0x70], {\n offset: 4\n }) && (check([0x6D, 0x70, 0x34, 0x31], {\n offset: 8\n }) || // MP41\n check([0x6D, 0x70, 0x34, 0x32], {\n offset: 8\n }) || // MP42\n check([0x69, 0x73, 0x6F, 0x6D], {\n offset: 8\n }) || // ISOM\n check([0x69, 0x73, 0x6F, 0x32], {\n offset: 8\n }) || // ISO2\n check([0x6D, 0x6D, 0x70, 0x34], {\n offset: 8\n }) || // MMP4\n check([0x4D, 0x34, 0x56], {\n offset: 8\n }) || // M4V\n check([0x64, 0x61, 0x73, 0x68], {\n offset: 8\n }) // DASH\n )) {\n return {\n ext: 'mp4',\n mime: 'video/mp4'\n };\n }\n\n if (check([0x4D, 0x54, 0x68, 0x64])) {\n return {\n ext: 'mid',\n mime: 'audio/midi'\n };\n } // https://github.com/threatstack/libmagic/blob/master/magic/Magdir/matroska\n\n\n if (check([0x1A, 0x45, 0xDF, 0xA3])) {\n var sliced = buf.subarray(4, 4 + 4096);\n var idPos = sliced.findIndex(function (el, i, arr) {\n return arr[i] === 0x42 && arr[i + 1] === 0x82;\n });\n\n if (idPos !== -1) {\n var docTypePos = idPos + 3;\n\n var findDocType = function findDocType(type) {\n return [].concat(type).every(function (c, i) {\n return sliced[docTypePos + i] === c.charCodeAt(0);\n });\n };\n\n if (findDocType('matroska')) {\n return {\n ext: 'mkv',\n mime: 'video/x-matroska'\n };\n }\n\n if (findDocType('webm')) {\n return {\n ext: 'webm',\n mime: 'video/webm'\n };\n }\n }\n }\n\n if (check([0x0, 0x0, 0x0, 0x14, 0x66, 0x74, 0x79, 0x70, 0x71, 0x74, 0x20, 0x20]) || check([0x66, 0x72, 0x65, 0x65], {\n offset: 4\n }) || // Type: `free`\n check([0x66, 0x74, 0x79, 0x70, 0x71, 0x74, 0x20, 0x20], {\n offset: 4\n }) || check([0x6D, 0x64, 0x61, 0x74], {\n offset: 4\n }) || // MJPEG\n check([0x6D, 0x6F, 0x6F, 0x76], {\n offset: 4\n }) || // Type: `moov`\n check([0x77, 0x69, 0x64, 0x65], {\n offset: 4\n })) {\n return {\n ext: 'mov',\n mime: 'video/quicktime'\n };\n } // RIFF file format which might be AVI, WAV, QCP, etc\n\n\n if (check([0x52, 0x49, 0x46, 0x46])) {\n if (check([0x41, 0x56, 0x49], {\n offset: 8\n })) {\n return {\n ext: 'avi',\n mime: 'video/vnd.avi'\n };\n }\n\n if (check([0x57, 0x41, 0x56, 0x45], {\n offset: 8\n })) {\n return {\n ext: 'wav',\n mime: 'audio/vnd.wave'\n };\n } // QLCM, QCP file\n\n\n if (check([0x51, 0x4C, 0x43, 0x4D], {\n offset: 8\n })) {\n return {\n ext: 'qcp',\n mime: 'audio/qcelp'\n };\n }\n } // ASF_Header_Object first 80 bytes\n\n\n if (check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n // Search for header should be in first 1KB of file.\n var _offset = 30;\n\n do {\n var objectSize = readUInt64LE(buf, _offset + 16);\n\n if (check([0x91, 0x07, 0xDC, 0xB7, 0xB7, 0xA9, 0xCF, 0x11, 0x8E, 0xE6, 0x00, 0xC0, 0x0C, 0x20, 0x53, 0x65], {\n offset: _offset\n })) {\n // Sync on Stream-Properties-Object (B7DC0791-A9B7-11CF-8EE6-00C00C205365)\n if (check([0x40, 0x9E, 0x69, 0xF8, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B], {\n offset: _offset + 24\n })) {\n // Found audio:\n return {\n ext: 'wma',\n mime: 'audio/x-ms-wma'\n };\n }\n\n if (check([0xC0, 0xEF, 0x19, 0xBC, 0x4D, 0x5B, 0xCF, 0x11, 0xA8, 0xFD, 0x00, 0x80, 0x5F, 0x5C, 0x44, 0x2B], {\n offset: _offset + 24\n })) {\n // Found video:\n return {\n ext: 'wmv',\n mime: 'video/x-ms-asf'\n };\n }\n\n break;\n }\n\n _offset += objectSize;\n } while (_offset + 24 <= buf.length); // Default to ASF generic extension\n\n\n return {\n ext: 'asf',\n mime: 'application/vnd.ms-asf'\n };\n }\n\n if (check([0x0, 0x0, 0x1, 0xBA]) || check([0x0, 0x0, 0x1, 0xB3])) {\n return {\n ext: 'mpg',\n mime: 'video/mpeg'\n };\n }\n\n if (check([0x66, 0x74, 0x79, 0x70, 0x33, 0x67], {\n offset: 4\n })) {\n return {\n ext: '3gp',\n mime: 'video/3gpp'\n };\n } // Check for MPEG header at different starting offsets\n\n\n for (var start = 0; start < 2 && start < buf.length - 16; start++) {\n if (check([0x49, 0x44, 0x33], {\n offset: start\n }) || // ID3 header\n check([0xFF, 0xE2], {\n offset: start,\n mask: [0xFF, 0xE2]\n }) // MPEG 1 or 2 Layer 3 header\n ) {\n return {\n ext: 'mp3',\n mime: 'audio/mpeg'\n };\n }\n\n if (check([0xFF, 0xE4], {\n offset: start,\n mask: [0xFF, 0xE4]\n }) // MPEG 1 or 2 Layer 2 header\n ) {\n return {\n ext: 'mp2',\n mime: 'audio/mpeg'\n };\n }\n\n if (check([0xFF, 0xF8], {\n offset: start,\n mask: [0xFF, 0xFC]\n }) // MPEG 2 layer 0 using ADTS\n ) {\n return {\n ext: 'mp2',\n mime: 'audio/mpeg'\n };\n }\n\n if (check([0xFF, 0xF0], {\n offset: start,\n mask: [0xFF, 0xFC]\n }) // MPEG 4 layer 0 using ADTS\n ) {\n return {\n ext: 'mp4',\n mime: 'audio/mpeg'\n };\n }\n }\n\n if (check([0x66, 0x74, 0x79, 0x70, 0x4D, 0x34, 0x41], {\n offset: 4\n })) {\n return {\n // MPEG-4 layer 3 (audio)\n ext: 'm4a',\n mime: 'audio/mp4' // RFC 4337\n\n };\n } // Needs to be before `ogg` check\n\n\n if (check([0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64], {\n offset: 28\n })) {\n return {\n ext: 'opus',\n mime: 'audio/opus'\n };\n } // If 'OggS' in first bytes, then OGG container\n\n\n if (check([0x4F, 0x67, 0x67, 0x53])) {\n // This is a OGG container\n // If ' theora' in header.\n if (check([0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61], {\n offset: 28\n })) {\n return {\n ext: 'ogv',\n mime: 'video/ogg'\n };\n } // If '\\x01video' in header.\n\n\n if (check([0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00], {\n offset: 28\n })) {\n return {\n ext: 'ogm',\n mime: 'video/ogg'\n };\n } // If ' FLAC' in header https://xiph.org/flac/faq.html\n\n\n if (check([0x7F, 0x46, 0x4C, 0x41, 0x43], {\n offset: 28\n })) {\n return {\n ext: 'oga',\n mime: 'audio/ogg'\n };\n } // 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n\n\n if (check([0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20], {\n offset: 28\n })) {\n return {\n ext: 'spx',\n mime: 'audio/ogg'\n };\n } // If '\\x01vorbis' in header\n\n\n if (check([0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73], {\n offset: 28\n })) {\n return {\n ext: 'ogg',\n mime: 'audio/ogg'\n };\n } // Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\n\n return {\n ext: 'ogx',\n mime: 'application/ogg'\n };\n }\n\n if (check([0x66, 0x4C, 0x61, 0x43])) {\n return {\n ext: 'flac',\n mime: 'audio/x-flac'\n };\n }\n\n if (check([0x4D, 0x41, 0x43, 0x20])) {\n // 'MAC '\n return {\n ext: 'ape',\n mime: 'audio/ape'\n };\n }\n\n if (check([0x77, 0x76, 0x70, 0x6B])) {\n // 'wvpk'\n return {\n ext: 'wv',\n mime: 'audio/wavpack'\n };\n }\n\n if (check([0x23, 0x21, 0x41, 0x4D, 0x52, 0x0A])) {\n return {\n ext: 'amr',\n mime: 'audio/amr'\n };\n }\n\n if (check([0x25, 0x50, 0x44, 0x46])) {\n return {\n ext: 'pdf',\n mime: 'application/pdf'\n };\n }\n\n if (check([0x4D, 0x5A])) {\n return {\n ext: 'exe',\n mime: 'application/x-msdownload'\n };\n }\n\n if ((buf[0] === 0x43 || buf[0] === 0x46) && check([0x57, 0x53], {\n offset: 1\n })) {\n return {\n ext: 'swf',\n mime: 'application/x-shockwave-flash'\n };\n }\n\n if (check([0x7B, 0x5C, 0x72, 0x74, 0x66])) {\n return {\n ext: 'rtf',\n mime: 'application/rtf'\n };\n }\n\n if (check([0x00, 0x61, 0x73, 0x6D])) {\n return {\n ext: 'wasm',\n mime: 'application/wasm'\n };\n }\n\n if (check([0x77, 0x4F, 0x46, 0x46]) && (check([0x00, 0x01, 0x00, 0x00], {\n offset: 4\n }) || check([0x4F, 0x54, 0x54, 0x4F], {\n offset: 4\n }))) {\n return {\n ext: 'woff',\n mime: 'font/woff'\n };\n }\n\n if (check([0x77, 0x4F, 0x46, 0x32]) && (check([0x00, 0x01, 0x00, 0x00], {\n offset: 4\n }) || check([0x4F, 0x54, 0x54, 0x4F], {\n offset: 4\n }))) {\n return {\n ext: 'woff2',\n mime: 'font/woff2'\n };\n }\n\n if (check([0x4C, 0x50], {\n offset: 34\n }) && (check([0x00, 0x00, 0x01], {\n offset: 8\n }) || check([0x01, 0x00, 0x02], {\n offset: 8\n }) || check([0x02, 0x00, 0x02], {\n offset: 8\n }))) {\n return {\n ext: 'eot',\n mime: 'application/vnd.ms-fontobject'\n };\n }\n\n if (check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n return {\n ext: 'ttf',\n mime: 'font/ttf'\n };\n }\n\n if (check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n return {\n ext: 'otf',\n mime: 'font/otf'\n };\n }\n\n if (check([0x00, 0x00, 0x01, 0x00])) {\n return {\n ext: 'ico',\n mime: 'image/x-icon'\n };\n }\n\n if (check([0x00, 0x00, 0x02, 0x00])) {\n return {\n ext: 'cur',\n mime: 'image/x-icon'\n };\n }\n\n if (check([0x46, 0x4C, 0x56, 0x01])) {\n return {\n ext: 'flv',\n mime: 'video/x-flv'\n };\n }\n\n if (check([0x25, 0x21])) {\n return {\n ext: 'ps',\n mime: 'application/postscript'\n };\n }\n\n if (check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n return {\n ext: 'xz',\n mime: 'application/x-xz'\n };\n }\n\n if (check([0x53, 0x51, 0x4C, 0x69])) {\n return {\n ext: 'sqlite',\n mime: 'application/x-sqlite3'\n };\n }\n\n if (check([0x4E, 0x45, 0x53, 0x1A])) {\n return {\n ext: 'nes',\n mime: 'application/x-nintendo-nes-rom'\n };\n }\n\n if (check([0x43, 0x72, 0x32, 0x34])) {\n return {\n ext: 'crx',\n mime: 'application/x-google-chrome-extension'\n };\n }\n\n if (check([0x4D, 0x53, 0x43, 0x46]) || check([0x49, 0x53, 0x63, 0x28])) {\n return {\n ext: 'cab',\n mime: 'application/vnd.ms-cab-compressed'\n };\n } // Needs to be before `ar` check\n\n\n if (check([0x21, 0x3C, 0x61, 0x72, 0x63, 0x68, 0x3E, 0x0A, 0x64, 0x65, 0x62, 0x69, 0x61, 0x6E, 0x2D, 0x62, 0x69, 0x6E, 0x61, 0x72, 0x79])) {\n return {\n ext: 'deb',\n mime: 'application/x-deb'\n };\n }\n\n if (check([0x21, 0x3C, 0x61, 0x72, 0x63, 0x68, 0x3E])) {\n return {\n ext: 'ar',\n mime: 'application/x-unix-archive'\n };\n }\n\n if (check([0xED, 0xAB, 0xEE, 0xDB])) {\n return {\n ext: 'rpm',\n mime: 'application/x-rpm'\n };\n }\n\n if (check([0x1F, 0xA0]) || check([0x1F, 0x9D])) {\n return {\n ext: 'Z',\n mime: 'application/x-compress'\n };\n }\n\n if (check([0x4C, 0x5A, 0x49, 0x50])) {\n return {\n ext: 'lz',\n mime: 'application/x-lzip'\n };\n }\n\n if (check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) {\n return {\n ext: 'msi',\n mime: 'application/x-msi'\n };\n }\n\n if (check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n return {\n ext: 'mxf',\n mime: 'application/mxf'\n };\n }\n\n if (check([0x47], {\n offset: 4\n }) && (check([0x47], {\n offset: 192\n }) || check([0x47], {\n offset: 196\n }))) {\n return {\n ext: 'mts',\n mime: 'video/mp2t'\n };\n }\n\n if (check([0x42, 0x4C, 0x45, 0x4E, 0x44, 0x45, 0x52])) {\n return {\n ext: 'blend',\n mime: 'application/x-blender'\n };\n }\n\n if (check([0x42, 0x50, 0x47, 0xFB])) {\n return {\n ext: 'bpg',\n mime: 'image/bpg'\n };\n }\n\n if (check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n // JPEG-2000 family\n if (check([0x6A, 0x70, 0x32, 0x20], {\n offset: 20\n })) {\n return {\n ext: 'jp2',\n mime: 'image/jp2'\n };\n }\n\n if (check([0x6A, 0x70, 0x78, 0x20], {\n offset: 20\n })) {\n return {\n ext: 'jpx',\n mime: 'image/jpx'\n };\n }\n\n if (check([0x6A, 0x70, 0x6D, 0x20], {\n offset: 20\n })) {\n return {\n ext: 'jpm',\n mime: 'image/jpm'\n };\n }\n\n if (check([0x6D, 0x6A, 0x70, 0x32], {\n offset: 20\n })) {\n return {\n ext: 'mj2',\n mime: 'image/mj2'\n };\n }\n }\n\n if (check([0x46, 0x4F, 0x52, 0x4D])) {\n return {\n ext: 'aif',\n mime: 'audio/aiff'\n };\n }\n\n if (checkString('<?xml ')) {\n return {\n ext: 'xml',\n mime: 'application/xml'\n };\n }\n\n if (check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {\n offset: 60\n })) {\n return {\n ext: 'mobi',\n mime: 'application/x-mobipocket-ebook'\n };\n } // File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\n\n if (check([0x66, 0x74, 0x79, 0x70], {\n offset: 4\n })) {\n if (check([0x6D, 0x69, 0x66, 0x31], {\n offset: 8\n })) {\n return {\n ext: 'heic',\n mime: 'image/heif'\n };\n }\n\n if (check([0x6D, 0x73, 0x66, 0x31], {\n offset: 8\n })) {\n return {\n ext: 'heic',\n mime: 'image/heif-sequence'\n };\n }\n\n if (check([0x68, 0x65, 0x69, 0x63], {\n offset: 8\n }) || check([0x68, 0x65, 0x69, 0x78], {\n offset: 8\n })) {\n return {\n ext: 'heic',\n mime: 'image/heic'\n };\n }\n\n if (check([0x68, 0x65, 0x76, 0x63], {\n offset: 8\n }) || check([0x68, 0x65, 0x76, 0x78], {\n offset: 8\n })) {\n return {\n ext: 'heic',\n mime: 'image/heic-sequence'\n };\n }\n }\n\n if (check([0xAB, 0x4B, 0x54, 0x58, 0x20, 0x31, 0x31, 0xBB, 0x0D, 0x0A, 0x1A, 0x0A])) {\n return {\n ext: 'ktx',\n mime: 'image/ktx'\n };\n }\n\n if (check([0x44, 0x49, 0x43, 0x4D], {\n offset: 128\n })) {\n return {\n ext: 'dcm',\n mime: 'application/dicom'\n };\n } // Musepack, SV7\n\n\n if (check([0x4D, 0x50, 0x2B])) {\n return {\n ext: 'mpc',\n mime: 'audio/x-musepack'\n };\n } // Musepack, SV8\n\n\n if (check([0x4D, 0x50, 0x43, 0x4B])) {\n return {\n ext: 'mpc',\n mime: 'audio/x-musepack'\n };\n }\n\n if (check([0x42, 0x45, 0x47, 0x49, 0x4E, 0x3A])) {\n return {\n ext: 'ics',\n mime: 'text/calendar'\n };\n }\n\n if (check([0x67, 0x6C, 0x54, 0x46, 0x02, 0x00, 0x00, 0x00])) {\n return {\n ext: 'glb',\n mime: 'model/gltf-binary'\n };\n }\n\n if (check([0xD4, 0xC3, 0xB2, 0xA1]) || check([0xA1, 0xB2, 0xC3, 0xD4])) {\n return {\n ext: 'pcap',\n mime: 'application/vnd.tcpdump.pcap'\n };\n }\n\n return null;\n};\n\nmodule.exports = fileType; // TODO: Remove this for the next major release\n\nmodule.exports.default = fileType;\nObject.defineProperty(fileType, 'minimumBytes', {\n value: 4100\n});\n\nmodule.exports.stream = function (readableStream) {\n return new Promise(function (resolve, reject) {\n // Using `eval` to work around issues when bundling with Webpack\n var stream = eval('require')('stream'); // eslint-disable-line no-eval\n\n readableStream.once('readable', function () {\n var pass = new stream.PassThrough();\n var chunk = readableStream.read(module.exports.minimumBytes) || readableStream.read();\n\n try {\n pass.fileType = fileType(chunk);\n } catch (error) {\n reject(error);\n }\n\n readableStream.unshift(chunk);\n\n if (stream.pipeline) {\n resolve(stream.pipeline(readableStream, pass, function () {}));\n } else {\n resolve(readableStream.pipe(pass));\n }\n });\n });\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\nmodule.exports = function isBuffer(obj) {\n return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\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\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\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(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\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\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\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 {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","/*globals define, module, Symbol */\n\n/*jshint -W056 */\n(function (globals) {\n 'use strict';\n\n var strings, messages, predicates, functions, assert, not, maybe, collections, slice, neginf, posinf, isArray, haveSymbols;\n strings = {\n v: 'value',\n n: 'number',\n s: 'string',\n b: 'boolean',\n o: 'object',\n t: 'type',\n a: 'array',\n al: 'array-like',\n i: 'iterable',\n d: 'date',\n f: 'function',\n l: 'length'\n };\n messages = {};\n predicates = {};\n [{\n n: 'equal',\n f: equal,\n s: 'v'\n }, {\n n: 'undefined',\n f: isUndefined,\n s: 'v'\n }, {\n n: 'null',\n f: isNull,\n s: 'v'\n }, {\n n: 'assigned',\n f: assigned,\n s: 'v'\n }, {\n n: 'primitive',\n f: primitive,\n s: 'v'\n }, {\n n: 'includes',\n f: includes,\n s: 'v'\n }, {\n n: 'zero',\n f: zero\n }, {\n n: 'infinity',\n f: infinity\n }, {\n n: 'number',\n f: number\n }, {\n n: 'integer',\n f: integer\n }, {\n n: 'even',\n f: even\n }, {\n n: 'odd',\n f: odd\n }, {\n n: 'greater',\n f: greater\n }, {\n n: 'less',\n f: less\n }, {\n n: 'between',\n f: between\n }, {\n n: 'greaterOrEqual',\n f: greaterOrEqual\n }, {\n n: 'lessOrEqual',\n f: lessOrEqual\n }, {\n n: 'inRange',\n f: inRange\n }, {\n n: 'positive',\n f: positive\n }, {\n n: 'negative',\n f: negative\n }, {\n n: 'string',\n f: string,\n s: 's'\n }, {\n n: 'emptyString',\n f: emptyString,\n s: 's'\n }, {\n n: 'nonEmptyString',\n f: nonEmptyString,\n s: 's'\n }, {\n n: 'contains',\n f: contains,\n s: 's'\n }, {\n n: 'match',\n f: match,\n s: 's'\n }, {\n n: 'boolean',\n f: boolean,\n s: 'b'\n }, {\n n: 'object',\n f: object,\n s: 'o'\n }, {\n n: 'emptyObject',\n f: emptyObject,\n s: 'o'\n }, {\n n: 'nonEmptyObject',\n f: nonEmptyObject,\n s: 'o'\n }, {\n n: 'instanceStrict',\n f: instanceStrict,\n s: 't'\n }, {\n n: 'instance',\n f: instance,\n s: 't'\n }, {\n n: 'like',\n f: like,\n s: 't'\n }, {\n n: 'array',\n f: array,\n s: 'a'\n }, {\n n: 'emptyArray',\n f: emptyArray,\n s: 'a'\n }, {\n n: 'nonEmptyArray',\n f: nonEmptyArray,\n s: 'a'\n }, {\n n: 'arrayLike',\n f: arrayLike,\n s: 'al'\n }, {\n n: 'iterable',\n f: iterable,\n s: 'i'\n }, {\n n: 'date',\n f: date,\n s: 'd'\n }, {\n n: 'function',\n f: isFunction,\n s: 'f'\n }, {\n n: 'hasLength',\n f: hasLength,\n s: 'l'\n }].map(function (data) {\n var n = data.n;\n messages[n] = 'Invalid ' + strings[data.s || 'n'];\n predicates[n] = data.f;\n });\n functions = {\n apply: apply,\n map: map,\n all: all,\n any: any\n };\n collections = ['array', 'arrayLike', 'iterable', 'object'];\n slice = Array.prototype.slice;\n neginf = Number.NEGATIVE_INFINITY;\n posinf = Number.POSITIVE_INFINITY;\n isArray = Array.isArray;\n haveSymbols = typeof Symbol === 'function';\n functions = mixin(functions, predicates);\n assert = createModifiedPredicates(assertModifier, assertImpl);\n not = createModifiedPredicates(notModifier, notImpl);\n maybe = createModifiedPredicates(maybeModifier, maybeImpl);\n assert.not = createModifiedModifier(assertModifier, not);\n assert.maybe = createModifiedModifier(assertModifier, maybe);\n collections.forEach(createOfPredicates);\n createOfModifiers(assert, assertModifier);\n createOfModifiers(not, notModifier);\n collections.forEach(createMaybeOfModifiers);\n exportFunctions(mixin(functions, {\n assert: assert,\n not: not,\n maybe: maybe\n }));\n /**\n * Public function `equal`.\n *\n * Returns true if `lhs` and `rhs` are strictly equal, without coercion.\n * Returns false otherwise.\n */\n\n function equal(lhs, rhs) {\n return lhs === rhs;\n }\n /**\n * Public function `undefined`.\n *\n * Returns true if `data` is undefined, false otherwise.\n */\n\n\n function isUndefined(data) {\n return data === undefined;\n }\n /**\n * Public function `null`.\n *\n * Returns true if `data` is null, false otherwise.\n */\n\n\n function isNull(data) {\n return data === null;\n }\n /**\n * Public function `assigned`.\n *\n * Returns true if `data` is not null or undefined, false otherwise.\n */\n\n\n function assigned(data) {\n return data !== undefined && data !== null;\n }\n /**\n * Public function `primitive`.\n *\n * Returns true if `data` is a primitive type, false otherwise.\n */\n\n\n function primitive(data) {\n var type;\n\n switch (data) {\n case null:\n case undefined:\n case false:\n case true:\n return true;\n }\n\n type = typeof data;\n return type === 'string' || type === 'number' || haveSymbols && type === 'symbol';\n }\n /**\n * Public function `zero`.\n *\n * Returns true if `data` is zero, false otherwise.\n */\n\n\n function zero(data) {\n return data === 0;\n }\n /**\n * Public function `infinity`.\n *\n * Returns true if `data` is positive or negative infinity, false otherwise.\n */\n\n\n function infinity(data) {\n return data === neginf || data === posinf;\n }\n /**\n * Public function `number`.\n *\n * Returns true if `data` is a number, false otherwise.\n */\n\n\n function number(data) {\n return typeof data === 'number' && data > neginf && data < posinf;\n }\n /**\n * Public function `integer`.\n *\n * Returns true if `data` is an integer, false otherwise.\n */\n\n\n function integer(data) {\n return typeof data === 'number' && data % 1 === 0;\n }\n /**\n * Public function `even`.\n *\n * Returns true if `data` is an even number, false otherwise.\n */\n\n\n function even(data) {\n return typeof data === 'number' && data % 2 === 0;\n }\n /**\n * Public function `odd`.\n *\n * Returns true if `data` is an odd number, false otherwise.\n */\n\n\n function odd(data) {\n return integer(data) && data % 2 !== 0;\n }\n /**\n * Public function `greater`.\n *\n * Returns true if `lhs` is a number greater than `rhs`, false otherwise.\n */\n\n\n function greater(lhs, rhs) {\n return number(lhs) && lhs > rhs;\n }\n /**\n * Public function `less`.\n *\n * Returns true if `lhs` is a number less than `rhs`, false otherwise.\n */\n\n\n function less(lhs, rhs) {\n return number(lhs) && lhs < rhs;\n }\n /**\n * Public function `between`.\n *\n * Returns true if `data` is a number between `x` and `y`, false otherwise.\n */\n\n\n function between(data, x, y) {\n if (x < y) {\n return greater(data, x) && data < y;\n }\n\n return less(data, x) && data > y;\n }\n /**\n * Public function `greaterOrEqual`.\n *\n * Returns true if `lhs` is a number greater than or equal to `rhs`, false\n * otherwise.\n */\n\n\n function greaterOrEqual(lhs, rhs) {\n return number(lhs) && lhs >= rhs;\n }\n /**\n * Public function `lessOrEqual`.\n *\n * Returns true if `lhs` is a number less than or equal to `rhs`, false\n * otherwise.\n */\n\n\n function lessOrEqual(lhs, rhs) {\n return number(lhs) && lhs <= rhs;\n }\n /**\n * Public function `inRange`.\n *\n * Returns true if `data` is a number in the range `x..y`, false otherwise.\n */\n\n\n function inRange(data, x, y) {\n if (x < y) {\n return greaterOrEqual(data, x) && data <= y;\n }\n\n return lessOrEqual(data, x) && data >= y;\n }\n /**\n * Public function `positive`.\n *\n * Returns true if `data` is a positive number, false otherwise.\n */\n\n\n function positive(data) {\n return greater(data, 0);\n }\n /**\n * Public function `negative`.\n *\n * Returns true if `data` is a negative number, false otherwise.\n */\n\n\n function negative(data) {\n return less(data, 0);\n }\n /**\n * Public function `string`.\n *\n * Returns true if `data` is a string, false otherwise.\n */\n\n\n function string(data) {\n return typeof data === 'string';\n }\n /**\n * Public function `emptyString`.\n *\n * Returns true if `data` is the empty string, false otherwise.\n */\n\n\n function emptyString(data) {\n return data === '';\n }\n /**\n * Public function `nonEmptyString`.\n *\n * Returns true if `data` is a non-empty string, false otherwise.\n */\n\n\n function nonEmptyString(data) {\n return string(data) && data !== '';\n }\n /**\n * Public function `contains`.\n *\n * Returns true if `data` is a string that contains `substring`, false\n * otherwise.\n */\n\n\n function contains(data, substring) {\n return string(data) && data.indexOf(substring) !== -1;\n }\n /**\n * Public function `match`.\n *\n * Returns true if `data` is a string that matches `regex`, false otherwise.\n */\n\n\n function match(data, regex) {\n return string(data) && !!data.match(regex);\n }\n /**\n * Public function `boolean`.\n *\n * Returns true if `data` is a boolean value, false otherwise.\n */\n\n\n function boolean(data) {\n return data === false || data === true;\n }\n /**\n * Public function `object`.\n *\n * Returns true if `data` is a plain-old JS object, false otherwise.\n */\n\n\n function object(data) {\n return Object.prototype.toString.call(data) === '[object Object]';\n }\n /**\n * Public function `emptyObject`.\n *\n * Returns true if `data` is an empty object, false otherwise.\n */\n\n\n function emptyObject(data) {\n return object(data) && Object.keys(data).length === 0;\n }\n /**\n * Public function `nonEmptyObject`.\n *\n * Returns true if `data` is a non-empty object, false otherwise.\n */\n\n\n function nonEmptyObject(data) {\n return object(data) && Object.keys(data).length > 0;\n }\n /**\n * Public function `instanceStrict`.\n *\n * Returns true if `data` is an instance of `prototype`, false otherwise.\n */\n\n\n function instanceStrict(data, prototype) {\n try {\n return data instanceof prototype;\n } catch (error) {\n return false;\n }\n }\n /**\n * Public function `instance`.\n *\n * Returns true if `data` is an instance of `prototype`, false otherwise.\n * Falls back to testing constructor.name and Object.prototype.toString\n * if the initial instanceof test fails.\n */\n\n\n function instance(data, prototype) {\n try {\n return instanceStrict(data, prototype) || data.constructor.name === prototype.name || Object.prototype.toString.call(data) === '[object ' + prototype.name + ']';\n } catch (error) {\n return false;\n }\n }\n /**\n * Public function `like`.\n *\n * Tests whether `data` 'quacks like a duck'. Returns true if `data` has all\n * of the properties of `archetype` (the 'duck'), false otherwise.\n */\n\n\n function like(data, archetype) {\n var name;\n\n for (name in archetype) {\n if (archetype.hasOwnProperty(name)) {\n if (data.hasOwnProperty(name) === false || typeof data[name] !== typeof archetype[name]) {\n return false;\n }\n\n if (object(data[name]) && like(data[name], archetype[name]) === false) {\n return false;\n }\n }\n }\n\n return true;\n }\n /**\n * Public function `array`.\n *\n * Returns true if `data` is an array, false otherwise.\n */\n\n\n function array(data) {\n return isArray(data);\n }\n /**\n * Public function `emptyArray`.\n *\n * Returns true if `data` is an empty array, false otherwise.\n */\n\n\n function emptyArray(data) {\n return array(data) && data.length === 0;\n }\n /**\n * Public function `nonEmptyArray`.\n *\n * Returns true if `data` is a non-empty array, false otherwise.\n */\n\n\n function nonEmptyArray(data) {\n return array(data) && greater(data.length, 0);\n }\n /**\n * Public function `arrayLike`.\n *\n * Returns true if `data` is an array-like object, false otherwise.\n */\n\n\n function arrayLike(data) {\n return assigned(data) && greaterOrEqual(data.length, 0);\n }\n /**\n * Public function `iterable`.\n *\n * Returns true if `data` is an iterable, false otherwise.\n */\n\n\n function iterable(data) {\n if (!haveSymbols) {\n // Fall back to `arrayLike` predicate in pre-ES6 environments.\n return arrayLike(data);\n }\n\n return assigned(data) && isFunction(data[Symbol.iterator]);\n }\n /**\n * Public function `includes`.\n *\n * Returns true if `data` contains `value`, false otherwise.\n */\n\n\n function includes(data, value) {\n var iterator, iteration, keys, length, i;\n\n if (!assigned(data)) {\n return false;\n }\n\n if (haveSymbols && data[Symbol.iterator] && isFunction(data.values)) {\n iterator = data.values();\n\n do {\n iteration = iterator.next();\n\n if (iteration.value === value) {\n return true;\n }\n } while (!iteration.done);\n\n return false;\n }\n\n keys = Object.keys(data);\n length = keys.length;\n\n for (i = 0; i < length; ++i) {\n if (data[keys[i]] === value) {\n return true;\n }\n }\n\n return false;\n }\n /**\n * Public function `hasLength`.\n *\n * Returns true if `data` has a length property that equals `length`, false\n * otherwise.\n */\n\n\n function hasLength(data, length) {\n return assigned(data) && data.length === length;\n }\n /**\n * Public function `date`.\n *\n * Returns true if `data` is a valid date, false otherwise.\n */\n\n\n function date(data) {\n return instanceStrict(data, Date) && integer(data.getTime());\n }\n /**\n * Public function `function`.\n *\n * Returns true if `data` is a function, false otherwise.\n */\n\n\n function isFunction(data) {\n return typeof data === 'function';\n }\n /**\n * Public function `apply`.\n *\n * Maps each value from the `data` to the corresponding predicate and returns\n * the result array. If the same function is to be applied across all of the\n * data, a single predicate function may be passed in.\n *\n */\n\n\n function apply(data, predicates) {\n assert.array(data);\n\n if (isFunction(predicates)) {\n return data.map(function (value) {\n return predicates(value);\n });\n }\n\n assert.array(predicates);\n assert.hasLength(data, predicates.length);\n return data.map(function (value, index) {\n return predicates[index](value);\n });\n }\n /**\n * Public function `map`.\n *\n * Maps each value from the `data` to the corresponding predicate and returns\n * the result object. Supports nested objects. If the `data` is not nested and\n * the same function is to be applied across all of it, a single predicate\n * function may be passed in.\n *\n */\n\n\n function map(data, predicates) {\n assert.object(data);\n\n if (isFunction(predicates)) {\n return mapSimple(data, predicates);\n }\n\n assert.object(predicates);\n return mapComplex(data, predicates);\n }\n\n function mapSimple(data, predicate) {\n var result = {};\n Object.keys(data).forEach(function (key) {\n result[key] = predicate(data[key]);\n });\n return result;\n }\n\n function mapComplex(data, predicates) {\n var result = {};\n Object.keys(predicates).forEach(function (key) {\n var predicate = predicates[key];\n\n if (isFunction(predicate)) {\n if (not.assigned(data)) {\n result[key] = !!predicate.m;\n } else {\n result[key] = predicate(data[key]);\n }\n } else if (object(predicate)) {\n result[key] = mapComplex(data[key], predicate);\n }\n });\n return result;\n }\n /**\n * Public function `all`\n *\n * Check that all boolean values are true\n * in an array (returned from `apply`)\n * or object (returned from `map`).\n *\n */\n\n\n function all(data) {\n if (array(data)) {\n return testArray(data, false);\n }\n\n assert.object(data);\n return testObject(data, false);\n }\n\n function testArray(data, result) {\n var i;\n\n for (i = 0; i < data.length; i += 1) {\n if (data[i] === result) {\n return result;\n }\n }\n\n return !result;\n }\n\n function testObject(data, result) {\n var key, value;\n\n for (key in data) {\n if (data.hasOwnProperty(key)) {\n value = data[key];\n\n if (object(value) && testObject(value, result) === result) {\n return result;\n }\n\n if (value === result) {\n return result;\n }\n }\n }\n\n return !result;\n }\n /**\n * Public function `any`\n *\n * Check that at least one boolean value is true\n * in an array (returned from `apply`)\n * or object (returned from `map`).\n *\n */\n\n\n function any(data) {\n if (array(data)) {\n return testArray(data, true);\n }\n\n assert.object(data);\n return testObject(data, true);\n }\n\n function mixin(target, source) {\n Object.keys(source).forEach(function (key) {\n target[key] = source[key];\n });\n return target;\n }\n /**\n * Public modifier `assert`.\n *\n * Throws if `predicate` returns false.\n */\n\n\n function assertModifier(predicate, defaultMessage) {\n return function () {\n return assertPredicate(predicate, arguments, defaultMessage);\n };\n }\n\n function assertPredicate(predicate, args, defaultMessage) {\n var argCount = predicate.l || predicate.length;\n var message = args[argCount];\n var ErrorType = args[argCount + 1];\n assertImpl(predicate.apply(null, args), nonEmptyString(message) ? message : defaultMessage, isFunction(ErrorType) ? ErrorType : TypeError);\n return args[0];\n }\n\n function assertImpl(value, message, ErrorType) {\n if (value) {\n return value;\n }\n\n throw new (ErrorType || Error)(message || 'Assertion failed');\n }\n /**\n * Public modifier `not`.\n *\n * Negates `predicate`.\n */\n\n\n function notModifier(predicate) {\n var modifiedPredicate = function modifiedPredicate() {\n return notImpl(predicate.apply(null, arguments));\n };\n\n modifiedPredicate.l = predicate.length;\n return modifiedPredicate;\n }\n\n function notImpl(value) {\n return !value;\n }\n /**\n * Public modifier `maybe`.\n *\n * Returns true if predicate argument is null or undefined,\n * otherwise propagates the return value from `predicate`.\n */\n\n\n function maybeModifier(predicate) {\n var modifiedPredicate = function modifiedPredicate() {\n if (not.assigned(arguments[0])) {\n return true;\n }\n\n return predicate.apply(null, arguments);\n };\n\n modifiedPredicate.l = predicate.length; // Hackishly indicate that this is a maybe.xxx predicate.\n // Without this flag, the alternative would be to iterate\n // through the maybe predicates or use indexOf to check,\n // which would be time-consuming.\n\n modifiedPredicate.m = true;\n return modifiedPredicate;\n }\n\n function maybeImpl(value) {\n if (assigned(value) === false) {\n return true;\n }\n\n return value;\n }\n /**\n * Public modifier `of`.\n *\n * Applies the chained predicate to members of the collection.\n */\n\n\n function ofModifier(target, type, predicate) {\n var modifiedPredicate = function modifiedPredicate() {\n var collection, args;\n collection = arguments[0];\n\n if (target === 'maybe' && not.assigned(collection)) {\n return true;\n }\n\n if (!type(collection)) {\n return false;\n }\n\n collection = coerceCollection(type, collection);\n args = slice.call(arguments, 1);\n\n try {\n collection.forEach(function (item) {\n if ((target !== 'maybe' || assigned(item)) && !predicate.apply(null, [item].concat(args))) {\n // TODO: Replace with for...of when ES6 is required.\n throw 0;\n }\n });\n } catch (ignore) {\n return false;\n }\n\n return true;\n };\n\n modifiedPredicate.l = predicate.length;\n return modifiedPredicate;\n }\n\n function coerceCollection(type, collection) {\n switch (type) {\n case arrayLike:\n return slice.call(collection);\n\n case object:\n return Object.keys(collection).map(function (key) {\n return collection[key];\n });\n\n default:\n return collection;\n }\n }\n\n function createModifiedPredicates(modifier, object) {\n return createModifiedFunctions([modifier, predicates, object]);\n }\n\n function createModifiedFunctions(args) {\n var modifier, object, functions, result;\n modifier = args.shift();\n object = args.pop();\n functions = args.pop();\n result = object || {};\n Object.keys(functions).forEach(function (key) {\n Object.defineProperty(result, key, {\n configurable: false,\n enumerable: true,\n writable: false,\n value: modifier.apply(null, args.concat(functions[key], messages[key]))\n });\n });\n return result;\n }\n\n function createModifiedModifier(modifier, modified) {\n return createModifiedFunctions([modifier, modified, null]);\n }\n\n function createOfPredicates(key) {\n predicates[key].of = createModifiedFunctions([ofModifier.bind(null, null), predicates[key], predicates, null]);\n }\n\n function createOfModifiers(base, modifier) {\n collections.forEach(function (key) {\n base[key].of = createModifiedModifier(modifier, predicates[key].of);\n });\n }\n\n function createMaybeOfModifiers(key) {\n maybe[key].of = createModifiedFunctions([ofModifier.bind(null, 'maybe'), predicates[key], predicates, null]);\n assert.maybe[key].of = createModifiedModifier(assertModifier, maybe[key].of);\n assert.not[key].of = createModifiedModifier(assertModifier, not[key].of);\n }\n\n function exportFunctions(functions) {\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return functions;\n });\n } else if (typeof module !== 'undefined' && module !== null && module.exports) {\n module.exports = functions;\n } else {\n globals.check = functions;\n }\n }\n})(this);","// Copyright 2014 Simon Lydell\n// X11 (“MIT”) Licensed. (See LICENSE.)\nvoid function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(factory);\n } else if (typeof exports === \"object\") {\n module.exports = factory();\n } else {\n root.resolveUrl = factory();\n }\n}(this, function () {\n function resolveUrl()\n /* ...urls */\n {\n var numUrls = arguments.length;\n\n if (numUrls === 0) {\n throw new Error(\"resolveUrl requires at least one argument; got none.\");\n }\n\n var base = document.createElement(\"base\");\n base.href = arguments[0];\n\n if (numUrls === 1) {\n return base.href;\n }\n\n var head = document.getElementsByTagName(\"head\")[0];\n head.insertBefore(base, head.firstChild);\n var a = document.createElement(\"a\");\n var resolved;\n\n for (var index = 1; index < numUrls; index++) {\n a.href = arguments[index];\n resolved = a.href;\n base.href = resolved;\n }\n\n head.removeChild(base);\n return resolved;\n }\n\n return resolveUrl;\n});","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/esm/extends\"));\n\n/**\n *\n * Tesseract Worker adapter for browser\n *\n * @fileoverview Tesseract Worker adapter for browser\n * @author Kevin Kwok <antimatter15@gmail.com>\n * @author Guillermo Webster <gui@mit.edu>\n * @author Jerome Wu <jeromewus@gmail.com>\n */\nvar check = require('check-types');\n\nvar resolveURL = require('resolve-url');\n\nvar axios = require('axios');\n\nvar b64toU8Array = require('./b64toU8Array');\n\nvar _require = require('../common/options'),\n defaultOptions = _require.defaultOptions;\n\nvar _require2 = require('../../package.json'),\n version = _require2.version;\n/**\n * readFromBlobOrFile\n *\n * @name readFromBlobOrFile\n * @function\n * @access private\n * @param {object} blob A blob or file objec to read\n * @param {function} res callback function after reading completes\n */\n\n\nvar readFromBlobOrFile = function readFromBlobOrFile(blob, res) {\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n res(fileReader.result);\n };\n\n fileReader.readAsArrayBuffer(blob);\n};\n/**\n * loadImage\n *\n * @name loadImage\n * @function load image from different source\n * @access private\n * @param {string, object} image - image source, supported formats:\n * string: URL string, can be relative path\n * string: base64 image\n * img HTMLElement: extract image source from src attribute\n * video HTMLElement: extract image source from poster attribute\n * canvas HTMLElement: extract image data by converting to Blob\n * File instance: data from <input type=\"file\" />\n * @returns {array} binary image in array format\n */\n\n\nvar loadImage = function loadImage(image) {\n if (check.string(image)) {\n // Base64 Image\n if (/data:image\\/([a-zA-Z]*);base64,([^\"]*)/.test(image)) {\n return Promise.resolve(b64toU8Array(image.split(',')[1]));\n } // Image URL\n\n\n return axios.get(resolveURL(image), {\n responseType: 'arraybuffer'\n }).then(function (resp) {\n return resp.data;\n });\n }\n\n if (check.instance(image, HTMLElement)) {\n if (image.tagName === 'IMG') {\n return loadImage(image.src);\n }\n\n if (image.tagName === 'VIDEO') {\n return loadImage(image.poster);\n }\n\n if (image.tagName === 'CANVAS') {\n return new Promise(function (res) {\n image.toBlob(function (blob) {\n readFromBlobOrFile(blob, res);\n });\n });\n }\n }\n\n if (check.instance(image, File) || check.instance(image, Blob)) {\n return new Promise(function (res) {\n readFromBlobOrFile(image, res);\n });\n }\n\n return Promise.reject();\n};\n\nvar downloadFile = function downloadFile(path, blob) {\n if (navigator.msSaveBlob) {\n // IE 10+\n navigator.msSaveBlob(blob, path);\n } else {\n var link = document.createElement('a'); // Browsers that support HTML5 download attribute\n\n if (link.download !== undefined) {\n var url = URL.createObjectURL(blob);\n link.setAttribute('href', url);\n link.setAttribute('download', path);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n};\n/*\n * Default options for browser worker\n */\n\n\nexports.defaultOptions = (0, _extends2.default)({}, defaultOptions, {\n workerPath: typeof process !== 'undefined' && process.env.TESS_ENV === 'development' ? resolveURL(\"/dist/worker.dev.js?nocache=\" + Math.random().toString(36).slice(3)) : \"https://unpkg.com/tesseract.js@v\" + version + \"/dist/worker.min.js\",\n\n /*\n * If browser doesn't support WebAssembly,\n * load ASM version instead\n */\n corePath: \"https://unpkg.com/tesseract.js-core@v2.0.0-beta.10/tesseract-core.\" + (typeof WebAssembly === 'object' ? 'wasm' : 'asm') + \".js\"\n});\n/**\n * spawnWorker\n *\n * @name spawnWorker\n * @function create a new Worker in browser\n * @access public\n * @param {object} instance - TesseractWorker instance\n * @param {object} options\n * @param {string} options.workerPath - worker script path\n * @param {boolean} options.workerBlobURL - Use a blob:// URL for the worker script\n */\n\nexports.spawnWorker = function (instance, _ref) {\n var workerPath = _ref.workerPath,\n workerBlobURL = _ref.workerBlobURL;\n var worker;\n\n if (Blob && URL && workerBlobURL) {\n var blob = new Blob([\"importScripts(\\\"\" + workerPath + \"\\\");\"], {\n type: 'application/javascript'\n });\n worker = new Worker(URL.createObjectURL(blob));\n } else {\n worker = new Worker(workerPath);\n }\n\n worker.onmessage = function (_ref2) {\n var data = _ref2.data;\n\n if (data.jobId.startsWith('Job')) {\n instance.recv(data);\n } else if (data.jobId.startsWith('Download')) {\n var path = data.path,\n d = data.data,\n type = data.type;\n\n var _blob = new Blob([d], {\n type: type\n });\n\n downloadFile(path, _blob);\n }\n };\n\n return worker;\n};\n/**\n * terminateWorker\n *\n * @name terminateWorker\n * @function terminate worker\n * @access public\n * @param {object} instance TesseractWorker instance\n */\n\n\nexports.terminateWorker = function (instance) {\n instance.worker.terminate();\n};\n/**\n * sendPacket\n *\n * @name sendPacket\n * @function send packet to worker and create a job\n * @access public\n * @param {object} instance TesseractWorker instance\n * @param {object} iPacket data for worker\n */\n\n\nexports.sendPacket = function (instance, iPacket) {\n var packet = (0, _extends2.default)({}, iPacket);\n loadImage(packet.payload.image).then(function (buf) {\n return new Uint8Array(buf);\n }).then(function (img) {\n packet.payload.image = Array.from(img);\n instance.worker.postMessage(packet);\n });\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout; // Listen for ready state\n\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\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\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\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(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\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\n\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies'); // Add xsrf header\n\n\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (config.withCredentials) {\n request.withCredentials = true;\n } // Add responseType to request if needed\n\n\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\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 {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","\"use strict\";\n\nmodule.exports = {\n /*\n * OEM = OCR Engine Mode, and there are 5 possible modes.\n *\n * By default tesseract.js uses TESSERACT_LSTM_COMBINED mode, which uses LSTM when possible.\n * If you need to use some tesseract v3 features (like tessedit_char_whitelist),\n * you need to use TESSERACT_ONLY mode.\n *\n */\n OEM: {\n TESSERACT_ONLY: 0,\n LSTM_ONLY: 1,\n TESSERACT_LSTM_COMBINED: 2,\n DEFAULT: 3\n },\n\n /*\n * PSM = Page Segmentation Mode\n */\n PSM: {\n OSD_ONLY: '0',\n AUTO_OSD: '1',\n AUTO_ONLY: '2',\n AUTO: '3',\n SINGLE_COLUMN: '4',\n SINGLE_BLOCK_VERT_TEXT: '5',\n SINGLE_BLOCK: '6',\n SINGLE_LINE: '7',\n SINGLE_WORD: '8',\n SINGLE_CHAR: '9',\n SPARSE_TEXT: '10',\n SPARSE_TEXT_OSD: '11',\n RAW_LINE: '12'\n }\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/esm/extends\"));\n\nvar cache = require('./common/browser/cache');\n\nmodule.exports = {\n loadLang: require('./loadLang')((0, _extends2.default)({\n gunzip: require('./common/browser/gunzip')\n }, cache)),\n readImage: require('./readImage'),\n cache: cache\n};","\"use strict\";\n\nvar _require = require('idb-keyval'),\n set = _require.set,\n get = _require.get,\n del = _require.del;\n\nmodule.exports = {\n readCache: get,\n writeCache: set,\n deleteCache: del,\n checkCache: function checkCache(path) {\n return get(path).then(function (v) {\n return typeof v !== 'undefined';\n });\n }\n};","var Store = /*#__PURE__*/function () {\n function Store(dbName, storeName) {\n if (dbName === void 0) {\n dbName = 'keyval-store';\n }\n\n if (storeName === void 0) {\n storeName = 'keyval';\n }\n\n this.storeName = storeName;\n this._dbp = new Promise(function (resolve, reject) {\n var openreq = indexedDB.open(dbName, 1);\n\n openreq.onerror = function () {\n return reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n return resolve(openreq.result);\n }; // First time setup: create an empty object store\n\n\n openreq.onupgradeneeded = function () {\n openreq.result.createObjectStore(storeName);\n };\n });\n }\n\n var _proto = Store.prototype;\n\n _proto._withIDBStore = function _withIDBStore(type, callback) {\n var _this = this;\n\n return this._dbp.then(function (db) {\n return new Promise(function (resolve, reject) {\n var transaction = db.transaction(_this.storeName, type);\n\n transaction.oncomplete = function () {\n return resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n return reject(transaction.error);\n };\n\n callback(transaction.objectStore(_this.storeName));\n });\n });\n };\n\n return Store;\n}();\n\nvar store;\n\nfunction getDefaultStore() {\n if (!store) store = new Store();\n return store;\n}\n\nfunction get(key, store) {\n if (store === void 0) {\n store = getDefaultStore();\n }\n\n var req;\n return store._withIDBStore('readonly', function (store) {\n req = store.get(key);\n }).then(function () {\n return req.result;\n });\n}\n\nfunction set(key, value, store) {\n if (store === void 0) {\n store = getDefaultStore();\n }\n\n return store._withIDBStore('readwrite', function (store) {\n store.put(value, key);\n });\n}\n\nfunction del(key, store) {\n if (store === void 0) {\n store = getDefaultStore();\n }\n\n return store._withIDBStore('readwrite', function (store) {\n store.delete(key);\n });\n}\n\nfunction clear(store) {\n if (store === void 0) {\n store = getDefaultStore();\n }\n\n return store._withIDBStore('readwrite', function (store) {\n store.clear();\n });\n}\n\nfunction keys(store) {\n if (store === void 0) {\n store = getDefaultStore();\n }\n\n var keys = [];\n return store._withIDBStore('readonly', function (store) {\n // This would be store.getAllKeys(), but it isn't supported by Edge or Safari.\n // And openKeyCursor isn't supported by Safari.\n (store.openKeyCursor || store.openCursor).call(store).onsuccess = function () {\n if (!this.result) return;\n keys.push(this.result.key);\n this.result.continue();\n };\n }).then(function () {\n return keys;\n });\n}\n\nexport { Store, get, set, del, clear, keys };","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/esm/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\"));\n\nvar isURL = require('is-url');\n\nvar fileType = require('file-type');\n\nvar axios = require('axios');\n\nvar handleLang = function handleLang(modules) {\n return function (_ref) {\n var TessModule = _ref.TessModule,\n dataPath = _ref.dataPath,\n cachePath = _ref.cachePath,\n cacheMethod = _ref.cacheMethod,\n langCode = _ref.langCode;\n return function (data) {\n if (TessModule) {\n if (dataPath) {\n try {\n TessModule.FS.mkdir(dataPath);\n } catch (err) {// TODO: Do some error handling here.\n }\n }\n\n TessModule.FS.writeFile((dataPath || '.') + \"/\" + langCode + \".traineddata\", data);\n }\n\n if (['write', 'refresh', undefined].includes(cacheMethod)) {\n return modules.writeCache((cachePath || '.') + \"/\" + langCode + \".traineddata\", data).then(function () {\n return data;\n });\n }\n\n return data;\n };\n };\n};\n\nvar loadAndGunzipFile = function loadAndGunzipFile(modules) {\n return function (_ref2) {\n var langPath = _ref2.langPath,\n cachePath = _ref2.cachePath,\n cacheMethod = _ref2.cacheMethod,\n _ref2$gzip = _ref2.gzip,\n gzip = _ref2$gzip === void 0 ? true : _ref2$gzip,\n options = (0, _objectWithoutPropertiesLoose2.default)(_ref2, [\"langPath\", \"cachePath\", \"cacheMethod\", \"gzip\"]);\n return function (lang) {\n var langCode = typeof lang === 'string' ? lang : lang.code;\n\n var handleTraineddata = function handleTraineddata(data) {\n var type = fileType(data);\n\n if (type !== null && type.mime === 'application/gzip') {\n return modules.gunzip(new Uint8Array(data));\n }\n\n return new Uint8Array(data);\n };\n\n var doHandleLang = handleLang(modules)((0, _extends2.default)({\n cachePath: cachePath,\n cacheMethod: cacheMethod,\n langCode: langCode\n }, options));\n var readCache = modules.readCache;\n\n if (['refresh', 'none'].includes(cacheMethod)) {\n readCache = function readCache() {\n return Promise.resolve();\n };\n }\n\n return readCache((cachePath || '.') + \"/\" + langCode + \".traineddata\").then(function (data) {\n if (typeof data === 'undefined') {\n return Promise.reject();\n }\n\n return doHandleLang(data);\n })\n /*\n * If not found in the cache\n */\n .catch(function () {\n if (typeof lang === 'string') {\n var fetchTrainedData = function fetchTrainedData(iLangPath) {\n return axios.get(iLangPath + \"/\" + langCode + \".traineddata\" + (gzip ? '.gz' : ''), {\n responseType: 'arraybuffer'\n }).then(function (_ref3) {\n var data = _ref3.data;\n return new Uint8Array(data);\n }).then(handleTraineddata).then(doHandleLang);\n };\n /** When langPath is an URL, just do the fetch */\n\n\n if (isURL(langPath) || langPath.startsWith('chrome-extension://')\n /* for chrome extensions */\n ) {\n return fetchTrainedData(langPath);\n }\n /** When langPath is not an URL in Node.js environment */\n\n\n return modules.readCache(langPath + \"/\" + langCode + \".traineddata\" + (gzip ? '.gz' : '')).then(handleTraineddata).then(doHandleLang);\n }\n\n return Promise.resolve(lang.data).then(handleTraineddata).then(doHandleLang);\n });\n };\n };\n};\n/**\n *\n * @name loadLang\n * @function load language(s) from local cache, download from remote if not in cache.\n * @param {object} options\n * @param {array} options.langs -\n * langs to load.\n * Each item in the array can be string (ex. 'eng') or object like:\n * {\n * code: 'eng',\n * gzip: false,\n * data: Uint8Array\n * }\n * @param {object} options.TessModule - TesseractModule\n * @param {string} options.langPath - prefix path for downloading lang file\n * @param {string} options.cachePath - path to find cache\n * @param {string} options.dataPath - path to store data in mem\n * @param {boolean} options.gzip -\n * indicate whether to download gzip version from remote, default: true\n * @param {string} options.cacheMethod -\n * method of cache invaliation, should one of following options:\n * write: read cache and write back (default method)\n * readOnly: read cache and not to write back\n * refresh: not to read cache and write back\n * none: not to read cache and not to write back\n *\n */\n\n\nmodule.exports = function (modules) {\n return function (_ref4) {\n var langs = _ref4.langs,\n options = (0, _objectWithoutPropertiesLoose2.default)(_ref4, [\"langs\"]);\n return Promise.all((typeof langs === 'string' ? langs.split('+') : langs).map(loadAndGunzipFile(modules)(options)));\n };\n};","\"use strict\";\n\n/**\n * Expose `isUrl`.\n */\nmodule.exports = isUrl;\n/**\n * RegExps.\n * A URL must match #1 and then at least one of #2/#3.\n * Use two levels of REs to avoid REDOS.\n */\n\nvar protocolAndDomainRE = /^(?:\\w+:)?\\/\\/(\\S+)$/;\nvar localhostDomainRE = /^localhost[\\:?\\d]*(?:[^\\:?\\d]\\S*)?$/;\nvar nonLocalhostDomainRE = /^[^\\s\\.]+\\.\\S{2,}$/;\n/**\n * Loosely validate a URL `string`.\n *\n * @param {String} string\n * @return {Boolean}\n */\n\nfunction isUrl(string) {\n if (typeof string !== 'string') {\n return false;\n }\n\n var match = string.match(protocolAndDomainRE);\n\n if (!match) {\n return false;\n }\n\n var everythingAfterProtocol = match[1];\n\n if (!everythingAfterProtocol) {\n return false;\n }\n\n if (localhostDomainRE.test(everythingAfterProtocol) || nonLocalhostDomainRE.test(everythingAfterProtocol)) {\n return true;\n }\n\n return false;\n}","\"use strict\";\n\nmodule.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\n\nvar defaults = require('./../defaults');\n\nvar utils = require('./../utils');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {\n method: 'get'\n }, this.defaults, config);\n config.method = config.method.toLowerCase(); // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n}; // Provide aliases for supported request methods\n\n\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(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\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\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus; // Note: status is not exposed by XDomainRequest\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n return error;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\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 * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\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} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // 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.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var 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); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\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) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\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\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\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\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\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\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\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 * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = 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};","'use strict';\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 * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\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 * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","\"use strict\";\n\nmodule.exports = require('zlibjs').gunzipSync;","/** @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License */\n(function () {\n 'use strict';\n\n function q(b) {\n throw b;\n }\n\n var t = void 0,\n v = !0;\n var B = \"undefined\" !== typeof Uint8Array && \"undefined\" !== typeof Uint16Array && \"undefined\" !== typeof Uint32Array && \"undefined\" !== typeof DataView;\n\n function G(b, a) {\n this.index = \"number\" === typeof a ? a : 0;\n this.m = 0;\n this.buffer = b instanceof (B ? Uint8Array : Array) ? b : new (B ? Uint8Array : Array)(32768);\n 2 * this.buffer.length <= this.index && q(Error(\"invalid index\"));\n this.buffer.length <= this.index && this.f();\n }\n\n G.prototype.f = function () {\n var b = this.buffer,\n a,\n c = b.length,\n d = new (B ? Uint8Array : Array)(c << 1);\n if (B) d.set(b);else for (a = 0; a < c; ++a) {\n d[a] = b[a];\n }\n return this.buffer = d;\n };\n\n G.prototype.d = function (b, a, c) {\n var d = this.buffer,\n e = this.index,\n f = this.m,\n g = d[e],\n k;\n c && 1 < a && (b = 8 < a ? (I[b & 255] << 24 | I[b >>> 8 & 255] << 16 | I[b >>> 16 & 255] << 8 | I[b >>> 24 & 255]) >> 32 - a : I[b] >> 8 - a);\n if (8 > a + f) g = g << a | b, f += a;else for (k = 0; k < a; ++k) {\n g = g << 1 | b >> a - k - 1 & 1, 8 === ++f && (f = 0, d[e++] = I[g], g = 0, e === d.length && (d = this.f()));\n }\n d[e] = g;\n this.buffer = d;\n this.m = f;\n this.index = e;\n };\n\n G.prototype.finish = function () {\n var b = this.buffer,\n a = this.index,\n c;\n 0 < this.m && (b[a] <<= 8 - this.m, b[a] = I[b[a]], a++);\n B ? c = b.subarray(0, a) : (b.length = a, c = b);\n return c;\n };\n\n var aa = new (B ? Uint8Array : Array)(256),\n L;\n\n for (L = 0; 256 > L; ++L) {\n for (var R = L, ba = R, ca = 7, R = R >>> 1; R; R >>>= 1) {\n ba <<= 1, ba |= R & 1, --ca;\n }\n\n aa[L] = (ba << ca & 255) >>> 0;\n }\n\n var I = aa;\n\n function ha(b, a, c) {\n var d,\n e = \"number\" === typeof a ? a : a = 0,\n f = \"number\" === typeof c ? c : b.length;\n d = -1;\n\n for (e = f & 7; e--; ++a) {\n d = d >>> 8 ^ S[(d ^ b[a]) & 255];\n }\n\n for (e = f >> 3; e--; a += 8) {\n d = d >>> 8 ^ S[(d ^ b[a]) & 255], d = d >>> 8 ^ S[(d ^ b[a + 1]) & 255], d = d >>> 8 ^ S[(d ^ b[a + 2]) & 255], d = d >>> 8 ^ S[(d ^ b[a + 3]) & 255], d = d >>> 8 ^ S[(d ^ b[a + 4]) & 255], d = d >>> 8 ^ S[(d ^ b[a + 5]) & 255], d = d >>> 8 ^ S[(d ^ b[a + 6]) & 255], d = d >>> 8 ^ S[(d ^ b[a + 7]) & 255];\n }\n\n return (d ^ 4294967295) >>> 0;\n }\n\n var ia = [0, 1996959894, 3993919788, 2567524794, 124634137, 1886057615, 3915621685, 2657392035, 249268274, 2044508324, 3772115230, 2547177864, 162941995, 2125561021, 3887607047, 2428444049, 498536548, 1789927666, 4089016648, 2227061214, 450548861, 1843258603, 4107580753, 2211677639, 325883990, 1684777152, 4251122042, 2321926636, 335633487, 1661365465, 4195302755, 2366115317, 997073096, 1281953886, 3579855332, 2724688242, 1006888145, 1258607687, 3524101629, 2768942443, 901097722, 1119000684, 3686517206, 2898065728, 853044451, 1172266101, 3705015759, 2882616665, 651767980, 1373503546, 3369554304, 3218104598, 565507253, 1454621731, 3485111705, 3099436303, 671266974, 1594198024, 3322730930, 2970347812, 795835527, 1483230225, 3244367275, 3060149565, 1994146192, 31158534, 2563907772, 4023717930, 1907459465, 112637215, 2680153253, 3904427059, 2013776290, 251722036, 2517215374, 3775830040, 2137656763, 141376813, 2439277719, 3865271297, 1802195444, 476864866, 2238001368, 4066508878, 1812370925, 453092731, 2181625025, 4111451223, 1706088902, 314042704, 2344532202, 4240017532, 1658658271, 366619977, 2362670323, 4224994405, 1303535960, 984961486, 2747007092, 3569037538, 1256170817, 1037604311, 2765210733, 3554079995, 1131014506, 879679996, 2909243462, 3663771856, 1141124467, 855842277, 2852801631, 3708648649, 1342533948, 654459306, 3188396048, 3373015174, 1466479909, 544179635, 3110523913, 3462522015, 1591671054, 702138776, 2966460450, 3352799412, 1504918807, 783551873, 3082640443, 3233442989, 3988292384, 2596254646, 62317068, 1957810842, 3939845945, 2647816111, 81470997, 1943803523, 3814918930, 2489596804, 225274430, 2053790376, 3826175755, 2466906013, 167816743, 2097651377, 4027552580, 2265490386, 503444072, 1762050814, 4150417245, 2154129355, 426522225, 1852507879, 4275313526, 2312317920, 282753626, 1742555852, 4189708143, 2394877945, 397917763, 1622183637, 3604390888, 2714866558, 953729732, 1340076626, 3518719985, 2797360999, 1068828381, 1219638859, 3624741850, 2936675148, 906185462, 1090812512, 3747672003, 2825379669, 829329135, 1181335161, 3412177804, 3160834842, 628085408, 1382605366, 3423369109, 3138078467, 570562233, 1426400815, 3317316542, 2998733608, 733239954, 1555261956, 3268935591, 3050360625, 752459403, 1541320221, 2607071920, 3965973030, 1969922972, 40735498, 2617837225, 3943577151, 1913087877, 83908371, 2512341634, 3803740692, 2075208622, 213261112, 2463272603, 3855990285, 2094854071, 198958881, 2262029012, 4057260610, 1759359992, 534414190, 2176718541, 4139329115, 1873836001, 414664567, 2282248934, 4279200368, 1711684554, 285281116, 2405801727, 4167216745, 1634467795, 376229701, 2685067896, 3608007406, 1308918612, 956543938, 2808555105, 3495958263, 1231636301, 1047427035, 2932959818, 3654703836, 1088359270, 936918E3, 2847714899, 3736837829, 1202900863, 817233897, 3183342108, 3401237130, 1404277552, 615818150, 3134207493, 3453421203, 1423857449, 601450431, 3009837614, 3294710456, 1567103746, 711928724, 3020668471, 3272380065, 1510334235, 755167117],\n S = B ? new Uint32Array(ia) : ia;\n\n function ja() {}\n\n ;\n\n function ka(b) {\n this.buffer = new (B ? Uint16Array : Array)(2 * b);\n this.length = 0;\n }\n\n ka.prototype.getParent = function (b) {\n return 2 * ((b - 2) / 4 | 0);\n };\n\n ka.prototype.push = function (b, a) {\n var c,\n d,\n e = this.buffer,\n f;\n c = this.length;\n e[this.length++] = a;\n\n for (e[this.length++] = b; 0 < c;) {\n if (d = this.getParent(c), e[c] > e[d]) f = e[c], e[c] = e[d], e[d] = f, f = e[c + 1], e[c + 1] = e[d + 1], e[d + 1] = f, c = d;else break;\n }\n\n return this.length;\n };\n\n ka.prototype.pop = function () {\n var b,\n a,\n c = this.buffer,\n d,\n e,\n f;\n a = c[0];\n b = c[1];\n this.length -= 2;\n c[0] = c[this.length];\n c[1] = c[this.length + 1];\n\n for (f = 0;;) {\n e = 2 * f + 2;\n if (e >= this.length) break;\n e + 2 < this.length && c[e + 2] > c[e] && (e += 2);\n if (c[e] > c[f]) d = c[f], c[f] = c[e], c[e] = d, d = c[f + 1], c[f + 1] = c[e + 1], c[e + 1] = d;else break;\n f = e;\n }\n\n return {\n index: b,\n value: a,\n length: this.length\n };\n };\n\n function T(b) {\n var a = b.length,\n c = 0,\n d = Number.POSITIVE_INFINITY,\n e,\n f,\n g,\n k,\n h,\n m,\n r,\n p,\n l,\n n;\n\n for (p = 0; p < a; ++p) {\n b[p] > c && (c = b[p]), b[p] < d && (d = b[p]);\n }\n\n e = 1 << c;\n f = new (B ? Uint32Array : Array)(e);\n g = 1;\n k = 0;\n\n for (h = 2; g <= c;) {\n for (p = 0; p < a; ++p) {\n if (b[p] === g) {\n m = 0;\n r = k;\n\n for (l = 0; l < g; ++l) {\n m = m << 1 | r & 1, r >>= 1;\n }\n\n n = g << 16 | p;\n\n for (l = m; l < e; l += h) {\n f[l] = n;\n }\n\n ++k;\n }\n }\n\n ++g;\n k <<= 1;\n h <<= 1;\n }\n\n return [f, c, d];\n }\n\n ;\n\n function na(b, a) {\n this.k = oa;\n this.F = 0;\n this.input = B && b instanceof Array ? new Uint8Array(b) : b;\n this.b = 0;\n a && (a.lazy && (this.F = a.lazy), \"number\" === typeof a.compressionType && (this.k = a.compressionType), a.outputBuffer && (this.a = B && a.outputBuffer instanceof Array ? new Uint8Array(a.outputBuffer) : a.outputBuffer), \"number\" === typeof a.outputIndex && (this.b = a.outputIndex));\n this.a || (this.a = new (B ? Uint8Array : Array)(32768));\n }\n\n var oa = 2,\n pa = {\n NONE: 0,\n L: 1,\n t: oa,\n X: 3\n },\n qa = [],\n U;\n\n for (U = 0; 288 > U; U++) {\n switch (v) {\n case 143 >= U:\n qa.push([U + 48, 8]);\n break;\n\n case 255 >= U:\n qa.push([U - 144 + 400, 9]);\n break;\n\n case 279 >= U:\n qa.push([U - 256 + 0, 7]);\n break;\n\n case 287 >= U:\n qa.push([U - 280 + 192, 8]);\n break;\n\n default:\n q(\"invalid literal: \" + U);\n }\n }\n\n na.prototype.h = function () {\n var b,\n a,\n c,\n d,\n e = this.input;\n\n switch (this.k) {\n case 0:\n c = 0;\n\n for (d = e.length; c < d;) {\n a = B ? e.subarray(c, c + 65535) : e.slice(c, c + 65535);\n c += a.length;\n var f = a,\n g = c === d,\n k = t,\n h = t,\n m = t,\n r = t,\n p = t,\n l = this.a,\n n = this.b;\n\n if (B) {\n for (l = new Uint8Array(this.a.buffer); l.length <= n + f.length + 5;) {\n l = new Uint8Array(l.length << 1);\n }\n\n l.set(this.a);\n }\n\n k = g ? 1 : 0;\n l[n++] = k | 0;\n h = f.length;\n m = ~h + 65536 & 65535;\n l[n++] = h & 255;\n l[n++] = h >>> 8 & 255;\n l[n++] = m & 255;\n l[n++] = m >>> 8 & 255;\n if (B) l.set(f, n), n += f.length, l = l.subarray(0, n);else {\n r = 0;\n\n for (p = f.length; r < p; ++r) {\n l[n++] = f[r];\n }\n\n l.length = n;\n }\n this.b = n;\n this.a = l;\n }\n\n break;\n\n case 1:\n var s = new G(B ? new Uint8Array(this.a.buffer) : this.a, this.b);\n s.d(1, 1, v);\n s.d(1, 2, v);\n var u = ra(this, e),\n w,\n C,\n x;\n w = 0;\n\n for (C = u.length; w < C; w++) {\n if (x = u[w], G.prototype.d.apply(s, qa[x]), 256 < x) s.d(u[++w], u[++w], v), s.d(u[++w], 5), s.d(u[++w], u[++w], v);else if (256 === x) break;\n }\n\n this.a = s.finish();\n this.b = this.a.length;\n break;\n\n case oa:\n var D = new G(B ? new Uint8Array(this.a.buffer) : this.a, this.b),\n M,\n z,\n N,\n X,\n Y,\n qb = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],\n da,\n Fa,\n ea,\n Ga,\n la,\n ta = Array(19),\n Ha,\n Z,\n ma,\n E,\n Ia;\n M = oa;\n D.d(1, 1, v);\n D.d(M, 2, v);\n z = ra(this, e);\n da = sa(this.U, 15);\n Fa = ua(da);\n ea = sa(this.T, 7);\n Ga = ua(ea);\n\n for (N = 286; 257 < N && 0 === da[N - 1]; N--) {\n ;\n }\n\n for (X = 30; 1 < X && 0 === ea[X - 1]; X--) {\n ;\n }\n\n var Ja = N,\n Ka = X,\n K = new (B ? Uint32Array : Array)(Ja + Ka),\n y,\n O,\n A,\n fa,\n J = new (B ? Uint32Array : Array)(316),\n H,\n F,\n P = new (B ? Uint8Array : Array)(19);\n\n for (y = O = 0; y < Ja; y++) {\n K[O++] = da[y];\n }\n\n for (y = 0; y < Ka; y++) {\n K[O++] = ea[y];\n }\n\n if (!B) {\n y = 0;\n\n for (fa = P.length; y < fa; ++y) {\n P[y] = 0;\n }\n }\n\n y = H = 0;\n\n for (fa = K.length; y < fa; y += O) {\n for (O = 1; y + O < fa && K[y + O] === K[y]; ++O) {\n ;\n }\n\n A = O;\n if (0 === K[y]) {\n if (3 > A) for (; 0 < A--;) {\n J[H++] = 0, P[0]++;\n } else for (; 0 < A;) {\n F = 138 > A ? A : 138, F > A - 3 && F < A && (F = A - 3), 10 >= F ? (J[H++] = 17, J[H++] = F - 3, P[17]++) : (J[H++] = 18, J[H++] = F - 11, P[18]++), A -= F;\n }\n } else if (J[H++] = K[y], P[K[y]]++, A--, 3 > A) for (; 0 < A--;) {\n J[H++] = K[y], P[K[y]]++;\n } else for (; 0 < A;) {\n F = 6 > A ? A : 6, F > A - 3 && F < A && (F = A - 3), J[H++] = 16, J[H++] = F - 3, P[16]++, A -= F;\n }\n }\n\n b = B ? J.subarray(0, H) : J.slice(0, H);\n la = sa(P, 7);\n\n for (E = 0; 19 > E; E++) {\n ta[E] = la[qb[E]];\n }\n\n for (Y = 19; 4 < Y && 0 === ta[Y - 1]; Y--) {\n ;\n }\n\n Ha = ua(la);\n D.d(N - 257, 5, v);\n D.d(X - 1, 5, v);\n D.d(Y - 4, 4, v);\n\n for (E = 0; E < Y; E++) {\n D.d(ta[E], 3, v);\n }\n\n E = 0;\n\n for (Ia = b.length; E < Ia; E++) {\n if (Z = b[E], D.d(Ha[Z], la[Z], v), 16 <= Z) {\n E++;\n\n switch (Z) {\n case 16:\n ma = 2;\n break;\n\n case 17:\n ma = 3;\n break;\n\n case 18:\n ma = 7;\n break;\n\n default:\n q(\"invalid code: \" + Z);\n }\n\n D.d(b[E], ma, v);\n }\n }\n\n var La = [Fa, da],\n Ma = [Ga, ea],\n Q,\n Na,\n ga,\n wa,\n Oa,\n Pa,\n Qa,\n Ra;\n Oa = La[0];\n Pa = La[1];\n Qa = Ma[0];\n Ra = Ma[1];\n Q = 0;\n\n for (Na = z.length; Q < Na; ++Q) {\n if (ga = z[Q], D.d(Oa[ga], Pa[ga], v), 256 < ga) D.d(z[++Q], z[++Q], v), wa = z[++Q], D.d(Qa[wa], Ra[wa], v), D.d(z[++Q], z[++Q], v);else if (256 === ga) break;\n }\n\n this.a = D.finish();\n this.b = this.a.length;\n break;\n\n default:\n q(\"invalid compression type\");\n }\n\n return this.a;\n };\n\n function va(b, a) {\n this.length = b;\n this.N = a;\n }\n\n var xa = function () {\n function b(a) {\n switch (v) {\n case 3 === a:\n return [257, a - 3, 0];\n\n case 4 === a:\n return [258, a - 4, 0];\n\n case 5 === a:\n return [259, a - 5, 0];\n\n case 6 === a:\n return [260, a - 6, 0];\n\n case 7 === a:\n return [261, a - 7, 0];\n\n case 8 === a:\n return [262, a - 8, 0];\n\n case 9 === a:\n return [263, a - 9, 0];\n\n case 10 === a:\n return [264, a - 10, 0];\n\n case 12 >= a:\n return [265, a - 11, 1];\n\n case 14 >= a:\n return [266, a - 13, 1];\n\n case 16 >= a:\n return [267, a - 15, 1];\n\n case 18 >= a:\n return [268, a - 17, 1];\n\n case 22 >= a:\n return [269, a - 19, 2];\n\n case 26 >= a:\n return [270, a - 23, 2];\n\n case 30 >= a:\n return [271, a - 27, 2];\n\n case 34 >= a:\n return [272, a - 31, 2];\n\n case 42 >= a:\n return [273, a - 35, 3];\n\n case 50 >= a:\n return [274, a - 43, 3];\n\n case 58 >= a:\n return [275, a - 51, 3];\n\n case 66 >= a:\n return [276, a - 59, 3];\n\n case 82 >= a:\n return [277, a - 67, 4];\n\n case 98 >= a:\n return [278, a - 83, 4];\n\n case 114 >= a:\n return [279, a - 99, 4];\n\n case 130 >= a:\n return [280, a - 115, 4];\n\n case 162 >= a:\n return [281, a - 131, 5];\n\n case 194 >= a:\n return [282, a - 163, 5];\n\n case 226 >= a:\n return [283, a - 195, 5];\n\n case 257 >= a:\n return [284, a - 227, 5];\n\n case 258 === a:\n return [285, a - 258, 0];\n\n default:\n q(\"invalid length: \" + a);\n }\n }\n\n var a = [],\n c,\n d;\n\n for (c = 3; 258 >= c; c++) {\n d = b(c), a[c] = d[2] << 24 | d[1] << 16 | d[0];\n }\n\n return a;\n }(),\n ya = B ? new Uint32Array(xa) : xa;\n\n function ra(b, a) {\n function c(a, c) {\n var b = a.N,\n d = [],\n f = 0,\n e;\n e = ya[a.length];\n d[f++] = e & 65535;\n d[f++] = e >> 16 & 255;\n d[f++] = e >> 24;\n var g;\n\n switch (v) {\n case 1 === b:\n g = [0, b - 1, 0];\n break;\n\n case 2 === b:\n g = [1, b - 2, 0];\n break;\n\n case 3 === b:\n g = [2, b - 3, 0];\n break;\n\n case 4 === b:\n g = [3, b - 4, 0];\n break;\n\n case 6 >= b:\n g = [4, b - 5, 1];\n break;\n\n case 8 >= b:\n g = [5, b - 7, 1];\n break;\n\n case 12 >= b:\n g = [6, b - 9, 2];\n break;\n\n case 16 >= b:\n g = [7, b - 13, 2];\n break;\n\n case 24 >= b:\n g = [8, b - 17, 3];\n break;\n\n case 32 >= b:\n g = [9, b - 25, 3];\n break;\n\n case 48 >= b:\n g = [10, b - 33, 4];\n break;\n\n case 64 >= b:\n g = [11, b - 49, 4];\n break;\n\n case 96 >= b:\n g = [12, b - 65, 5];\n break;\n\n case 128 >= b:\n g = [13, b - 97, 5];\n break;\n\n case 192 >= b:\n g = [14, b - 129, 6];\n break;\n\n case 256 >= b:\n g = [15, b - 193, 6];\n break;\n\n case 384 >= b:\n g = [16, b - 257, 7];\n break;\n\n case 512 >= b:\n g = [17, b - 385, 7];\n break;\n\n case 768 >= b:\n g = [18, b - 513, 8];\n break;\n\n case 1024 >= b:\n g = [19, b - 769, 8];\n break;\n\n case 1536 >= b:\n g = [20, b - 1025, 9];\n break;\n\n case 2048 >= b:\n g = [21, b - 1537, 9];\n break;\n\n case 3072 >= b:\n g = [22, b - 2049, 10];\n break;\n\n case 4096 >= b:\n g = [23, b - 3073, 10];\n break;\n\n case 6144 >= b:\n g = [24, b - 4097, 11];\n break;\n\n case 8192 >= b:\n g = [25, b - 6145, 11];\n break;\n\n case 12288 >= b:\n g = [26, b - 8193, 12];\n break;\n\n case 16384 >= b:\n g = [27, b - 12289, 12];\n break;\n\n case 24576 >= b:\n g = [28, b - 16385, 13];\n break;\n\n case 32768 >= b:\n g = [29, b - 24577, 13];\n break;\n\n default:\n q(\"invalid distance\");\n }\n\n e = g;\n d[f++] = e[0];\n d[f++] = e[1];\n d[f++] = e[2];\n var h, k;\n h = 0;\n\n for (k = d.length; h < k; ++h) {\n l[n++] = d[h];\n }\n\n u[d[0]]++;\n w[d[3]]++;\n s = a.length + c - 1;\n p = null;\n }\n\n var d,\n e,\n f,\n g,\n k,\n h = {},\n m,\n r,\n p,\n l = B ? new Uint16Array(2 * a.length) : [],\n n = 0,\n s = 0,\n u = new (B ? Uint32Array : Array)(286),\n w = new (B ? Uint32Array : Array)(30),\n C = b.F,\n x;\n\n if (!B) {\n for (f = 0; 285 >= f;) {\n u[f++] = 0;\n }\n\n for (f = 0; 29 >= f;) {\n w[f++] = 0;\n }\n }\n\n u[256] = 1;\n d = 0;\n\n for (e = a.length; d < e; ++d) {\n f = k = 0;\n\n for (g = 3; f < g && d + f !== e; ++f) {\n k = k << 8 | a[d + f];\n }\n\n h[k] === t && (h[k] = []);\n m = h[k];\n\n if (!(0 < s--)) {\n for (; 0 < m.length && 32768 < d - m[0];) {\n m.shift();\n }\n\n if (d + 3 >= e) {\n p && c(p, -1);\n f = 0;\n\n for (g = e - d; f < g; ++f) {\n x = a[d + f], l[n++] = x, ++u[x];\n }\n\n break;\n }\n\n 0 < m.length ? (r = za(a, d, m), p ? p.length < r.length ? (x = a[d - 1], l[n++] = x, ++u[x], c(r, 0)) : c(p, -1) : r.length < C ? p = r : c(r, 0)) : p ? c(p, -1) : (x = a[d], l[n++] = x, ++u[x]);\n }\n\n m.push(d);\n }\n\n l[n++] = 256;\n u[256]++;\n b.U = u;\n b.T = w;\n return B ? l.subarray(0, n) : l;\n }\n\n function za(b, a, c) {\n var d,\n e,\n f = 0,\n g,\n k,\n h,\n m,\n r = b.length;\n k = 0;\n m = c.length;\n\n a: for (; k < m; k++) {\n d = c[m - k - 1];\n g = 3;\n\n if (3 < f) {\n for (h = f; 3 < h; h--) {\n if (b[d + h - 1] !== b[a + h - 1]) continue a;\n }\n\n g = f;\n }\n\n for (; 258 > g && a + g < r && b[d + g] === b[a + g];) {\n ++g;\n }\n\n g > f && (e = d, f = g);\n if (258 === g) break;\n }\n\n return new va(f, a - e);\n }\n\n function sa(b, a) {\n var c = b.length,\n d = new ka(572),\n e = new (B ? Uint8Array : Array)(c),\n f,\n g,\n k,\n h,\n m;\n if (!B) for (h = 0; h < c; h++) {\n e[h] = 0;\n }\n\n for (h = 0; h < c; ++h) {\n 0 < b[h] && d.push(h, b[h]);\n }\n\n f = Array(d.length / 2);\n g = new (B ? Uint32Array : Array)(d.length / 2);\n if (1 === f.length) return e[d.pop().index] = 1, e;\n h = 0;\n\n for (m = d.length / 2; h < m; ++h) {\n f[h] = d.pop(), g[h] = f[h].value;\n }\n\n k = Aa(g, g.length, a);\n h = 0;\n\n for (m = f.length; h < m; ++h) {\n e[f[h].index] = k[h];\n }\n\n return e;\n }\n\n function Aa(b, a, c) {\n function d(b) {\n var c = h[b][m[b]];\n c === a ? (d(b + 1), d(b + 1)) : --g[c];\n ++m[b];\n }\n\n var e = new (B ? Uint16Array : Array)(c),\n f = new (B ? Uint8Array : Array)(c),\n g = new (B ? Uint8Array : Array)(a),\n k = Array(c),\n h = Array(c),\n m = Array(c),\n r = (1 << c) - a,\n p = 1 << c - 1,\n l,\n n,\n s,\n u,\n w;\n e[c - 1] = a;\n\n for (n = 0; n < c; ++n) {\n r < p ? f[n] = 0 : (f[n] = 1, r -= p), r <<= 1, e[c - 2 - n] = (e[c - 1 - n] / 2 | 0) + a;\n }\n\n e[0] = f[0];\n k[0] = Array(e[0]);\n h[0] = Array(e[0]);\n\n for (n = 1; n < c; ++n) {\n e[n] > 2 * e[n - 1] + f[n] && (e[n] = 2 * e[n - 1] + f[n]), k[n] = Array(e[n]), h[n] = Array(e[n]);\n }\n\n for (l = 0; l < a; ++l) {\n g[l] = c;\n }\n\n for (s = 0; s < e[c - 1]; ++s) {\n k[c - 1][s] = b[s], h[c - 1][s] = s;\n }\n\n for (l = 0; l < c; ++l) {\n m[l] = 0;\n }\n\n 1 === f[c - 1] && (--g[0], ++m[c - 1]);\n\n for (n = c - 2; 0 <= n; --n) {\n u = l = 0;\n w = m[n + 1];\n\n for (s = 0; s < e[n]; s++) {\n u = k[n + 1][w] + k[n + 1][w + 1], u > b[l] ? (k[n][s] = u, h[n][s] = a, w += 2) : (k[n][s] = b[l], h[n][s] = l, ++l);\n }\n\n m[n] = 0;\n 1 === f[n] && d(n);\n }\n\n return g;\n }\n\n function ua(b) {\n var a = new (B ? Uint16Array : Array)(b.length),\n c = [],\n d = [],\n e = 0,\n f,\n g,\n k,\n h;\n f = 0;\n\n for (g = b.length; f < g; f++) {\n c[b[f]] = (c[b[f]] | 0) + 1;\n }\n\n f = 1;\n\n for (g = 16; f <= g; f++) {\n d[f] = e, e += c[f] | 0, e <<= 1;\n }\n\n f = 0;\n\n for (g = b.length; f < g; f++) {\n e = d[b[f]];\n d[b[f]] += 1;\n k = a[f] = 0;\n\n for (h = b[f]; k < h; k++) {\n a[f] = a[f] << 1 | e & 1, e >>>= 1;\n }\n }\n\n return a;\n }\n\n ;\n\n function Ba(b, a) {\n this.input = b;\n this.b = this.c = 0;\n this.g = {};\n a && (a.flags && (this.g = a.flags), \"string\" === typeof a.filename && (this.filename = a.filename), \"string\" === typeof a.comment && (this.w = a.comment), a.deflateOptions && (this.l = a.deflateOptions));\n this.l || (this.l = {});\n }\n\n Ba.prototype.h = function () {\n var b,\n a,\n c,\n d,\n e,\n f,\n g,\n k,\n h = new (B ? Uint8Array : Array)(32768),\n m = 0,\n r = this.input,\n p = this.c,\n l = this.filename,\n n = this.w;\n h[m++] = 31;\n h[m++] = 139;\n h[m++] = 8;\n b = 0;\n this.g.fname && (b |= Ca);\n this.g.fcomment && (b |= Da);\n this.g.fhcrc && (b |= Ea);\n h[m++] = b;\n a = (Date.now ? Date.now() : +new Date()) / 1E3 | 0;\n h[m++] = a & 255;\n h[m++] = a >>> 8 & 255;\n h[m++] = a >>> 16 & 255;\n h[m++] = a >>> 24 & 255;\n h[m++] = 0;\n h[m++] = Sa;\n\n if (this.g.fname !== t) {\n g = 0;\n\n for (k = l.length; g < k; ++g) {\n f = l.charCodeAt(g), 255 < f && (h[m++] = f >>> 8 & 255), h[m++] = f & 255;\n }\n\n h[m++] = 0;\n }\n\n if (this.g.comment) {\n g = 0;\n\n for (k = n.length; g < k; ++g) {\n f = n.charCodeAt(g), 255 < f && (h[m++] = f >>> 8 & 255), h[m++] = f & 255;\n }\n\n h[m++] = 0;\n }\n\n this.g.fhcrc && (c = ha(h, 0, m) & 65535, h[m++] = c & 255, h[m++] = c >>> 8 & 255);\n this.l.outputBuffer = h;\n this.l.outputIndex = m;\n e = new na(r, this.l);\n h = e.h();\n m = e.b;\n B && (m + 8 > h.buffer.byteLength ? (this.a = new Uint8Array(m + 8), this.a.set(new Uint8Array(h.buffer)), h = this.a) : h = new Uint8Array(h.buffer));\n d = ha(r, t, t);\n h[m++] = d & 255;\n h[m++] = d >>> 8 & 255;\n h[m++] = d >>> 16 & 255;\n h[m++] = d >>> 24 & 255;\n k = r.length;\n h[m++] = k & 255;\n h[m++] = k >>> 8 & 255;\n h[m++] = k >>> 16 & 255;\n h[m++] = k >>> 24 & 255;\n this.c = p;\n B && m < h.length && (this.a = h = h.subarray(0, m));\n return h;\n };\n\n var Sa = 255,\n Ea = 2,\n Ca = 8,\n Da = 16;\n\n function V(b, a) {\n this.o = [];\n this.p = 32768;\n this.e = this.j = this.c = this.s = 0;\n this.input = B ? new Uint8Array(b) : b;\n this.u = !1;\n this.q = Ta;\n this.K = !1;\n if (a || !(a = {})) a.index && (this.c = a.index), a.bufferSize && (this.p = a.bufferSize), a.bufferType && (this.q = a.bufferType), a.resize && (this.K = a.resize);\n\n switch (this.q) {\n case Ua:\n this.b = 32768;\n this.a = new (B ? Uint8Array : Array)(32768 + this.p + 258);\n break;\n\n case Ta:\n this.b = 0;\n this.a = new (B ? Uint8Array : Array)(this.p);\n this.f = this.S;\n this.z = this.O;\n this.r = this.Q;\n break;\n\n default:\n q(Error(\"invalid inflate mode\"));\n }\n }\n\n var Ua = 0,\n Ta = 1;\n\n V.prototype.i = function () {\n for (; !this.u;) {\n var b = W(this, 3);\n b & 1 && (this.u = v);\n b >>>= 1;\n\n switch (b) {\n case 0:\n var a = this.input,\n c = this.c,\n d = this.a,\n e = this.b,\n f = a.length,\n g = t,\n k = t,\n h = d.length,\n m = t;\n this.e = this.j = 0;\n c + 1 >= f && q(Error(\"invalid uncompressed block header: LEN\"));\n g = a[c++] | a[c++] << 8;\n c + 1 >= f && q(Error(\"invalid uncompressed block header: NLEN\"));\n k = a[c++] | a[c++] << 8;\n g === ~k && q(Error(\"invalid uncompressed block header: length verify\"));\n c + g > a.length && q(Error(\"input buffer is broken\"));\n\n switch (this.q) {\n case Ua:\n for (; e + g > d.length;) {\n m = h - e;\n g -= m;\n if (B) d.set(a.subarray(c, c + m), e), e += m, c += m;else for (; m--;) {\n d[e++] = a[c++];\n }\n this.b = e;\n d = this.f();\n e = this.b;\n }\n\n break;\n\n case Ta:\n for (; e + g > d.length;) {\n d = this.f({\n B: 2\n });\n }\n\n break;\n\n default:\n q(Error(\"invalid inflate mode\"));\n }\n\n if (B) d.set(a.subarray(c, c + g), e), e += g, c += g;else for (; g--;) {\n d[e++] = a[c++];\n }\n this.c = c;\n this.b = e;\n this.a = d;\n break;\n\n case 1:\n this.r(Va, Wa);\n break;\n\n case 2:\n for (var r = W(this, 5) + 257, p = W(this, 5) + 1, l = W(this, 4) + 4, n = new (B ? Uint8Array : Array)(Xa.length), s = t, u = t, w = t, C = t, x = t, D = t, M = t, z = t, N = t, z = 0; z < l; ++z) {\n n[Xa[z]] = W(this, 3);\n }\n\n if (!B) {\n z = l;\n\n for (l = n.length; z < l; ++z) {\n n[Xa[z]] = 0;\n }\n }\n\n s = T(n);\n C = new (B ? Uint8Array : Array)(r + p);\n z = 0;\n\n for (N = r + p; z < N;) {\n switch (x = Ya(this, s), x) {\n case 16:\n for (M = 3 + W(this, 2); M--;) {\n C[z++] = D;\n }\n\n break;\n\n case 17:\n for (M = 3 + W(this, 3); M--;) {\n C[z++] = 0;\n }\n\n D = 0;\n break;\n\n case 18:\n for (M = 11 + W(this, 7); M--;) {\n C[z++] = 0;\n }\n\n D = 0;\n break;\n\n default:\n D = C[z++] = x;\n }\n }\n\n u = B ? T(C.subarray(0, r)) : T(C.slice(0, r));\n w = B ? T(C.subarray(r)) : T(C.slice(r));\n this.r(u, w);\n break;\n\n default:\n q(Error(\"unknown BTYPE: \" + b));\n }\n }\n\n return this.z();\n };\n\n var Za = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15],\n Xa = B ? new Uint16Array(Za) : Za,\n $a = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 258, 258],\n ab = B ? new Uint16Array($a) : $a,\n bb = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0],\n cb = B ? new Uint8Array(bb) : bb,\n db = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577],\n eb = B ? new Uint16Array(db) : db,\n fb = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13],\n gb = B ? new Uint8Array(fb) : fb,\n hb = new (B ? Uint8Array : Array)(288),\n $,\n ib;\n $ = 0;\n\n for (ib = hb.length; $ < ib; ++$) {\n hb[$] = 143 >= $ ? 8 : 255 >= $ ? 9 : 279 >= $ ? 7 : 8;\n }\n\n var Va = T(hb),\n jb = new (B ? Uint8Array : Array)(30),\n kb,\n lb;\n kb = 0;\n\n for (lb = jb.length; kb < lb; ++kb) {\n jb[kb] = 5;\n }\n\n var Wa = T(jb);\n\n function W(b, a) {\n for (var c = b.j, d = b.e, e = b.input, f = b.c, g = e.length, k; d < a;) {\n f >= g && q(Error(\"input buffer is broken\")), c |= e[f++] << d, d += 8;\n }\n\n k = c & (1 << a) - 1;\n b.j = c >>> a;\n b.e = d - a;\n b.c = f;\n return k;\n }\n\n function Ya(b, a) {\n for (var c = b.j, d = b.e, e = b.input, f = b.c, g = e.length, k = a[0], h = a[1], m, r; d < h && !(f >= g);) {\n c |= e[f++] << d, d += 8;\n }\n\n m = k[c & (1 << h) - 1];\n r = m >>> 16;\n r > d && q(Error(\"invalid code length: \" + r));\n b.j = c >> r;\n b.e = d - r;\n b.c = f;\n return m & 65535;\n }\n\n V.prototype.r = function (b, a) {\n var c = this.a,\n d = this.b;\n this.A = b;\n\n for (var e = c.length - 258, f, g, k, h; 256 !== (f = Ya(this, b));) {\n if (256 > f) d >= e && (this.b = d, c = this.f(), d = this.b), c[d++] = f;else {\n g = f - 257;\n h = ab[g];\n 0 < cb[g] && (h += W(this, cb[g]));\n f = Ya(this, a);\n k = eb[f];\n 0 < gb[f] && (k += W(this, gb[f]));\n d >= e && (this.b = d, c = this.f(), d = this.b);\n\n for (; h--;) {\n c[d] = c[d++ - k];\n }\n }\n }\n\n for (; 8 <= this.e;) {\n this.e -= 8, this.c--;\n }\n\n this.b = d;\n };\n\n V.prototype.Q = function (b, a) {\n var c = this.a,\n d = this.b;\n this.A = b;\n\n for (var e = c.length, f, g, k, h; 256 !== (f = Ya(this, b));) {\n if (256 > f) d >= e && (c = this.f(), e = c.length), c[d++] = f;else {\n g = f - 257;\n h = ab[g];\n 0 < cb[g] && (h += W(this, cb[g]));\n f = Ya(this, a);\n k = eb[f];\n 0 < gb[f] && (k += W(this, gb[f]));\n d + h > e && (c = this.f(), e = c.length);\n\n for (; h--;) {\n c[d] = c[d++ - k];\n }\n }\n }\n\n for (; 8 <= this.e;) {\n this.e -= 8, this.c--;\n }\n\n this.b = d;\n };\n\n V.prototype.f = function () {\n var b = new (B ? Uint8Array : Array)(this.b - 32768),\n a = this.b - 32768,\n c,\n d,\n e = this.a;\n if (B) b.set(e.subarray(32768, b.length));else {\n c = 0;\n\n for (d = b.length; c < d; ++c) {\n b[c] = e[c + 32768];\n }\n }\n this.o.push(b);\n this.s += b.length;\n if (B) e.set(e.subarray(a, a + 32768));else for (c = 0; 32768 > c; ++c) {\n e[c] = e[a + c];\n }\n this.b = 32768;\n return e;\n };\n\n V.prototype.S = function (b) {\n var a,\n c = this.input.length / this.c + 1 | 0,\n d,\n e,\n f,\n g = this.input,\n k = this.a;\n b && (\"number\" === typeof b.B && (c = b.B), \"number\" === typeof b.M && (c += b.M));\n 2 > c ? (d = (g.length - this.c) / this.A[2], f = 258 * (d / 2) | 0, e = f < k.length ? k.length + f : k.length << 1) : e = k.length * c;\n B ? (a = new Uint8Array(e), a.set(k)) : a = k;\n return this.a = a;\n };\n\n V.prototype.z = function () {\n var b = 0,\n a = this.a,\n c = this.o,\n d,\n e = new (B ? Uint8Array : Array)(this.s + (this.b - 32768)),\n f,\n g,\n k,\n h;\n if (0 === c.length) return B ? this.a.subarray(32768, this.b) : this.a.slice(32768, this.b);\n f = 0;\n\n for (g = c.length; f < g; ++f) {\n d = c[f];\n k = 0;\n\n for (h = d.length; k < h; ++k) {\n e[b++] = d[k];\n }\n }\n\n f = 32768;\n\n for (g = this.b; f < g; ++f) {\n e[b++] = a[f];\n }\n\n this.o = [];\n return this.buffer = e;\n };\n\n V.prototype.O = function () {\n var b,\n a = this.b;\n B ? this.K ? (b = new Uint8Array(a), b.set(this.a.subarray(0, a))) : b = this.a.subarray(0, a) : (this.a.length > a && (this.a.length = a), b = this.a);\n return this.buffer = b;\n };\n\n function mb(b) {\n this.input = b;\n this.c = 0;\n this.G = [];\n this.R = !1;\n }\n\n mb.prototype.i = function () {\n for (var b = this.input.length; this.c < b;) {\n var a = new ja(),\n c = t,\n d = t,\n e = t,\n f = t,\n g = t,\n k = t,\n h = t,\n m = t,\n r = t,\n p = this.input,\n l = this.c;\n a.C = p[l++];\n a.D = p[l++];\n (31 !== a.C || 139 !== a.D) && q(Error(\"invalid file signature:\" + a.C + \",\" + a.D));\n a.v = p[l++];\n\n switch (a.v) {\n case 8:\n break;\n\n default:\n q(Error(\"unknown compression method: \" + a.v));\n }\n\n a.n = p[l++];\n m = p[l++] | p[l++] << 8 | p[l++] << 16 | p[l++] << 24;\n a.$ = new Date(1E3 * m);\n a.ba = p[l++];\n a.aa = p[l++];\n 0 < (a.n & 4) && (a.W = p[l++] | p[l++] << 8, l += a.W);\n\n if (0 < (a.n & Ca)) {\n h = [];\n\n for (k = 0; 0 < (g = p[l++]);) {\n h[k++] = String.fromCharCode(g);\n }\n\n a.name = h.join(\"\");\n }\n\n if (0 < (a.n & Da)) {\n h = [];\n\n for (k = 0; 0 < (g = p[l++]);) {\n h[k++] = String.fromCharCode(g);\n }\n\n a.w = h.join(\"\");\n }\n\n 0 < (a.n & Ea) && (a.P = ha(p, 0, l) & 65535, a.P !== (p[l++] | p[l++] << 8) && q(Error(\"invalid header crc16\")));\n c = p[p.length - 4] | p[p.length - 3] << 8 | p[p.length - 2] << 16 | p[p.length - 1] << 24;\n p.length - l - 4 - 4 < 512 * c && (f = c);\n d = new V(p, {\n index: l,\n bufferSize: f\n });\n a.data = e = d.i();\n l = d.c;\n a.Y = r = (p[l++] | p[l++] << 8 | p[l++] << 16 | p[l++] << 24) >>> 0;\n ha(e, t, t) !== r && q(Error(\"invalid CRC-32 checksum: 0x\" + ha(e, t, t).toString(16) + \" / 0x\" + r.toString(16)));\n a.Z = c = (p[l++] | p[l++] << 8 | p[l++] << 16 | p[l++] << 24) >>> 0;\n (e.length & 4294967295) !== c && q(Error(\"invalid input size: \" + (e.length & 4294967295) + \" / \" + c));\n this.G.push(a);\n this.c = l;\n }\n\n this.R = v;\n var n = this.G,\n s,\n u,\n w = 0,\n C = 0,\n x;\n s = 0;\n\n for (u = n.length; s < u; ++s) {\n C += n[s].data.length;\n }\n\n if (B) {\n x = new Uint8Array(C);\n\n for (s = 0; s < u; ++s) {\n x.set(n[s].data, w), w += n[s].data.length;\n }\n } else {\n x = [];\n\n for (s = 0; s < u; ++s) {\n x[s] = n[s].data;\n }\n\n x = Array.prototype.concat.apply([], x);\n }\n\n return x;\n };\n\n function nb(b) {\n if (\"string\" === typeof b) {\n var a = b.split(\"\"),\n c,\n d;\n c = 0;\n\n for (d = a.length; c < d; c++) {\n a[c] = (a[c].charCodeAt(0) & 255) >>> 0;\n }\n\n b = a;\n }\n\n for (var e = 1, f = 0, g = b.length, k, h = 0; 0 < g;) {\n k = 1024 < g ? 1024 : g;\n g -= k;\n\n do {\n e += b[h++], f += e;\n } while (--k);\n\n e %= 65521;\n f %= 65521;\n }\n\n return (f << 16 | e) >>> 0;\n }\n\n ;\n\n function ob(b, a) {\n var c, d;\n this.input = b;\n this.c = 0;\n if (a || !(a = {})) a.index && (this.c = a.index), a.verify && (this.V = a.verify);\n c = b[this.c++];\n d = b[this.c++];\n\n switch (c & 15) {\n case pb:\n this.method = pb;\n break;\n\n default:\n q(Error(\"unsupported compression method\"));\n }\n\n 0 !== ((c << 8) + d) % 31 && q(Error(\"invalid fcheck flag:\" + ((c << 8) + d) % 31));\n d & 32 && q(Error(\"fdict flag is not supported\"));\n this.J = new V(b, {\n index: this.c,\n bufferSize: a.bufferSize,\n bufferType: a.bufferType,\n resize: a.resize\n });\n }\n\n ob.prototype.i = function () {\n var b = this.input,\n a,\n c;\n a = this.J.i();\n this.c = this.J.c;\n this.V && (c = (b[this.c++] << 24 | b[this.c++] << 16 | b[this.c++] << 8 | b[this.c++]) >>> 0, c !== nb(a) && q(Error(\"invalid adler-32 checksum\")));\n return a;\n };\n\n var pb = 8;\n\n function rb(b, a) {\n this.input = b;\n this.a = new (B ? Uint8Array : Array)(32768);\n this.k = sb.t;\n var c = {},\n d;\n if ((a || !(a = {})) && \"number\" === typeof a.compressionType) this.k = a.compressionType;\n\n for (d in a) {\n c[d] = a[d];\n }\n\n c.outputBuffer = this.a;\n this.I = new na(this.input, c);\n }\n\n var sb = pa;\n\n rb.prototype.h = function () {\n var b,\n a,\n c,\n d,\n e,\n f,\n g,\n k = 0;\n g = this.a;\n b = pb;\n\n switch (b) {\n case pb:\n a = Math.LOG2E * Math.log(32768) - 8;\n break;\n\n default:\n q(Error(\"invalid compression method\"));\n }\n\n c = a << 4 | b;\n g[k++] = c;\n\n switch (b) {\n case pb:\n switch (this.k) {\n case sb.NONE:\n e = 0;\n break;\n\n case sb.L:\n e = 1;\n break;\n\n case sb.t:\n e = 2;\n break;\n\n default:\n q(Error(\"unsupported compression type\"));\n }\n\n break;\n\n default:\n q(Error(\"invalid compression method\"));\n }\n\n d = e << 6 | 0;\n g[k++] = d | 31 - (256 * c + d) % 31;\n f = nb(this.input);\n this.I.b = k;\n g = this.I.h();\n k = g.length;\n B && (g = new Uint8Array(g.buffer), g.length <= k + 4 && (this.a = new Uint8Array(g.length + 4), this.a.set(g), g = this.a), g = g.subarray(0, k + 4));\n g[k++] = f >> 24 & 255;\n g[k++] = f >> 16 & 255;\n g[k++] = f >> 8 & 255;\n g[k++] = f & 255;\n return g;\n };\n\n exports.deflate = tb;\n exports.deflateSync = ub;\n exports.inflate = vb;\n exports.inflateSync = wb;\n exports.gzip = xb;\n exports.gzipSync = yb;\n exports.gunzip = zb;\n exports.gunzipSync = Ab;\n\n function tb(b, a, c) {\n process.nextTick(function () {\n var d, e;\n\n try {\n e = ub(b, c);\n } catch (f) {\n d = f;\n }\n\n a(d, e);\n });\n }\n\n function ub(b, a) {\n var c;\n c = new rb(b).h();\n a || (a = {});\n return a.H ? c : Bb(c);\n }\n\n function vb(b, a, c) {\n process.nextTick(function () {\n var d, e;\n\n try {\n e = wb(b, c);\n } catch (f) {\n d = f;\n }\n\n a(d, e);\n });\n }\n\n function wb(b, a) {\n var c;\n b.subarray = b.slice;\n c = new ob(b).i();\n a || (a = {});\n return a.noBuffer ? c : Bb(c);\n }\n\n function xb(b, a, c) {\n process.nextTick(function () {\n var d, e;\n\n try {\n e = yb(b, c);\n } catch (f) {\n d = f;\n }\n\n a(d, e);\n });\n }\n\n function yb(b, a) {\n var c;\n b.subarray = b.slice;\n c = new Ba(b).h();\n a || (a = {});\n return a.H ? c : Bb(c);\n }\n\n function zb(b, a, c) {\n process.nextTick(function () {\n var d, e;\n\n try {\n e = Ab(b, c);\n } catch (f) {\n d = f;\n }\n\n a(d, e);\n });\n }\n\n function Ab(b, a) {\n var c;\n b.subarray = b.slice;\n c = new mb(b).i();\n a || (a = {});\n return a.H ? c : Bb(c);\n }\n\n function Bb(b) {\n var a = new Buffer(b.length),\n c,\n d;\n c = 0;\n\n for (d = b.length; c < d; ++c) {\n a[c] = b[c];\n }\n\n return a;\n }\n\n ;\n}).call(this);","\"use strict\";\n\nvar bmp = require('bmp-js');\n\nvar fileType = require('file-type');\n\nmodule.exports = function (TessModule, iBuf, yres) {\n if (yres === void 0) {\n yres = 70;\n }\n\n var buf = Buffer.from(iBuf);\n var type = fileType(buf);\n var bytesPerPixel = 0;\n var data = null;\n var pix = null;\n var w = 0;\n var h = 0;\n /*\n * Although leptonica should support reading bmp, there is a bug of \"compressed BMP files\".\n * As there is no solution, we need to use bmp-js for now.\n * @see https://groups.google.com/forum/#!topic/tesseract-ocr/4mPD9zTxdxE\n */\n\n if (type && type.mime === 'image/bmp') {\n var bmpBuf = bmp.decode(buf);\n data = TessModule._malloc(bmpBuf.data.length * Uint8Array.BYTES_PER_ELEMENT);\n TessModule.HEAPU8.set(bmpBuf.data, data);\n w = bmpBuf.width;\n h = bmpBuf.height;\n bytesPerPixel = 4;\n } else {\n var ptr = TessModule._malloc(buf.length * Uint8Array.BYTES_PER_ELEMENT);\n\n TessModule.HEAPU8.set(buf, ptr);\n pix = TessModule._pixReadMem(ptr, buf.length);\n\n if (TessModule.getValue(pix + 7 * 4, 'i32') === 0) {\n /*\n * Set a yres default value to prevent warning from tesseract\n * See kMinCredibleResolution in tesseract/src/ccstruct/publictypes.h\n */\n TessModule.setValue(pix + 7 * 4, yres, 'i32');\n }\n\n var _Array$fill$map = Array(2).fill(0).map(function (v, idx) {\n return TessModule.getValue(pix + idx * 4, 'i32');\n });\n\n w = _Array$fill$map[0];\n h = _Array$fill$map[1];\n }\n\n return {\n w: w,\n h: h,\n bytesPerPixel: bytesPerPixel,\n data: data,\n pix: pix\n };\n};","/**\n * @author shaozilee\n *\n * support 1bit 4bit 8bit 24bit decode\n * encode with 24bit\n * \n */\nvar encode = require('./lib/encoder'),\n decode = require('./lib/decoder');\n\nmodule.exports = {\n encode: encode,\n decode: decode\n};","/**\n * @author shaozilee\n *\n * BMP format encoder,encode 24bit BMP\n * Not support quality compression\n *\n */\nfunction BmpEncoder(imgData) {\n this.buffer = imgData.data;\n this.width = imgData.width;\n this.height = imgData.height;\n this.extraBytes = this.width % 4;\n this.rgbSize = this.height * (3 * this.width + this.extraBytes);\n this.headerInfoSize = 40;\n this.data = [];\n /******************header***********************/\n\n this.flag = \"BM\";\n this.reserved = 0;\n this.offset = 54;\n this.fileSize = this.rgbSize + this.offset;\n this.planes = 1;\n this.bitPP = 24;\n this.compress = 0;\n this.hr = 0;\n this.vr = 0;\n this.colors = 0;\n this.importantColors = 0;\n}\n\nBmpEncoder.prototype.encode = function () {\n var tempBuffer = new Buffer(this.offset + this.rgbSize);\n this.pos = 0;\n tempBuffer.write(this.flag, this.pos, 2);\n this.pos += 2;\n tempBuffer.writeUInt32LE(this.fileSize, this.pos);\n this.pos += 4;\n tempBuffer.writeUInt32LE(this.reserved, this.pos);\n this.pos += 4;\n tempBuffer.writeUInt32LE(this.offset, this.pos);\n this.pos += 4;\n tempBuffer.writeUInt32LE(this.headerInfoSize, this.pos);\n this.pos += 4;\n tempBuffer.writeUInt32LE(this.width, this.pos);\n this.pos += 4;\n tempBuffer.writeInt32LE(-this.height, this.pos);\n this.pos += 4;\n tempBuffer.writeUInt16LE(this.planes, this.pos);\n this.pos += 2;\n tempBuffer.writeUInt16LE(this.bitPP, this.pos);\n this.pos += 2;\n tempBuffer.writeUInt32LE(this.compress, this.pos);\n this.pos += 4;\n tempBuffer.writeUInt32LE(this.rgbSize, this.pos);\n this.pos += 4;\n tempBuffer.writeUInt32LE(this.hr, this.pos);\n this.pos += 4;\n tempBuffer.writeUInt32LE(this.vr, this.pos);\n this.pos += 4;\n tempBuffer.writeUInt32LE(this.colors, this.pos);\n this.pos += 4;\n tempBuffer.writeUInt32LE(this.importantColors, this.pos);\n this.pos += 4;\n var i = 0;\n var rowBytes = 3 * this.width + this.extraBytes;\n\n for (var y = 0; y < this.height; y++) {\n for (var x = 0; x < this.width; x++) {\n var p = this.pos + y * rowBytes + x * 3;\n i++; //a\n\n tempBuffer[p] = this.buffer[i++]; //b\n\n tempBuffer[p + 1] = this.buffer[i++]; //g\n\n tempBuffer[p + 2] = this.buffer[i++]; //r\n }\n\n if (this.extraBytes > 0) {\n var fillOffset = this.pos + y * rowBytes + this.width * 3;\n tempBuffer.fill(0, fillOffset, fillOffset + this.extraBytes);\n }\n }\n\n return tempBuffer;\n};\n\nmodule.exports = function (imgData, quality) {\n if (typeof quality === 'undefined') quality = 100;\n var encoder = new BmpEncoder(imgData);\n var data = encoder.encode();\n return {\n data: data,\n width: imgData.width,\n height: imgData.height\n };\n};","/**\n * @author shaozilee\n *\n * Bmp format decoder,support 1bit 4bit 8bit 24bit bmp\n *\n */\nfunction BmpDecoder(buffer, is_with_alpha) {\n this.pos = 0;\n this.buffer = buffer;\n this.is_with_alpha = !!is_with_alpha;\n this.bottom_up = true;\n this.flag = this.buffer.toString(\"utf-8\", 0, this.pos += 2);\n if (this.flag != \"BM\") throw new Error(\"Invalid BMP File\");\n this.parseHeader();\n this.parseRGBA();\n}\n\nBmpDecoder.prototype.parseHeader = function () {\n this.fileSize = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.reserved = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.offset = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.headerSize = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.width = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.height = this.buffer.readInt32LE(this.pos);\n this.pos += 4;\n this.planes = this.buffer.readUInt16LE(this.pos);\n this.pos += 2;\n this.bitPP = this.buffer.readUInt16LE(this.pos);\n this.pos += 2;\n this.compress = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.rawSize = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.hr = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.vr = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.colors = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.importantColors = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n\n if (this.bitPP === 16 && this.is_with_alpha) {\n this.bitPP = 15;\n }\n\n if (this.bitPP < 15) {\n var len = this.colors === 0 ? 1 << this.bitPP : this.colors;\n this.palette = new Array(len);\n\n for (var i = 0; i < len; i++) {\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var quad = this.buffer.readUInt8(this.pos++);\n this.palette[i] = {\n red: red,\n green: green,\n blue: blue,\n quad: quad\n };\n }\n }\n\n if (this.height < 0) {\n this.height *= -1;\n this.bottom_up = false;\n }\n};\n\nBmpDecoder.prototype.parseRGBA = function () {\n var bitn = \"bit\" + this.bitPP;\n var len = this.width * this.height * 4;\n this.data = new Buffer(len);\n this[bitn]();\n};\n\nBmpDecoder.prototype.bit1 = function () {\n var xlen = Math.ceil(this.width / 8);\n var mode = xlen % 4;\n var y = this.height >= 0 ? this.height - 1 : -this.height;\n\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n\n for (var x = 0; x < xlen; x++) {\n var b = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 8 * 4;\n\n for (var i = 0; i < 8; i++) {\n if (x * 8 + i < this.width) {\n var rgb = this.palette[b >> 7 - i & 0x1];\n this.data[location + i * 4] = 0;\n this.data[location + i * 4 + 1] = rgb.blue;\n this.data[location + i * 4 + 2] = rgb.green;\n this.data[location + i * 4 + 3] = rgb.red;\n } else {\n break;\n }\n }\n }\n\n if (mode != 0) {\n this.pos += 4 - mode;\n }\n }\n};\n\nBmpDecoder.prototype.bit4 = function () {\n //RLE-4\n if (this.compress == 2) {\n var setPixelData = function setPixelData(rgbIndex) {\n var rgb = this.palette[rgbIndex];\n this.data[location] = 0;\n this.data[location + 1] = rgb.blue;\n this.data[location + 2] = rgb.green;\n this.data[location + 3] = rgb.red;\n location += 4;\n };\n\n this.data.fill(0xff);\n var location = 0;\n var lines = this.bottom_up ? this.height - 1 : 0;\n var low_nibble = false; //for all count of pixel\n\n while (location < this.data.length) {\n var a = this.buffer.readUInt8(this.pos++);\n var b = this.buffer.readUInt8(this.pos++); //absolute mode\n\n if (a == 0) {\n if (b == 0) {\n //line end\n if (this.bottom_up) {\n lines--;\n } else {\n lines++;\n }\n\n location = lines * this.width * 4;\n low_nibble = false;\n continue;\n } else if (b == 1) {\n //image end\n break;\n } else if (b == 2) {\n //offset x,y\n var x = this.buffer.readUInt8(this.pos++);\n var y = this.buffer.readUInt8(this.pos++);\n\n if (this.bottom_up) {\n lines -= y;\n } else {\n lines += y;\n }\n\n location += y * this.width * 4 + x * 4;\n } else {\n var c = this.buffer.readUInt8(this.pos++);\n\n for (var i = 0; i < b; i++) {\n if (low_nibble) {\n setPixelData.call(this, c & 0x0f);\n } else {\n setPixelData.call(this, (c & 0xf0) >> 4);\n }\n\n if (i & 1 && i + 1 < b) {\n c = this.buffer.readUInt8(this.pos++);\n }\n\n low_nibble = !low_nibble;\n }\n\n if ((b + 1 >> 1 & 1) == 1) {\n this.pos++;\n }\n }\n } else {\n //encoded mode\n for (var i = 0; i < a; i++) {\n if (low_nibble) {\n setPixelData.call(this, b & 0x0f);\n } else {\n setPixelData.call(this, (b & 0xf0) >> 4);\n }\n\n low_nibble = !low_nibble;\n }\n }\n }\n } else {\n var xlen = Math.ceil(this.width / 2);\n var mode = xlen % 4;\n\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n\n for (var x = 0; x < xlen; x++) {\n var b = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 2 * 4;\n var before = b >> 4;\n var after = b & 0x0F;\n var rgb = this.palette[before];\n this.data[location] = 0;\n this.data[location + 1] = rgb.blue;\n this.data[location + 2] = rgb.green;\n this.data[location + 3] = rgb.red;\n if (x * 2 + 1 >= this.width) break;\n rgb = this.palette[after];\n this.data[location + 4] = 0;\n this.data[location + 4 + 1] = rgb.blue;\n this.data[location + 4 + 2] = rgb.green;\n this.data[location + 4 + 3] = rgb.red;\n }\n\n if (mode != 0) {\n this.pos += 4 - mode;\n }\n }\n }\n};\n\nBmpDecoder.prototype.bit8 = function () {\n //RLE-8\n if (this.compress == 1) {\n var setPixelData = function setPixelData(rgbIndex) {\n var rgb = this.palette[rgbIndex];\n this.data[location] = 0;\n this.data[location + 1] = rgb.blue;\n this.data[location + 2] = rgb.green;\n this.data[location + 3] = rgb.red;\n location += 4;\n };\n\n this.data.fill(0xff);\n var location = 0;\n var lines = this.bottom_up ? this.height - 1 : 0;\n\n while (location < this.data.length) {\n var a = this.buffer.readUInt8(this.pos++);\n var b = this.buffer.readUInt8(this.pos++); //absolute mode\n\n if (a == 0) {\n if (b == 0) {\n //line end\n if (this.bottom_up) {\n lines--;\n } else {\n lines++;\n }\n\n location = lines * this.width * 4;\n continue;\n } else if (b == 1) {\n //image end\n break;\n } else if (b == 2) {\n //offset x,y\n var x = this.buffer.readUInt8(this.pos++);\n var y = this.buffer.readUInt8(this.pos++);\n\n if (this.bottom_up) {\n lines -= y;\n } else {\n lines += y;\n }\n\n location += y * this.width * 4 + x * 4;\n } else {\n for (var i = 0; i < b; i++) {\n var c = this.buffer.readUInt8(this.pos++);\n setPixelData.call(this, c);\n }\n\n if (b & 1 == 1) {\n this.pos++;\n }\n }\n } else {\n //encoded mode\n for (var i = 0; i < a; i++) {\n setPixelData.call(this, b);\n }\n }\n }\n } else {\n var mode = this.width % 4;\n\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n\n for (var x = 0; x < this.width; x++) {\n var b = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n\n if (b < this.palette.length) {\n var rgb = this.palette[b];\n this.data[location] = 0;\n this.data[location + 1] = rgb.blue;\n this.data[location + 2] = rgb.green;\n this.data[location + 3] = rgb.red;\n } else {\n this.data[location] = 0;\n this.data[location + 1] = 0xFF;\n this.data[location + 2] = 0xFF;\n this.data[location + 3] = 0xFF;\n }\n }\n\n if (mode != 0) {\n this.pos += 4 - mode;\n }\n }\n }\n};\n\nBmpDecoder.prototype.bit15 = function () {\n var dif_w = this.width % 3;\n\n var _11111 = parseInt(\"11111\", 2),\n _1_5 = _11111;\n\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n\n for (var x = 0; x < this.width; x++) {\n var B = this.buffer.readUInt16LE(this.pos);\n this.pos += 2;\n var blue = (B & _1_5) / _1_5 * 255 | 0;\n var green = (B >> 5 & _1_5) / _1_5 * 255 | 0;\n var red = (B >> 10 & _1_5) / _1_5 * 255 | 0;\n var alpha = B >> 15 ? 0xFF : 0x00;\n var location = line * this.width * 4 + x * 4;\n this.data[location] = alpha;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n } //skip extra bytes\n\n\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit16 = function () {\n var dif_w = this.width % 2 * 2; //default xrgb555\n\n this.maskRed = 0x7C00;\n this.maskGreen = 0x3E0;\n this.maskBlue = 0x1F;\n this.mask0 = 0;\n\n if (this.compress == 3) {\n this.maskRed = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.maskGreen = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.maskBlue = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.mask0 = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n }\n\n var ns = [0, 0, 0];\n\n for (var i = 0; i < 16; i++) {\n if (this.maskRed >> i & 0x01) ns[0]++;\n if (this.maskGreen >> i & 0x01) ns[1]++;\n if (this.maskBlue >> i & 0x01) ns[2]++;\n }\n\n ns[1] += ns[0];\n ns[2] += ns[1];\n ns[0] = 8 - ns[0];\n ns[1] -= 8;\n ns[2] -= 8;\n\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n\n for (var x = 0; x < this.width; x++) {\n var B = this.buffer.readUInt16LE(this.pos);\n this.pos += 2;\n var blue = (B & this.maskBlue) << ns[0];\n var green = (B & this.maskGreen) >> ns[1];\n var red = (B & this.maskRed) >> ns[2];\n var location = line * this.width * 4 + x * 4;\n this.data[location] = 0;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n } //skip extra bytes\n\n\n this.pos += dif_w;\n }\n};\n\nBmpDecoder.prototype.bit24 = function () {\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n\n for (var x = 0; x < this.width; x++) {\n //Little Endian rgb\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = 0;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n } //skip extra bytes\n\n\n this.pos += this.width % 4;\n }\n};\n/**\n * add 32bit decode func\n * @author soubok\n */\n\n\nBmpDecoder.prototype.bit32 = function () {\n //BI_BITFIELDS\n if (this.compress == 3) {\n this.maskRed = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.maskGreen = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.maskBlue = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n this.mask0 = this.buffer.readUInt32LE(this.pos);\n this.pos += 4;\n\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n\n for (var x = 0; x < this.width; x++) {\n //Little Endian rgba\n var alpha = this.buffer.readUInt8(this.pos++);\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = alpha;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n }\n } else {\n for (var y = this.height - 1; y >= 0; y--) {\n var line = this.bottom_up ? y : this.height - 1 - y;\n\n for (var x = 0; x < this.width; x++) {\n //Little Endian argb\n var blue = this.buffer.readUInt8(this.pos++);\n var green = this.buffer.readUInt8(this.pos++);\n var red = this.buffer.readUInt8(this.pos++);\n var alpha = this.buffer.readUInt8(this.pos++);\n var location = line * this.width * 4 + x * 4;\n this.data[location] = alpha;\n this.data[location + 1] = blue;\n this.data[location + 2] = green;\n this.data[location + 3] = red;\n }\n }\n }\n};\n\nBmpDecoder.prototype.getData = function () {\n return this.data;\n};\n\nmodule.exports = function (bmpData) {\n var decoder = new BmpDecoder(bmpData);\n return decoder;\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _extends3 = _interopRequireDefault(require(\"@babel/runtime/helpers/esm/extends\"));\n\n/**\n *\n * The core part of tesseract.js to execute the OCR jobs.\n *\n * @fileoverview Worker for OCR jobs\n * @author Kevin Kwok <antimatter15@gmail.com>\n * @author Guillermo Webster <gui@mit.edu>\n * @author Jerome Wu <jeromewus@gmail.com>\n */\nvar check = require('check-types');\n\nvar resolveURL = typeof window !== 'undefined' && typeof window.document !== 'undefined' ? require('resolve-url') : function (s) {\n return s;\n};\n\nvar adapter = require('../node');\n\nvar circularize = require('./circularize');\n\nvar TesseractJob = require('./TesseractJob');\n/**\n * TesseractWorker\n * @name TesseractWorker\n * @function execute TesseractJob with a queue mechanism\n * @access public\n */\n\n\nvar TesseractWorker = /*#__PURE__*/function () {\n /**\n * constructor\n *\n * @name constructor\n * @function initialize the worker\n * @access public\n * @param {object} options - worker configurations\n * @param {string} options.workerPath -\n * A remote path to load worker script.\n * In browser-like environment, it is downloaded from a CDN service.\n * Please update this option if you self-host the worker script.\n * In Node.js environment, this option is not used as the worker script is in local.\n * @param {boolean} [options.workerBlobURL=true] - Use a blob: URL for the worker script\n * @param {string} options.corePath -\n * A remote path to load tesseract.js-core script.\n * In browser-like environment, it is downloaded from a CDN service.\n * Please update this option if you self-host the core script.\n * In Node.js environment, this option is not used as the core script is in local.\n * @param {string} options.langPath -\n * A remote path to load *.traineddata.gz, it is download from a CDN service.\n * Please update this option if you self-host the worker script.\n * @param {string} [options.cachePath=.] - @see {@link https://github.com/jeromewu/tesseract.js-utils/blob/master/src/loadLang.js}\n * @param {string} [options.cacheMethod=write] - @see {@link https://github.com/jeromewu/tesseract.js-utils/blob/master/src/loadLang.js}\n * @param {string} [options.dataPath=.] - @see {@link https://github.com/jeromewu/tesseract.js-utils/blob/master/src/loadLang.js}\n *\n */\n function TesseractWorker(options) {\n var _this = this;\n\n if (options === void 0) {\n options = {};\n }\n\n this.worker = null;\n this.options = (0, _extends3.default)({}, adapter.defaultOptions, {}, options);\n ['corePath', 'workerPath', 'langPath'].forEach(function (key) {\n if (check.not.undefined(options[key])) {\n var _extends2;\n\n _this.options = (0, _extends3.default)({}, _this.options, (_extends2 = {}, _extends2[key] = resolveURL(options[key]), _extends2));\n }\n });\n this._currentJob = null;\n this._queue = [];\n }\n /**\n * recognize\n *\n * @name recognize\n * @function recognize text in given image\n * @access public\n * @param {Buffer, string} image - image to be recognized\n * @param {string, array} [langs=eng] - languages to recognize\n * @param {object} params - tesseract parameters\n *\n */\n\n\n var _proto = TesseractWorker.prototype;\n\n _proto.recognize = function recognize(image, langs, params) {\n if (langs === void 0) {\n langs = 'eng';\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return this._sendJob('recognize', image, langs, params);\n }\n /**\n * detect\n *\n * @name detect\n * @function detect language of the text in the image\n * @access public\n * @param {Buffer, string} image - image to be recognized\n * @param {object} params - tesseract parameters\n *\n */\n ;\n\n _proto.detect = function detect(image, params) {\n if (params === void 0) {\n params = {};\n }\n\n return this._sendJob('detect', image, 'osd', params);\n }\n /**\n * recv\n *\n * @name recv\n * @function handle completed job\n * @access public\n * @param {object} packet job data\n */\n ;\n\n _proto.recv = function recv(packet) {\n if (this._currentJob.id === packet.jobId) {\n this._currentJob.handle((0, _extends3.default)({}, packet, {\n data: packet.status === 'resolve' && packet.action === 'recognize' ? circularize(packet.data) : packet.data\n }));\n } else {\n console.warn(\"Job ID \" + packet.jobId + \" not known.\");\n }\n }\n /**\n * dequeue\n *\n * @name dequeue\n * @function dequeue and execute the rear job\n * @access public\n */\n ;\n\n _proto.dequeue = function dequeue() {\n this._currentJob = null;\n\n if (this._queue.length) {\n this._queue[0]();\n }\n }\n /**\n * terminate\n *\n * @name terminate\n * @function terminate the worker\n * @access public\n *\n */\n ;\n\n _proto.terminate = function terminate() {\n if (this.worker) {\n adapter.terminateWorker(this);\n }\n\n this.worker = null;\n this._currentJob = null;\n this._queue = [];\n }\n /**\n * _sendJob\n *\n * @name _sendJob\n * @function append a new job to the job queue\n * @access private\n * @param {string} type job type, should be recognize or detect\n * @param {Buffer, string} image image to recognize\n * @param {string} lang language to recognize\n * @param {object} params tesseract parameters\n */\n ;\n\n _proto._sendJob = function _sendJob(type, image, langs, params) {\n var _this2 = this;\n\n return this._delay(function (job) {\n job.send(type, {\n image: image,\n langs: langs,\n params: params,\n options: _this2.options\n });\n });\n }\n /**\n * _delay\n *\n * @name _delay\n * @function delays the fn to execute until it is on the rear of the queue\n * @access private\n * @param {function} fn A handler function for the job\n */\n ;\n\n _proto._delay = function _delay(fn) {\n var _this3 = this;\n\n if (check.null(this.worker)) {\n this.worker = adapter.spawnWorker(this, this.options);\n }\n\n var job = new TesseractJob(this);\n\n this._queue.push(function () {\n _this3._queue.shift();\n\n _this3._currentJob = job;\n fn(job);\n });\n\n if (check.null(this._currentJob)) {\n this.dequeue();\n }\n\n return job;\n };\n\n return TesseractWorker;\n}();\n\nmodule.exports = TesseractWorker;","\"use strict\";\n\nmodule.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\n\nvar defaults = require('./../defaults');\n\nvar utils = require('./../utils');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {\n method: 'get'\n }, this.defaults, config);\n config.method = config.method.toLowerCase(); // Hook up interceptors middleware\n\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n}; // Provide aliases for supported request methods\n\n\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(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar createError = require('./createError');\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\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus; // Note: status is not exposed by XDomainRequest\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n return error;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%40/gi, '@').replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\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 * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\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} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // 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.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var 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); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\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) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\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\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\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\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\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\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\n\nvar combineURLs = require('./../helpers/combineURLs');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\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 * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Support baseURL config\n\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n } // Ensure headers exist\n\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData(config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers || {});\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData(response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData(reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n\nvar utils = require('./../utils');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n return data;\n};","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = 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};","'use strict';\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 * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\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 * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","\"use strict\";\n\nmodule.exports = function (s) {\n return new Uint8Array(atob(s).split('').map(function (c) {\n return c.charCodeAt(0);\n }));\n};","\"use strict\";\n\nvar _require = require('./types'),\n OEM = _require.OEM,\n PSM = _require.PSM;\n\nmodule.exports = {\n defaultOptions: {\n /*\n * default path for downloading *.traineddata, this URL basically\n * points to a github page, not using jsDelivr as there is is limitation\n * of 20 MB.\n */\n langPath: 'https://tessdata.projectnaptha.com/4.0.0',\n\n /*\n * Use BlobURL for worker script by default\n */\n workerBlobURL: true\n },\n\n /*\n * default params for recognize()\n */\n defaultParams: {\n tessedit_ocr_engine_mode: OEM.LSTM_ONLY,\n tessedit_pageseg_mode: PSM.SINGLE_BLOCK,\n tessedit_char_whiltelist: '',\n tessjs_create_pdf: '0',\n tessjs_create_hocr: '1',\n tessjs_create_tsv: '1',\n tessjs_create_box: '0',\n tessjs_create_unlv: '0',\n tessjs_create_osd: '0',\n tessjs_textonly_pdf: '0',\n tessjs_pdf_name: 'tesseract.js-ocr-result',\n tessjs_pdf_title: 'Tesseract.js OCR Result',\n tessjs_pdf_auto_download: true,\n tessjs_pdf_bin: false,\n tessjs_image_rectangle_left: 0,\n tessjs_image_rectangle_top: 0,\n tessjs_image_rectangle_width: -1,\n tessjs_image_rectangle_height: -1\n }\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/esm/extends\"));\n\n/**\n * The result of dump.js is a big JSON tree\n * which can be easily serialized (for instance\n * to be sent from a webworker to the main app\n * or through Node's IPC), but we want\n * a (circular) DOM-like interface for walking\n * through the data.\n *\n * @fileoverview DOM-like interface for walking through data\n * @author Kevin Kwok <antimatter15@gmail.com>\n * @author Guillermo Webster <gui@mit.edu>\n * @author Jerome Wu <jeromewus@gmail.com>\n */\nmodule.exports = function (iPage) {\n var page = (0, _extends2.default)({}, iPage, {\n paragraphs: [],\n lines: [],\n words: [],\n symbols: []\n });\n page.blocks.forEach(function (iBlock) {\n var block = (0, _extends2.default)({}, iBlock, {\n page: page,\n lines: [],\n words: [],\n symbols: []\n });\n block.paragraphs.forEach(function (iPara) {\n var para = (0, _extends2.default)({}, iPara, {\n block: block,\n page: page,\n words: [],\n symbols: []\n });\n para.lines.forEach(function (iLine) {\n var line = (0, _extends2.default)({}, iLine, {\n paragraph: para,\n block: block,\n page: page,\n symbols: []\n });\n line.words.forEach(function (iWord) {\n var word = (0, _extends2.default)({}, iWord, {\n line: line,\n paragraph: para,\n block: block,\n page: page\n });\n word.symbols.forEach(function (iSym) {\n var sym = (0, _extends2.default)({}, iSym, {\n word: word,\n line: line,\n paragraph: para,\n block: block,\n page: page\n });\n sym.line.symbols.push(sym);\n sym.paragraph.symbols.push(sym);\n sym.block.symbols.push(sym);\n sym.page.symbols.push(sym);\n });\n word.paragraph.words.push(word);\n word.block.words.push(word);\n word.page.words.push(word);\n });\n line.block.lines.push(line);\n line.page.lines.push(line);\n });\n para.page.paragraphs.push(para);\n });\n });\n return page;\n};","\"use strict\";\n\n/**\n *\n * The job exectued by worker, each job is basically a recognition of an image.\n *\n * @fileoverview Job excuted by Worker\n * @author Kevin Kwok <antimatter15@gmail.com>\n * @author Guillermo Webster <gui@mit.edu>\n * @author Jerome Wu <jeromewus@gmail.com>\n */\nvar adapter = require('../node/');\n/** A global job counter as part of job id */\n\n\nvar jobCounter = 0;\n\nvar TesseractJob = /*#__PURE__*/function () {\n /**\n * constructor\n *\n * @name constructor\n * @function initial a TesseractJob\n * @access public\n * @param {object} worker - An instance of TesseractWorker\n */\n function TesseractJob(worker) {\n jobCounter += 1;\n this.id = \"Job-\" + jobCounter + \"-\" + Math.random().toString(16).slice(3, 8);\n this._worker = worker;\n /**\n * As all the callback functions are saved in an array.\n * Basically you can register more than callback function\n * for then, catch, progress and finally.\n */\n\n this._resolve = [];\n this._reject = [];\n this._progress = [];\n this._finally = [];\n }\n /**\n * then\n *\n * @name then\n * @function A function to chain like Promise\n * @access public\n * @param {function} resolve - called when the job succeeds\n * @param {function} reject - called when the job fails\n */\n\n\n var _proto = TesseractJob.prototype;\n\n _proto.then = function then(resolve, reject) {\n var _this = this;\n\n return new Promise(function (res, rej) {\n if (!_this._resolve.push) {\n res(_this._result);\n } else {\n _this._resolve.push(res);\n }\n\n _this.catch(rej);\n }).then(resolve, reject);\n }\n /**\n * catch\n *\n * @name catch\n * @function register a function to call when there is an error\n * @access public\n * @param {function} reject - callback function for error\n */\n ;\n\n _proto.catch = function _catch(reject) {\n if (this._reject.push) {\n this._reject.push(reject);\n } else {\n reject(this._reject);\n }\n\n return this;\n }\n /**\n * progress\n *\n * @name progress\n * @function register a function to show progress of the recognition,\n * use res.progress to print the message\n * @access public\n * @param {function} fn - callback function for progress information\n */\n ;\n\n _proto.progress = function progress(fn) {\n this._progress.push(fn);\n\n return this;\n }\n /**\n * finally\n *\n * @name finally\n * @function registry a callback function for final\n * @access public\n * @param {function} fn - callback function for final\n */\n ;\n\n _proto.finally = function _finally(fn) {\n this._finally.push(fn);\n\n return this;\n }\n /**\n * send\n *\n * @name send\n * @function send specific action with payload a worker\n * @access public\n * @param {string} action - action to trigger, should be \"recognize\" or \"detect\"\n * @param {object} payload - data to be consumed\n */\n ;\n\n _proto.send = function send(action, payload) {\n adapter.sendPacket(this._worker, {\n jobId: this.id,\n action: action,\n payload: payload\n });\n }\n /**\n * handle\n *\n * @name handle\n * @function execute packet action\n * @access public\n * @param {object} packet action and payload to handle\n */\n ;\n\n _proto.handle = function handle(packet) {\n var data = packet.data;\n var runFinallyCbs = false;\n\n if (packet.status === 'resolve') {\n if (this._resolve.length === 0) console.log(data);\n\n this._resolve.forEach(function (fn) {\n var ret = fn(data);\n\n if (ret && typeof ret.then === 'function') {\n console.warn('TesseractJob instances do not chain like ES6 Promises. To convert it into a real promise, use Promise.resolve.');\n }\n });\n\n this._resolve = data;\n\n this._worker.dequeue();\n\n runFinallyCbs = true;\n } else if (packet.status === 'reject') {\n if (this._reject.length === 0) console.error(data);\n\n this._reject.forEach(function (fn) {\n return fn(data);\n });\n\n this._reject = data;\n\n this._worker.dequeue();\n\n runFinallyCbs = true;\n } else if (packet.status === 'progress') {\n this._progress.forEach(function (fn) {\n return fn(data);\n });\n } else {\n console.warn('Message type unknown', packet.status);\n }\n\n if (runFinallyCbs) {\n this._finally.forEach(function (fn) {\n return fn(data);\n });\n }\n };\n\n return TesseractJob;\n}();\n\nmodule.exports = TesseractJob;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/esm/extends\"));\n\n/**\n *\n * Entry point for tesseract.js, should be the entry when bundling.\n *\n * @fileoverview entry point for tesseract.js\n * @author Kevin Kwok <antimatter15@gmail.com>\n * @author Guillermo Webster <gui@mit.edu>\n * @author Jerome Wu <jeromewus@gmail.com>\n */\nvar utils = require('tesseract.js-utils');\n\nvar TesseractWorker = require('./common/TesseractWorker');\n\nvar types = require('./common/types');\n\nmodule.exports = (0, _extends2.default)({\n /** Worker for OCR, @see common/TesseractWorker.js */\n TesseractWorker: TesseractWorker,\n\n /** Utilities for tesseract.js, @see {@link https://www.npmjs.com/package/tesseract.js-utils} */\n utils: utils\n}, types);"],"sourceRoot":""} |