{"version":3,"sources":["videomail-client.js"],"names":["f","exports","module","define","amd","window","global","self","this","VideomailClient","r","e","n","t","o","i","c","require","u","a","Error","code","p","call","length","1","_dereq_","root","factory","modules","installedModules","__webpack_require__","moduleId","id","loaded","m","Object","defineProperty","value","default","target","name","listener","options","optionName","arguments","undefined","addEventListener","listenerOptions","_checkSupport","SupportMap","assign","obj","key","enumerable","configurable","writable","_defineProperty","_OptionsMap","_constants","OptionsMap","PASSIVE","CAPTURE","ONCE","keys","forEach","k","property","opts","get","removeListener","checkSupportForProperty","2","methods","EventEmitter","inherits","raf","defaultRAFObject","requestAnimationFrame","cancelAnimationFrame","cancel","returnTrue","Animitter","__delay","delay","fixedDelta","frameCount","deltaTime","elapsedTime","__running","__completed","setFPS","fps","Infinity","setRequestAnimationFrameObject","requestAnimationFrameObject","onStart","scope","rAFID","now","Date","running","__lastTime","emit","lastRAFObject","drawFrame","__isReadyForUpdate","update","method","off","prototype","trigger","complete","stop","dispose","removeAllListeners","getDeltaTime","getElapsedTime","getFPS","getFPSLimit","__fps","getFrameCount","getRequestAnimationFrameObject","isRunning","isCompleted","reset","lastTime","half","Math","ceil","makeThrottle","object","start","setTimeout","globalFixedDelta","min","createAnimitter","fn","_instance","on","bind","apply","bound","fnKey","loop","functionKeys","arr","push","functions","hasBind","Function","getTime","events","3","Buffer","w","a2b","atob","str","toString","base64js","buf","b64ToByteArray","Array","map","ch","String","fromCharCode","join","buffer","4","toBuffer","isFloat32Array","float32Array","l","Int16Array","typedarray-to-buffer","validate.io-float32array","5","byteLength","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","tmp","Arr","curByte","len","revLookup","charCodeAt","fromByteArray","uint8","extraBytes","parts","len2","encodeChunk","lookup","Uint8Array","indexOf","end","num","output","6","7","undef","nativeSplit","compliantExecNpcg","split","exec","separator","limit","separator2","match","lastIndex","lastLength","flags","ignoreCase","multiline","extended","sticky","lastLastIndex","RegExp","source","index","slice","replace","test","8","base64","ieee754","SlowBuffer","alloc","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","RangeError","__proto__","arg","encodingOrOffset","allocUnsafe","from","TypeError","isArrayBuffer","array","byteOffset","fromArrayBuffer","string","encoding","isEncoding","actual","write","fromString","isBuffer","checked","copy","ArrayBuffer","isView","numberIsNaN","fromArrayLike","type","isArray","data","fromObject","assertSize","size","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","swap","b","bidirectionalIndexOf","val","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","j","hexWrite","offset","Number","remaining","strLen","parsed","parseInt","substr","asciiWrite","blitBuffer","byteArray","asciiToBytes","base64Slice","utf8Slice","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","console","error","Symbol","species","poolSize","fill","allocUnsafeSlow","_isBuffer","compare","x","y","concat","list","pos","swap16","swap32","swap64","toLocaleString","hexSlice","asciiSlice","latin1Slice","utf16leSlice","equals","inspect","max","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","units","hi","lo","utf16leToBytes","toJSON","_arr","ret","out","toHex","bytes","checkOffset","ext","checkInt","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","set","INVALID_BASE64_RE","leadSurrogate","trim","base64clean","src","dst","constructor","base64-js","9","verifiedImageType","isBrowser","document","createElement","canvas","image","types","quality","parseFloat","composeImageType","imageType","isMatch","uri","debug","getTestCanvas","testCanvas","width","height","canvasSupportsImageTypeAsync","cb","toDataURL","err","exc","canvasSupportsImageTypeSync","logger","verifyImageType","uriToBuffer","uriSplitted","getImageType","newVerifiedImageType","10","indexof","isTruthy","elem","cl","classList","add","remove","contains","toggle","token","className","item","getTokens","setTokens","splice","filter","11","createElementNS","testElement","createMethod","original","DOMTokenList","_toggle","force","view","classListProp","protoProp","elemCtrProto","Element","objCtr","strTrim","arrIndexOf","DOMEx","message","DOMException","checkTokenAndGetIndex","ClassList","trimmedClasses","getAttribute","classes","_updateClassName","setAttribute","classListProto","classListGetter","tokens","updated","result","classListPropDesc","ex","number","__defineGetter__","12","Emitter","mixin","event","_callbacks","once","removeEventListener","callbacks","args","listeners","hasListeners","13","DOCUMENT_POSITION_CONTAINED_BY","container","comparison","compareDocumentPosition","14","objectToString","isBoolean","isNull","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","re","isObject","isDate","d","isError","isFunction","isPrimitive","../../is-buffer/index.js","15","createErrorLib","lastcreateError","createError","noConflict","properties","ErrorCtor","attachProps","stack","captureStackTrace","Err","context","inheritedKeys","clone","cloned","create","attr","hasOwnProperty","16","isMergeableObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","for","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","element","arrayMerge","destination","sourceIsArray","all","reduce","prev","next","17","18","Despot","util","_singletonDespotInstance","19","Event","Keys","noop","visible","onChange","broadcast","hidden","./keys","geval","global/document","20","prefix","mozHidden","msHidden","webkitHidden","detectPrefix","substring","21","process","stream","eos","shift","SIGNAL_FLUSH","onuncork","_corked","destroyer","_destroyInterval","_ended","Duplexify","readable","Duplex","_writable","_readable","_readable2","_forwardDestroy","destroy","_forwardEnd","_ondrain","_drained","_forwarding","_unwrite","_unread","_error","_preferError","destroyed","setWritable","setReadable","objectMode","highWaterMark","cork","uncork","unend","ondrain","nextTick","resume","rs","onreadable","_forward","onend","_readableState","wrap","_read","_destroy","_write","enc","_finish","ws","_writableState","prefinished","finished","ending","Writable","_process","end-of-stream","readable-stream","stream-shift","22","ElementProto","matches","msMatchesSelector","mozMatchesSelector","webkitMatchesSelector","selector","elements","ownerDocument","querySelectorAll","Boolean","closest","nodeType","parentNode","23","callback","onlegacyfinish","onfinish","onexit","exitCode","onerror","onclose","ended","onrequest","req","setHeader","abort","stdio","24","objectCreate","proto","F","objectKeys","_events","_eventsCount","_maxListeners","hasDefineProperty","defaultMaxListeners","$getMaxListeners","that","_addListener","prepend","existing","newListener","unshift","warned","emitter","count","warn","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","listenerCount","evlistener","arrayClone","setMaxListeners","isNaN","getMaxListeners","er","handler","doError","isFn","emitNone","arg1","emitOne","arg2","emitTwo","arg3","emitThree","emitMany","addListener","prependListener","prependOnceListener","position","originalListener","pop","spliceOne","unwrapListeners","eventNames","Reflect","ownKeys","25","symbol","iec","bits","jedec","fullform","filesize","base","full","fullforms","neg","round","unix","spacer","standard","symbols","descriptor","suffixes","exponent","floor","log","toFixed","charAt","suffix","partial","opt","26","__esModule","getFormData","getFieldData","NODE_LIST_CLASSES","[object HTMLCollection]","[object NodeList]","[object RadioNodeList]","IGNORED_ELEMENT_TYPES","button","fieldset","submit","CHECKED_INPUT_TYPES","checkbox","radio","TRIM_RE","form","elementName","elementNames","elementNameLookup","disabled","_i","_l","fieldName","getFormElementValue","allRadios","selectedIndex","selected","multiple","files","27","listen","28","broadcaster","tuple","./event.js","29","doccy","topLevel","minDoc","min-document","30","win","31","style","display","32","greek","mo","h","s","ms","decimal","languages","ar","getArabicForm","bg","getSlavicForm","ca","cs","getCzechOrSlovakForm","da","de","el","en","es","fa","fi","fr","gr","hr","mod10","hu","is","it","ja","ko","lt","getLithuanianForm","nl","no","pl","getPolishForm","pt","ru","uk","ur","sk","sv","tr","vi","zh_CN","zh_TW","humanizer","passedOptions","humanizerOptions","piece","abs","dictionary","language","unitName","unitMS","unitCount","pieces","unitMeasures","ratioToLargerUnit","previousPiece","firstOccupiedUnitIndex","largest","render","conjunction","delimiter","serialComma","doHumanization","extend","humanizeDuration","word","countStr","dictionaryValue","prop","getSupportedLanguages","33","Text","cleanupFuncs","appendChild","createTextNode","v","isNode","attachEvent","detachEvent","cssText","setProperty","parentElement","replaceChild","textContent","cleanup","nodeName","browser-split","class-list","html-element","34","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","LN2","35","36","ctor","superCtor","super_","TempCtor","37","containers","styleElements","usage","insertCss","css","styleElement","querySelector","containerId","insertBefore","childNodes","styleSheet","38","intervalometer","request","requestParameter","requestId","previousLoopTime","frameIntervalometer","timerIntervalometer","clearTimeout","39","preventEvent","eventName","stopImmediatePropagation","proxyProperty","propertyName","sourceObject","copyFirst","proxyEvent","dispatchEvent","dispatchEventAsync","Promise","resolve","then","iOS8or9","head","matchMedia","IIV","IIVEvent","IIVPlay","IIVPause","lastTimeupdateEvent","lastRequests","requestIndex","setTime","video","time","rememberOnly","currentTime","isPlayerEnded","player","driver","duration","play","webkitDisplayingFullscreen","paused","buffered","load","updater","hasAudio","readyState","HAVE_ENOUGH_DATA","pause","forceEvents","addPlayer","audio","timeDiff","HAVE_FUTURE_DATA","playbackRate","networkState","NETWORK_IDLE","Audio","crossOrigin","currentSrc","muted","wasEmpty","autoplay","preventWithPropOrFullscreen","isAllowed","everywhere","iPad","ipad","navigator","userAgent","willAutoplay","restoreAutoplay","platform","40","41","numberIsNan","number-is-nan","42","43","isTypedArray","strict","isStrictTypedArray","loose","isLooseTypedArray","names","[object Int8Array]","[object Int16Array]","[object Int32Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Uint16Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]","Int8Array","Int32Array","Uint8ClampedArray","Uint16Array","Uint32Array","Float32Array","Float64Array","44","45","46","numberIsFinite","isInteger","is-finite","47","48","wrappy","called","onceStrict","onceError","49","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","uptime","50","version","51","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","title","browser","env","argv","versions","binding","cwd","chdir","umask","52","vendors","caf","last","_now","cp","cancelled","handle","polyfill","performance-now","53","pna","Readable","allowHalfOpen","onEndNT","./_stream_readable","./_stream_writable","core-util-is","process-nextick-args","54","PassThrough","Transform","_transform","chunk","./_stream_transform","55","ReadableState","EElistenerCount","Stream","OurUint8Array","debugUtil","debuglog","StringDecoder","BufferList","destroyImpl","kProxyEvents","isDuplex","readableObjectMode","hwm","readableHwm","readableHighWaterMark","defaultHwm","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","defaultEncoding","awaitDrain","readingMore","decoder","readableAddChunk","addToFront","skipChunkCheck","emitReadable","onEofChunk","chunkInvalid","getPrototypeOf","addChunk","maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","MAX_HWM","howMuchToRead","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","clear","hasStrings","nb","tail","copyFromBufferString","copyFromBuffer","fromListPartial","endReadable","endReadableNT","xs","nOrig","doRead","pipe","dest","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondata","cleanedUp","needDrain","increasedAwaitDrain","dests","ev","_this","_fromList","./_stream_duplex","./internal/streams/BufferList","./internal/streams/destroy","./internal/streams/stream","isarray","safe-buffer","string_decoder/","56","_transformState","afterTransform","ts","transforming","writecb","writechunk","needTransform","writeencoding","transform","flush","_flush","prefinish","done","_this2","err2","57","CorkedRequest","entry","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","asyncWrite","setImmediate","WritableState","internalUtil","deprecate","realHasInstance","nop","writableObjectMode","writableHwm","writableHighWaterMark","finalCalled","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","finishMaybe","errorEmitted","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","bufferedRequestCount","writev","_writev","final","_final","doWrite","holder","allBuffers","isBuf","callFinal","need","getBuffer","current","_","hasInstance","valid","newChunk","decodeChunk","writeOrBuffer","setDefaultEncoding","endWritable","util-deprecate","58","instance","Constructor","_classCallCheck","custom","59","emitErrorNT","readableDestroyed","writableDestroyed","60","61","nenc","retried","_normalizeEncoding","normalizeEncoding","text","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","total","utf8CheckIncomplete","62","./lib/_stream_duplex.js","./lib/_stream_passthrough.js","./lib/_stream_readable.js","./lib/_stream_transform.js","./lib/_stream_writable.js","63","readystate","doc","html","documentElement","change","modern","doScroll","frameElement","polling","evt","./readystate","64","generate","RS","UNKNOWN","states","clean","previously","nr","toUpperCase","65","assignedRequestAnimationFrame","assignedCancelAnimationFrame","requestFrameMain","aF","rqAF","mozRAF","mozRequestAnimationFrame","mozCAF","mozCancelAnimationFrame","hasMozMismatch","previousTime","hasIOS6RequestAnimationFrameBug","hasBugNotice","webkitFn","nativeFn","timingFnB","notice","webkitRAF","webkitRequestAnimationFrame","rAF","hasMobileDeviceWidth","screen","requiresWebkitprefix","hasNoNavigationTiming","clearTimeoutWithId","setTimeoutWithTimestamp","immediateTime","lapsedTime","queryRequestAnimationFrame","vendor","queryCancelAnimationFrame","cancellationNames","cancellationNamePrefix","prefixedNames","cancellationFunction","prefixedCancelAnimationFrame","requestFrame","66","copyProps","SafeBuffer","67","hasProp","throwsMessage","ensureProperties","seen","visit","fResult","aResult","safeGetValueFromPropertyOnObject","replacer","space","JSON","stringify","68","69","Agent","_defaults","_setDefaults","def","70","RequestBase","ResponseBase","url","Request","getXHR","XMLHttpRequest","location","protocol","ActiveXObject","serialize","pairs","pushEncodedKeyValuePair","subkey","encodeURIComponent","parseString","pair","decodeURIComponent","isJSON","mime","Response","xhr","responseType","responseText","statusText","status","_setStatusProperties","header","headers","line","field","lines","fields","parseHeader","getAllResponseHeaders","getResponseHeader","_setHeaderProperties","_responseType","body","response","_parseBody","_query","_header","new_err","parse","rawResponse","statusCode","_isResponseOK","custom_err","del","send","serializeObject","json","xml","urlencoded","form-data","application/x-www-form-urlencoded","application/json","_parser","toError","msg","accept","auth","user","pass","btoa","_auth","query","attach","file","_data","_getFormData","append","_formData","FormData","_shouldRetry","_retry","_callback","_maxRetries","retries","_retries","crossDomainError","crossDomain","agent","_isHost","_endCalled","_finalizeQueryString","_end","_setTimeouts","onreadystatechange","_responseTimeoutTimer","timedout","_aborted","handleProgress","direction","percent","onprogress","upload","username","password","open","_withCredentials","withCredentials","contentType","_serializer","setRequestHeader","patch","post","put","./agent-base","./is-object","./request-base","./response-base","component-emitter","71","72","_timer","_timeout","_responseTimeout","option","deadline","retry","_retryCallback","ERROR_CODES","override","reject","_fullfilledPromise","innerResolve","innerReject","use","ok","_okCallback","getHeader","unset","base64Encoder","redirects","_maxRedirects","maxResponseSize","_maxResponseSize","isObj","sortQuery","sort","_sort","queryArr","_appendQueryString","trace","_timeoutError","reason","errno","73","utils","ct","params","links","link","parseLinks","statusType","info","redirect","clientError","serverError","created","accepted","noContent","badRequest","unauthorized","notAcceptable","forbidden","notFound","unprocessableEntity","./utils","74","cleanHeader","changesOrigin","75","is-typedarray","76","FUNC_TYPE","UNDEF_TYPE","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","regexes","extensions","margedRegexes","has","str1","str2","lowerize","major","mapper","rgx","ua","arrays","q","regex","props","maps","oldsafari","1.0","1.2","1.3","2.0","2.0.2","2.0.3","2.0.4","?","device","amazon","model","Fire Phone","sprint","Evo Shift 4G","HTC","Sprint","os","windows","ME","NT 3.11","NT 4.0","2000","XP","Vista","8.1","RT","cpu","engine","UAParser","uastring","getResult","rgxmap","getBrowser","getCPU","architecture","getDevice","getEngine","getOS","getUA","setUA","BROWSER","MAJOR","CPU","DEVICE","EMBEDDED","ENGINE","OS","$","jQuery","Zepto","parser","77","config","localStorage","78","dup","79","80","formatRegExp","format","objects","noDeprecation","throwDeprecation","traceDeprecation","debugEnviron","debugs","ctx","stylize","stylizeNoColor","depth","colors","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","recurseTimes","primitive","simple","formatPrimitive","hash","visibleKeys","idx","getOwnPropertyNames","formatError","braces","toUTCString","formatProperty","formatArray","cur","numLinesEst","reduceToSingleString","desc","getOwnPropertyDescriptor","pad","NODE_DEBUG","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","boolean","null","date","regexp","months","getHours","getMinutes","getSeconds","getDate","getMonth","origin","./support/isBuffer","81","isStr","82","duplexify","WS","protocols","socket","isNative","WebSocket","socketWrite","socketWriteBrowser","bufferedAmount","bufferSize","bufferTimeout","coerceToBuffer","OPEN","binary","proxy","socketEnd","close","chunks","buffers","browserBufferSize","browserBufferTimeout","binaryType","onopen","onmessage","83","MozWebSocket","84","wrapper","85","description","author","contributors","email","homepage","repository","license","readmeFilename","main","scripts","minor","engines","node","yarn","npm","keywords","dependencies","add-eventlistener-with-options","animitter","audio-sample","canvas-to-buffer","classlist.js","create-error","defined","despot","document-visibility","element-closest","get-form-data","humanize-duration","hyperscript","insert-css","iphone-inline-video","is-power-of-two","keymirror","number-is-integer","request-frame","safe-json-stringify","superagent","ua-parser-js","websocket-stream","devDependencies","@babel/core","@babel/polyfill","@babel/preset-env","babelify","body-parser","browserify","connect-send-json","fancy-log","glob","gulp","gulp-autoprefixer","gulp-bump","gulp-bytediff","gulp-concat","gulp-connect","gulp-cssnano","gulp-derequire","gulp-if","gulp-inject-string","gulp-load-plugins","gulp-plumber","gulp-rename","gulp-sourcemaps","gulp-standard","gulp-stylus","gulp-todo","gulp-uglify","minimist","nib","router","ssl-root-cas","tap-summary","tape","tape-catch","tape-run","vinyl-buffer","vinyl-source-stream","watchify","86","collectLogger","_deepmerge","_interopRequireDefault","_readystate","_util","_options","_collectLogger","_eventEmitter","_container","_replay","_optionsWrapper","_browser","_resource","replay","building","localOptions","addFunctions","adjustOptions","show","isBuilt","BUILT","videomail","interactive","getElementById","isOutsideElementOf","build","hasElement","getReplay","getParentElement","addPlayerDimensions","hideForm","deep","loadForm","setVideomail","showReplayOnly","startOver","hide","unload","canRecord","isDirty","isRecording","getLogLines","getLines","previousState","public","_default","./constants","./events","./options","./resource","./util/browser","./util/collectLogger","./util/eventEmitter","./wrappers/container","./wrappers/optionsWrapper","./wrappers/visuals/replay","87","SITE_NAME_LABEL","VERSION_LABEL","ENC_TYPE_APP_JSON","ENC_TYPE_FORM","88","FORM_READY","LOADING_USER_MEDIA","USER_MEDIA_READY","CONNECTING","CONNECTED","DISCONNECTED","COUNTDOWN","RECORDING","STOPPING","PROGRESS","BEGIN_AUDIO_ENCODING","BEGIN_VIDEO_ENCODING","RESETTING","PAUSED","RESUMING","PREVIEW","PREVIEW_SHOWN","REPLAY_SHOWN","INVALID","VALIDATING","VALID","SUBMITTING","SUBMITTED","ERROR","BLOCKING","SENDING_FIRST_FRAME","FIRST_FRAME_SENT","HIDE","NOTIFYING","ENABLING_AUDIO","DISABLING_AUDIO","LOADED_META_DATA","EVENT_EMITTED","GOING_BACK","STARTING_OVER","ASKING_WEBCAM_PERMISSION","VISIBLE","INVISIBLE","89","_package","logStackSize","verbose","NODE_ENV","baseUrl","socketUrl","siteName","cache","enablePause","enableAutoPause","enableSpace","disableSubmit","enableAutoValidation","enableAutoSubmission","enctype","selectors","replayClass","userMediaClass","visualsClass","buttonClass","buttonsClass","recordButtonClass","pauseButtonClass","resumeButtonClass","previewButtonClass","recordAgainButtonClass","submitButtonClass","subjectInputName","fromInputName","toInputName","bodyInputName","sendCopyInputName","keyInputName","parentKeyInputName","aliasInputName","formId","submitButtonId","submitButtonSelector","enabled","switch","volume","limitSeconds","countdown","facingMode","pausedHeader","pausedHint","sending","limitReached","buttons","record","recordAgain","preview","notifier","entertain","entertainClass","entertainLimit","entertainInterval","timeouts","userMedia","connection","pingInterval","adjustFormDataBeforePosting","defaults","to","subject","playerOnly","displayErrors","adjustFormOnBrowserError","reportErrors","fakeUaString","../package.json","90","applyDefaultValue","packError","identifier","queryParams","_superagent","CACHE_KEY","alias","reportError","applyDefaultValues","adjustedVideomail","formData","formType","91","92","scriptProcessor","audioInput","vcAudioContext","getAudioContextClass","AudioContext","webkitAudioContext","hasAudioContext","getAudioContext","init","localMediaStream","createGain","createMediaStreamSource","_videomailError","_isPowerOfTwo","gain","createScriptProcessor","CHANNELS","connect","onaudioprocess","inputBuffer","getChannelData","_audioSample","onAudioProcess","disconnect","catch","getSampleRate","sampleRate","./videomailError","93","_uaParserJs","_defined","_typeof","iterator","Browser","videoType","firefoxDownload","edgeDownload","chromeDownload","chromiumDownload","browseHappyLink","uaParser","isIOS","browserVersion","isChrome","isChromium","firefox","osVersion","isWindows","isEdge","isIE","isSafari","isOpera","isAndroid","chromeBased","isMobile","isOkSafari","isBadIOS","okBrowser","getRecommendation","warning","canPlayType","hasNavigator","mediaDevices","getUserMedia","getUserMedia_","checkRecordingCapabilities","IOS_PROBLEM","BROWSER_PROBLEM","isChromeBased","isFirefox","checkPlaybackCapabilities","getVideoType","checkBufferTypes","getNoAccessIssue","explanation","getUsefulData","94","lifo","level","parameters","addContainerId","firstArgument","toLocaleTimeString","groupCollapsed","groupEnd","./browser","95","moreArguments","_despot","./../events","96","_filesize2","_humanizeDuration","toTime","97","98","anything","_safeJsonStringify","DASH","SEPARATOR","arrayToString","sLines","propertyNames","excludes","exclude","99","_requestFrame","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","URL","webkitURL","mozURL","msURL","100","_createError","_pretty","VIDEOMAIL_ERR_NAME","VideomailError","logLines","useragent","pretty","PERMISSION_DENIED","NOT_ALLOWED_ERROR","NOT_CONNECTED","DOM_EXCEPTION","STARTING_FAILED","MEDIA_DEVICE_NOT_SUPPORTED","WEBCAM_PROBLEM","OVERCONSTRAINED","NOT_FOUND_ERROR","NOT_READABLE_ERROR","SECURITY_ERROR","TRACK_START_ERROR","INVALID_STATE_ERROR","audioEnabled","isAudioEnabled","errType","NotFoundError","constraint","href","originalExplanation","details","errCode","resource","videomailError","client","hasClass","getClassList","removeDimensions","hideButtons","browserProblem","./../resource","./pretty","101","_hyperscript","_hidden","_contains","Buttons","buttonsElement","recordButton","pauseButton","resumeButton","previewButton","recordAgainButton","submitButton","audioOnRadioPair","audioOffRadioPair","built","isShown","disable","tagName","enable","adjustButton","buttonElement","replaceClickHandler","clickHandler","onclick","preventDefault","makeRadioButtonPair","radioButtonElement","radioButtonGroup","htmlFor","label","changeHandler","onchange","makeButton","innerHTML","onFormReady","onFirstFrameSent","beginWaiting","initEvents","adjustButtonsForPause","framesCount","enableSubmit","isCountingDown","isRecordAgainButtonEnabled","isRecordButtonEnabled","setSubmitButton","newSubmitButton","getSubmitButton","hasForm","disableAudio","enableAudio","./../util/eventEmitter","102","_insertCss","_documentVisibility","_dimension","_visuals","_buttons","_form","_mainMinCss","Container","containerElement","visibility","visuals","htmlElement","hasError","submitted","lastValidation","getFormElement","isAutoPauseEnabled","isContentEditable","contentEditable","keyCode","which","pauseOrResume","recordOrStop","unloadChildren","correctDimensions","getRecorderWidth","endWaiting","trimEmail","submitForm","videomailResponse","baseURI","finalizeSubmissions","formResponse","isPost","playerHeight","calculateHeight","responsive","videoWidth","ratio","playerWidth","calculateWidth","videoHeight","limitWidth","limitHeight","fnOptions","merge","areVisualsHidden","isHidden","hasDefinedWidth","hasDefinedHeight","validateOptions","formElement","findSubmitButton","buildForm","isNotifierBuilt","child","reference","isReplayShown","back","keepHidden","enableForm","isNotifying","validate","runValidation","isConnected","isUserMediaLoaded","isConnecting","whyInvalid","visualsValid","isReady","invalidInput","getInvalidElement","disableForm","buttonsToo","submitAll","startSubmission","FORM_FIELDS","videomailFormData","err1","parentKey","sendCopy","recordingStats","getRecordingStats","getRecorderHeight","isRecorderUnloaded","loadVideomail","setAudioEnabled","doTheSubmit","./../styles/css/main.min.css.js","./../util/videomailError","./buttons","./dimension","./form","./optionsWrapper","./visuals","103","_numberIsInteger","figureMinHeight","limitedWidth","outerWidth","rect","getBoundingClientRect","right","left","limitedHeight","clientHeight","getRatio","calculatedWidth","104","Form","disableContainerValidation","keyInput","setDisabled","getInputElements","getSelectElements","input","inputElement","inputElements","selectElements","videomailKey","hideAll","validity","formIsValid","checkValidity","105","hasDefinedDimension","hasDefinedDimensions","hasVideoDimensions","defaultOptions","newOptions","106","_recorder","_notifier","_recorderInsides","Visuals","visualsElement","recorder","recorderInsides","buildChildren","noScriptElement","blockingOptions","isRecordable","clientWidth","removeChild","hidePause","isVisible","showPause","resumeCountdown","startCountdown","getRecorder","getAudioSampleRate","showVisuals","isUnloaded","checkTimer","intervalSum","hideReplay","hideRecorder","./visuals/inside/recorderInsides","./visuals/notifier","./visuals/recorder","./visuals/replay","107","countdownElement","intervalId","countBackward","setInterval","clearInterval","108","pausedBlockElement","pausedHeaderElement","pausedHintElement","hasPausedHint","./../../../../util/videomailError","109","recordNoteElement","setNear","setNigh","110","recordNote","recordTimerElement","started","nearComputed","endNighComputed","thresholdReached","secs","threshold","mins","remainingSeconds","getStartSeconds","check","newCountdown","111","_countdown","_pausedNote","_recordNote","_recordTimer","RecorderInsides","pausedNote","recordTimer","onResetting","hideCountdown","./../../../events","./../../../util/eventEmitter","./recorder/countdown","./recorder/pausedNote","./recorder/recordNote","./recorder/recordTimer","112","Notifier","notifyElement","messageElement","explanationElement","entertainTimeoutId","entertaining","notify","lead","stillWait","frameProgress","sampleProgress","overallProgress","setExplanation","hideExplanation","onBeginVideoEncoding","runEntertainment","randomBackgroundClass","random","cancelEntertainment","blocking","problem","notifyOptions","messageOptions","./../../events","./../../util/eventEmitter","113","_websocketStream","_canvasToBuffer","_animitter","_userMedia","_humanize","PIPE_SYMBOL","Recorder","originalAnimationFrameObject","recorderElement","userMediaTimeout","retryTimeout","bytesSum","userMediaLoaded","userMediaLoading","submitting","unloaded","stopTime","connecting","connected","waitingTime","frame","recordingBufferLength","recordingBuffer","samplesCount","confirmedFrameNumber","confirmedSampleNumber","writeStream","stopPings","onFlushedCallback","onUserMediaReady","newLoop","draw","clearUserMediaTimeout","calculateFrameProgress","calculateSampleProgress","updateOverallProgress","initSocket","url2Connect","perMessageDeflate","command","loadUserMedia","mp4","setMp4Source","webm","setWebMSource","sample","userMediaErrorCallback","getCharacteristics","getUserMediaCallback","localStream","audioSample","constraints","frameRate","ideal","genuineUserMediaRequest","loadGenuineUserMedia","writeCommand","commandObj","getIntervalSum","reInitialiseAudio","onFlushed","frameNumber","drawImage","getRawVisuals","setAnimationFrameObject","newObj","wantedInterval","processingTime","loopWithTimeouts","userMediaVideoWidth","getVideoWidth","getVideoHeight","avgFps","wantedFps","avgInterval","cause","unloadRemainingEventListeners","eventType","createCanvas","getContext","hasVideoWidth","getRawWidth","getRawHeight","getRawVisualUserMedia","./../../constants","./../../util/browser","./../../util/humanize","./../../util/pretty","./../../util/videomailError","./userMedia","114","_addEventlistenerWithOptions","_iphoneInlineVideo","Replay","replayElement","isStandalone","setVideoSource","bustCache","getVideoSource","newVideomail","attributeContainer","poster","attribute","recorderWidth","recorderHeight","buildElement","sources","getElementsByTagName","115","audioRecorder","currentVisualStream","rawVisualUserMedia","setVisualStream","srcObject","createObjectURL","attachMediaStream","removeAttribute","getVisualStream","mozSrcObject","hasEnded","visualStream","hasInvalidDimensions","logEvent","EVENT_ASCII","outputEvent","_mediaEvents","videoCallback","audioCallback","endedEarlyCallback","onPlayReached","onLoadedMetaDataReached","playingPromiseReached","audioRecord","unloadAllEventListeners","onPlay","onLoadedMetaData","played","fireCallbacks","_audioRecorder","videoTrack","videoTracks","getVideoTracks","getFirstVideoTrack","remote","kind","aboutToInitialize","tracks","getTracks","newStopApiFound","track","rawWidth","widthDefined","rawHeight","audioSampleRate","./../../util/audioRecorder","./../../util/mediaEvents","videomail-client","_standardize","_client","./client","./util/standardize"],"mappings":"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","file":"videomail-client.min.js","sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.VideomailClient = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 4 && arguments[4] !== undefined ? arguments[4] : 'passive';\n\n\t if (target.addEventListener !== undefined) {\n\t var listenerOptions = _checkSupport.SupportMap[optionName] ? Object.assign({}, options, _defineProperty({}, optionName, true)) : options;\n\t target.addEventListener(name, listener, listenerOptions);\n\t }\n\t}\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.SupportMap = undefined;\n\n\tvar _OptionsMap;\n\n\tvar _constants = __webpack_require__(2);\n\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\tvar OptionsMap = (_OptionsMap = {}, _defineProperty(_OptionsMap, _constants.PASSIVE, false), _defineProperty(_OptionsMap, _constants.CAPTURE, false), _defineProperty(_OptionsMap, _constants.ONCE, false), _OptionsMap);\n\n\tvar getOptionsMap = function getOptionsMap() {\n\t Object.keys(OptionsMap).forEach(function (k, i) {\n\t OptionsMap[k] = checkSupportForProperty(k);\n\t });\n\n\t return OptionsMap;\n\t};\n\n\tfunction checkSupportForProperty(property) {\n\t if (!!OptionsMap[property]) {\n\t return OptionsMap[property];\n\t }\n\n\t try {\n\t var opts = Object.defineProperty({}, property, {\n\t get: function get() {\n\t OptionsMap[property] = true;\n\t }\n\t });\n\t window.addEventListener(\"test\", null, opts);\n\t window.removeListener(\"test\", null);\n\t } catch (e) {}\n\n\t return OptionsMap[property];\n\t}\n\n\tvar SupportMap = exports.SupportMap = getOptionsMap();\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar PASSIVE = exports.PASSIVE = 'passive';\n\tvar CAPTURE = exports.CAPTURE = 'capture';\n\tvar ONCE = exports.ONCE = 'once';\n\n/***/ }\n/******/ ])\n});\n;\n},{}],2:[function(_dereq_,module,exports){\nvar EventEmitter = _dereq_('events').EventEmitter,\n inherits = _dereq_('inherits'),\n raf = _dereq_('raf'),\n methods;\n\n\n//the same as off window unless polyfilled or in node\nvar defaultRAFObject = {\n requestAnimationFrame: raf,\n cancelAnimationFrame: raf.cancel\n};\n\nfunction returnTrue(){ return true; }\n\n//manage FPS if < 60, else return true;\nfunction makeThrottle(fps){\n var delay = 1000/fps;\n var lastTime = Date.now();\n\n\n if( fps<=0 || fps === Infinity ){\n return returnTrue;\n }\n\n //if an fps throttle has been set then we'll assume\n //it natively runs at 60fps,\n var half = Math.ceil(1000 / 60) / 2;\n\n return function(){\n //if a custom fps is requested\n var now = Date.now();\n //is this frame within 8.5ms of the target?\n //if so then next frame is gonna be too late\n if(now - lastTime < delay - half){\n return false;\n }\n lastTime = now;\n return true;\n };\n}\n\n\n/**\n * Animitter provides event-based loops for the browser and node,\n * using `requestAnimationFrame`\n * @param {Object} [opts]\n * @param {Number} [opts.fps=Infinity] the framerate requested, defaults to as fast as it can (60fps on window)\n * @param {Number} [opts.delay=0] milliseconds delay between invoking `start` and initializing the loop\n * @param {Object} [opts.requestAnimationFrameObject=global] the object on which to find `requestAnimationFrame` and `cancelAnimationFrame` methods\n * @param {Boolean} [opts.fixedDelta=false] if true, timestamps will pretend to be executed at fixed intervals always\n * @constructor\n */\nfunction Animitter( opts ){\n opts = opts || {};\n\n this.__delay = opts.delay || 0;\n\n /** @expose */\n this.fixedDelta = !!opts.fixedDelta;\n\n /** @expose */\n this.frameCount = 0;\n /** @expose */\n this.deltaTime = 0;\n /** @expose */\n this.elapsedTime = 0;\n\n /** @private */\n this.__running = false;\n /** @private */\n this.__completed = false;\n\n this.setFPS(opts.fps || Infinity);\n this.setRequestAnimationFrameObject(opts.requestAnimationFrameObject || defaultRAFObject);\n}\n\ninherits(Animitter, EventEmitter);\n\nfunction onStart(scope){\n var now = Date.now();\n var rAFID;\n //dont let a second animation start on the same object\n //use *.on('update',fn)* instead\n if(scope.__running){\n return scope;\n }\n\n exports.running += 1;\n scope.__running = true;\n scope.__lastTime = now;\n scope.deltaTime = 0;\n\n //emit **start** once at the beginning\n scope.emit('start', scope.deltaTime, 0, scope.frameCount);\n\n var lastRAFObject = scope.requestAnimationFrameObject;\n\n var drawFrame = function(){\n if(lastRAFObject !== scope.requestAnimationFrameObject){\n //if the requestAnimationFrameObject switched in-between,\n //then re-request with the new one to ensure proper update execution context\n //i.e. VRDisplay#submitFrame() may only be requested through VRDisplay#requestAnimationFrame(drawFrame)\n lastRAFObject = scope.requestAnimationFrameObject;\n scope.requestAnimationFrameObject.requestAnimationFrame(drawFrame);\n return;\n }\n if(scope.__isReadyForUpdate()){\n scope.update();\n }\n if(scope.__running){\n rAFID = scope.requestAnimationFrameObject.requestAnimationFrame(drawFrame);\n } else {\n scope.requestAnimationFrameObject.cancelAnimationFrame(rAFID);\n }\n };\n\n scope.requestAnimationFrameObject.requestAnimationFrame(drawFrame);\n\n return scope;\n}\n\nmethods = {\n //EventEmitter Aliases\n off : EventEmitter.prototype.removeListener,\n trigger : EventEmitter.prototype.emit,\n\n /**\n * stops the animation and marks it as completed\n * @emit Animitter#complete\n * @returns {Animitter}\n */\n complete: function(){\n this.stop();\n this.__completed = true;\n this.emit('complete', this.frameCount, this.deltaTime);\n return this;\n },\n\n /**\n * stops the animation and removes all listeners\n * @emit Animitter#stop\n * @returns {Animitter}\n */\n dispose: function(){\n this.stop();\n this.removeAllListeners();\n return this;\n },\n\n /**\n * get milliseconds between the last 2 updates\n *\n * @return {Number}\n */\n getDeltaTime: function(){\n return this.deltaTime;\n },\n\n /**\n * get the total milliseconds that the animation has ran.\n * This is the cumlative value of the deltaTime between frames\n *\n * @return {Number}\n */\n getElapsedTime: function(){\n return this.elapsedTime;\n },\n\n /**\n * get the instances frames per second as calculated by the last delta\n *\n * @return {Number}\n */\n getFPS: function(){\n return this.deltaTime > 0 ? 1000 / this.deltaTime : 0;\n if(this.deltaTime){\n return 1000 / this.deltaTime;\n }\n },\n\n /**\n * get the explicit FPS limit set via `Animitter#setFPS(fps)` or\n * via the initial `options.fps` property\n *\n * @returns {Number} either as set or Infinity\n */\n getFPSLimit: function(){\n return this.__fps;\n },\n\n /**\n * get the number of frames that have occurred\n *\n * @return {Number}\n */\n getFrameCount: function(){\n return this.frameCount;\n },\n\n\n /**\n * get the object providing `requestAnimationFrame`\n * and `cancelAnimationFrame` methods\n * @return {Object}\n */\n getRequestAnimationFrameObject: function(){\n return this.requestAnimationFrameObject;\n },\n\n /**\n * is the animation loop active\n *\n * @return {boolean}\n */\n isRunning: function(){\n return this.__running;\n },\n\n /**\n * is the animation marked as completed\n *\n * @return {boolean}\n */\n isCompleted: function(){\n return this.__completed;\n },\n\n /**\n * reset the animation loop, marks as incomplete,\n * leaves listeners intact\n *\n * @emit Animitter#reset\n * @return {Animitter}\n */\n reset: function(){\n this.stop();\n this.__completed = false;\n this.__lastTime = 0;\n this.deltaTime = 0;\n this.elapsedTime = 0;\n this.frameCount = 0;\n\n this.emit('reset', 0, 0, this.frameCount);\n return this;\n },\n\n /**\n * set the framerate for the animation loop\n *\n * @param {Number} fps\n * @return {Animitter}\n */\n setFPS: function(fps){\n this.__fps = fps;\n this.__isReadyForUpdate = makeThrottle(fps);\n return this;\n },\n\n /**\n * set the object that will provide `requestAnimationFrame`\n * and `cancelAnimationFrame` methods to this instance\n * @param {Object} object\n * @return {Animitter}\n */\n setRequestAnimationFrameObject: function(object){\n if(typeof object.requestAnimationFrame !== 'function' || typeof object.cancelAnimationFrame !== 'function'){\n throw new Error(\"Invalid object provide to `setRequestAnimationFrameObject`\");\n }\n this.requestAnimationFrameObject = object;\n return this;\n },\n\n /**\n * start an animation loop\n * @emit Animitter#start\n * @return {Animitter}\n */\n start: function(){\n var self = this;\n if(this.__delay){\n setTimeout(function(){\n onStart(self);\n }, this.__delay);\n } else {\n onStart(this);\n }\n return this;\n },\n\n /**\n * stops the animation loop, does not mark as completed\n *\n * @emit Animitter#stop\n * @return {Animitter}\n */\n stop: function(){\n if( this.__running ){\n this.__running = false;\n exports.running -= 1;\n this.emit('stop', this.deltaTime, this.elapsedTime, this.frameCount);\n }\n return this;\n },\n\n /**\n * update the animation loop once\n *\n * @emit Animitter#update\n * @return {Animitter}\n */\n update: function(){\n this.frameCount++;\n /** @private */\n var now = Date.now();\n this.__lastTime = this.__lastTime || now;\n this.deltaTime = (this.fixedDelta || exports.globalFixedDelta) ? 1000/Math.min(60, this.__fps) : now - this.__lastTime;\n this.elapsedTime += this.deltaTime;\n this.__lastTime = now;\n\n this.emit('update', this.deltaTime, this.elapsedTime, this.frameCount);\n return this;\n }\n};\n\n\n\nfor(var method in methods){\n Animitter.prototype[method] = methods[method];\n}\n\n\n/**\n * create an animitter instance,\n * @param {Object} [options]\n * @param {Function} fn( deltaTime:Number, elapsedTime:Number, frameCount:Number )\n * @returns {Animitter}\n */\nfunction createAnimitter(options, fn){\n\n if( arguments.length === 1 && typeof options === 'function'){\n fn = options;\n options = {};\n }\n\n var _instance = new Animitter( options );\n\n if( fn ){\n _instance.on('update', fn);\n }\n\n return _instance;\n}\n\nmodule.exports = exports = createAnimitter;\n\n/**\n * create an animitter instance,\n * where the scope is bound in all functions\n * @param {Object} [options]\n * @param {Function} fn( deltaTime:Number, elapsedTime:Number, frameCount:Number )\n * @returns {Animitter}\n */\nexports.bound = function(options, fn){\n\n var loop = createAnimitter(options, fn),\n functionKeys = functions(Animitter.prototype),\n hasBind = !!Function.prototype.bind,\n fnKey;\n\n for(var i=0; i 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n for (var i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n},{}],6:[function(_dereq_,module,exports){\n\n},{}],7:[function(_dereq_,module,exports){\n/*!\n * Cross-Browser Split 1.1.1\n * Copyright 2007-2012 Steven Levithan \n * Available under the MIT License\n * ECMAScript compliant, uniform cross-browser split method\n */\n\n/**\n * Splits a string into an array of strings using a regex or string separator. Matches of the\n * separator are not included in the result array. However, if `separator` is a regex that contains\n * capturing groups, backreferences are spliced into the result each time `separator` is matched.\n * Fixes browser bugs compared to the native `String.prototype.split` and can be used reliably\n * cross-browser.\n * @param {String} str String to split.\n * @param {RegExp|String} separator Regex or string to use for separating the string.\n * @param {Number} [limit] Maximum number of items to include in the result array.\n * @returns {Array} Array of substrings.\n * @example\n *\n * // Basic use\n * split('a b c d', ' ');\n * // -> ['a', 'b', 'c', 'd']\n *\n * // With limit\n * split('a b c d', ' ', 2);\n * // -> ['a', 'b']\n *\n * // Backreferences in result array\n * split('..word1 word2..', /([a-z]+)(\\d+)/i);\n * // -> ['..', 'word', '1', ' ', 'word', '2', '..']\n */\nmodule.exports = (function split(undef) {\n\n var nativeSplit = String.prototype.split,\n compliantExecNpcg = /()??/.exec(\"\")[1] === undef,\n // NPCG: nonparticipating capturing group\n self;\n\n self = function(str, separator, limit) {\n // If `separator` is not a regex, use `nativeSplit`\n if (Object.prototype.toString.call(separator) !== \"[object RegExp]\") {\n return nativeSplit.call(str, separator, limit);\n }\n var output = [],\n flags = (separator.ignoreCase ? \"i\" : \"\") + (separator.multiline ? \"m\" : \"\") + (separator.extended ? \"x\" : \"\") + // Proposed for ES6\n (separator.sticky ? \"y\" : \"\"),\n // Firefox 3+\n lastLastIndex = 0,\n // Make `global` and avoid `lastIndex` issues by working with a copy\n separator = new RegExp(separator.source, flags + \"g\"),\n separator2, match, lastIndex, lastLength;\n str += \"\"; // Type-convert\n if (!compliantExecNpcg) {\n // Doesn't need flags gy, but they don't hurt\n separator2 = new RegExp(\"^\" + separator.source + \"$(?!\\\\s)\", flags);\n }\n /* Values for `limit`, per the spec:\n * If undefined: 4294967295 // Math.pow(2, 32) - 1\n * If 0, Infinity, or NaN: 0\n * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296;\n * If negative number: 4294967296 - Math.floor(Math.abs(limit))\n * If other: Type-convert, then use the above rules\n */\n limit = limit === undef ? -1 >>> 0 : // Math.pow(2, 32) - 1\n limit >>> 0; // ToUint32(limit)\n while (match = separator.exec(str)) {\n // `separator.lastIndex` is not reliable cross-browser\n lastIndex = match.index + match[0].length;\n if (lastIndex > lastLastIndex) {\n output.push(str.slice(lastLastIndex, match.index));\n // Fix browsers whose `exec` methods don't consistently return `undefined` for\n // nonparticipating capturing groups\n if (!compliantExecNpcg && match.length > 1) {\n match[0].replace(separator2, function() {\n for (var i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undef) {\n match[i] = undef;\n }\n }\n });\n }\n if (match.length > 1 && match.index < str.length) {\n Array.prototype.push.apply(output, match.slice(1));\n }\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= limit) {\n break;\n }\n }\n if (separator.lastIndex === match.index) {\n separator.lastIndex++; // Avoid an infinite loop\n }\n }\n if (lastLastIndex === str.length) {\n if (lastLength || !separator.test(\"\")) {\n output.push(\"\");\n }\n } else {\n output.push(str.slice(lastLastIndex));\n }\n return output.length > limit ? output.slice(0, limit) : output;\n };\n\n return self;\n})();\n\n},{}],8:[function(_dereq_,module,exports){\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = _dereq_('base64-js')\nvar ieee754 = _dereq_('ieee754')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n get: function () {\n if (!(this instanceof Buffer)) {\n return undefined\n }\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n get: function () {\n if (!(this instanceof Buffer)) {\n return undefined\n }\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('Invalid typed array length')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\n// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\nif (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true,\n enumerable: false,\n writable: false\n })\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (isArrayBuffer(value) || (value && isArrayBuffer(value.buffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n return fromObject(value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nBuffer.prototype.__proto__ = Uint8Array.prototype\nBuffer.__proto__ = Uint8Array\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n buf.__proto__ = Buffer.prototype\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj) {\n if (ArrayBuffer.isView(obj) || 'length' in obj) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n }\n\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (ArrayBuffer.isView(buf)) {\n buf = Buffer.from(buf)\n }\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isArrayBuffer(string)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n newBuf.__proto__ = Buffer.prototype\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (var i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : new Buffer(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffers from another context (i.e. an iframe) do not pass the `instanceof` check\n// but they should be treated as valid. See: https://github.com/feross/buffer/issues/166\nfunction isArrayBuffer (obj) {\n return obj instanceof ArrayBuffer ||\n (obj != null && obj.constructor != null && obj.constructor.name === 'ArrayBuffer' &&\n typeof obj.byteLength === 'number')\n}\n\nfunction numberIsNaN (obj) {\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n},{\"base64-js\":5,\"ieee754\":34}],9:[function(_dereq_,module,exports){\nvar toBuffer = _dereq_('typedarray-to-buffer')\nvar atob = _dereq_('atob')\nvar isBrowser = typeof document !== 'undefined' && typeof document.createElement === 'function'\n\n// cached, used only once for browser environments\nvar verifiedImageType\n\nmodule.exports = function (canvas, options) {\n var self = this\n\n options = options || {}\n options.image = options.image ? options.image : {}\n options.image.types = options.image.types ? options.image.types : []\n\n // validate some options this class needs\n if (options.image.types.length > 2) {\n throw new Error('Too many image types are specified!')\n } else if (options.image.types.length < 1) {\n // Set a default image type, just to be robust\n options.image.types = isBrowser ? ['webp', 'jpeg'] : ['png']\n }\n\n if (!options.image.quality) {\n options.image.quality = 0.5 // default\n }\n\n var quality = parseFloat(options.image.quality)\n\n function composeImageType (index) {\n var imageType\n\n if (options.image.types[index]) {\n imageType = 'image/' + options.image.types[index]\n }\n\n return imageType\n }\n\n function isMatch (uri, imageType) {\n var match = uri && uri.match(imageType)\n\n match && options.debug && options.debug('Image type %s verified', imageType)\n\n return match\n }\n\n // Performance tweak, we do not need a big canvas for finding out the supported image type\n function getTestCanvas () {\n var testCanvas\n\n if (isBrowser) {\n testCanvas = document.createElement('canvas')\n testCanvas.width = testCanvas.height = 1\n } else {\n testCanvas = canvas\n }\n\n return testCanvas\n }\n\n function canvasSupportsImageTypeAsync (imageType, cb) {\n try {\n getTestCanvas().toDataURL(imageType, function (err, uri) {\n if (err) {\n cb(err)\n } else {\n cb(null, isMatch(uri, imageType))\n }\n })\n } catch (exc) {\n cb(null, false)\n }\n }\n\n function canvasSupportsImageTypeSync (imageType) {\n var match\n\n try {\n var testCanvas = getTestCanvas()\n var uri = testCanvas.toDataURL && testCanvas.toDataURL(imageType)\n\n match = isMatch(uri, imageType)\n } catch (exc) {\n // Can happen when i.E. a spider is coming. Just be robust here and continue.\n options.debug &&\n options.logger.debug('Failed to call toDataURL() on canvas for image type %s', imageType)\n }\n\n return match\n }\n\n function verifyImageTypeAsync (imageType, cb) {\n canvasSupportsImageTypeAsync(imageType, function (err, match) {\n if (err) {\n cb(err)\n } else {\n if (match) {\n cb(null, imageType)\n } else {\n imageType = composeImageType(1)\n\n canvasSupportsImageTypeAsync(imageType, function (err, match) {\n if (err) {\n cb(err)\n } else {\n cb(null, match ? imageType : null)\n }\n })\n }\n }\n })\n }\n\n function verifyImageTypeSync (imageType) {\n if (!canvasSupportsImageTypeSync(imageType)) {\n if (options.image.types[1]) {\n imageType = composeImageType(1)\n\n if (!canvasSupportsImageTypeSync(imageType)) {\n imageType = null\n }\n } else {\n imageType = null\n }\n }\n\n !imageType && options.debug && options.logger.debug('Unable to verify image type')\n\n return imageType\n }\n\n // callbacks are needed for server side tests\n function verifyImageType (cb) {\n var imageType = composeImageType(0)\n\n if (cb) {\n verifyImageTypeAsync(imageType, cb)\n } else {\n return verifyImageTypeSync(imageType)\n }\n }\n\n // this method is proven to be fast, see\n // http://jsperf.com/data-uri-to-buffer-performance/3\n function uriToBuffer (uri) {\n var uriSplitted = uri.split(',')[1]\n var bytes\n\n // Beware that the atob function might be a static one for server side tests\n if (typeof (atob) === 'function') {\n bytes = atob(uriSplitted)\n } else if (typeof (self.constructor.atob) === 'function') {\n bytes = self.constructor.atob(uriSplitted)\n } else {\n throw new Error('atob function is missing')\n }\n\n var arr = new Uint8Array(bytes.length)\n\n // http://mrale.ph/blog/2014/12/24/array-length-caching.html\n for (var i = 0, l = bytes.length; i < l; i++) {\n arr[i] = bytes.charCodeAt(i)\n }\n\n return toBuffer(arr)\n }\n\n function toBufferSync () {\n var imageType = self.getImageType()\n var buffer\n\n if (imageType) {\n var uri = canvas.toDataURL(imageType, quality)\n buffer = uriToBuffer(uri)\n }\n\n return buffer\n }\n\n function toBufferAsync (cb) {\n self.getImageType(function (err, imageType) {\n if (err) {\n cb(err)\n } else if (!imageType) {\n cb()\n } else {\n canvas.toDataURL(imageType, function (err, uri) {\n if (err) {\n cb(err)\n } else {\n cb(null, uriToBuffer(uri))\n }\n })\n }\n })\n }\n\n this.toBuffer = function (cb) {\n if (cb) {\n toBufferAsync(cb)\n } else {\n return toBufferSync()\n }\n }\n\n // browsers do not need a callback, but tests do\n this.getImageType = function (cb) {\n // only run for the first time this constructor is called and\n // cache result for the next calls\n if (cb) {\n if (!verifiedImageType || !isBrowser) {\n verifyImageType(function (err, newVerifiedImageType) {\n if (err) {\n cb(err)\n } else {\n verifiedImageType = newVerifiedImageType\n cb(null, verifiedImageType)\n }\n })\n } else {\n cb(null, verifiedImageType)\n }\n } else {\n // on the browser side we do cache it for speed\n if (!verifiedImageType || !isBrowser) {\n verifiedImageType = verifyImageType()\n }\n\n return verifiedImageType\n }\n }\n}\n\n},{\"atob\":3,\"typedarray-to-buffer\":75}],10:[function(_dereq_,module,exports){\n// contains, add, remove, toggle\nvar indexof = _dereq_('indexof')\n\nmodule.exports = ClassList\n\nfunction ClassList(elem) {\n var cl = elem.classList\n\n if (cl) {\n return cl\n }\n\n var classList = {\n add: add\n , remove: remove\n , contains: contains\n , toggle: toggle\n , toString: $toString\n , length: 0\n , item: item\n }\n\n return classList\n\n function add(token) {\n var list = getTokens()\n if (indexof(list, token) > -1) {\n return\n }\n list.push(token)\n setTokens(list)\n }\n\n function remove(token) {\n var list = getTokens()\n , index = indexof(list, token)\n\n if (index === -1) {\n return\n }\n\n list.splice(index, 1)\n setTokens(list)\n }\n\n function contains(token) {\n return indexof(getTokens(), token) > -1\n }\n\n function toggle(token) {\n if (contains(token)) {\n remove(token)\n return false\n } else {\n add(token)\n return true\n }\n }\n\n function $toString() {\n return elem.className\n }\n\n function item(index) {\n var tokens = getTokens()\n return tokens[index] || null\n }\n\n function getTokens() {\n var className = elem.className\n\n return filter(className.split(\" \"), isTruthy)\n }\n\n function setTokens(list) {\n var length = list.length\n\n elem.className = list.join(\" \")\n classList.length = length\n\n for (var i = 0; i < list.length; i++) {\n classList[i] = list[i]\n }\n\n delete list[length]\n }\n}\n\nfunction filter (arr, fn) {\n var ret = []\n for (var i = 0; i < arr.length; i++) {\n if (fn(arr[i])) ret.push(arr[i])\n }\n return ret\n}\n\nfunction isTruthy(value) {\n return !!value\n}\n\n},{\"indexof\":35}],11:[function(_dereq_,module,exports){\n/*\n * classList.js: Cross-browser full element.classList implementation.\n * 1.1.20150312\n *\n * By Eli Grey, http://eligrey.com\n * License: Dedicated to the public domain.\n * See https://github.com/eligrey/classList.js/blob/master/LICENSE.md\n */\n\n/*global self, document, DOMException */\n\n/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js */\n\nif (\"document\" in self) {\n\n// Full polyfill for browsers with no classList support\n// Including IE < Edge missing SVGElement.classList\nif (!(\"classList\" in document.createElement(\"_\")) \n\t|| document.createElementNS && !(\"classList\" in document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"))) {\n\n(function (view) {\n\n\"use strict\";\n\nif (!('Element' in view)) return;\n\nvar\n\t classListProp = \"classList\"\n\t, protoProp = \"prototype\"\n\t, elemCtrProto = view.Element[protoProp]\n\t, objCtr = Object\n\t, strTrim = String[protoProp].trim || function () {\n\t\treturn this.replace(/^\\s+|\\s+$/g, \"\");\n\t}\n\t, arrIndexOf = Array[protoProp].indexOf || function (item) {\n\t\tvar\n\t\t\t i = 0\n\t\t\t, len = this.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tif (i in this && this[i] === item) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t}\n\t// Vendors: please allow content code to instantiate DOMExceptions\n\t, DOMEx = function (type, message) {\n\t\tthis.name = type;\n\t\tthis.code = DOMException[type];\n\t\tthis.message = message;\n\t}\n\t, checkTokenAndGetIndex = function (classList, token) {\n\t\tif (token === \"\") {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"SYNTAX_ERR\"\n\t\t\t\t, \"An invalid or illegal string was specified\"\n\t\t\t);\n\t\t}\n\t\tif (/\\s/.test(token)) {\n\t\t\tthrow new DOMEx(\n\t\t\t\t \"INVALID_CHARACTER_ERR\"\n\t\t\t\t, \"String contains an invalid character\"\n\t\t\t);\n\t\t}\n\t\treturn arrIndexOf.call(classList, token);\n\t}\n\t, ClassList = function (elem) {\n\t\tvar\n\t\t\t trimmedClasses = strTrim.call(elem.getAttribute(\"class\") || \"\")\n\t\t\t, classes = trimmedClasses ? trimmedClasses.split(/\\s+/) : []\n\t\t\t, i = 0\n\t\t\t, len = classes.length\n\t\t;\n\t\tfor (; i < len; i++) {\n\t\t\tthis.push(classes[i]);\n\t\t}\n\t\tthis._updateClassName = function () {\n\t\t\telem.setAttribute(\"class\", this.toString());\n\t\t};\n\t}\n\t, classListProto = ClassList[protoProp] = []\n\t, classListGetter = function () {\n\t\treturn new ClassList(this);\n\t}\n;\n// Most DOMException implementations don't allow calling DOMException's toString()\n// on non-DOMExceptions. Error's toString() is sufficient here.\nDOMEx[protoProp] = Error[protoProp];\nclassListProto.item = function (i) {\n\treturn this[i] || null;\n};\nclassListProto.contains = function (token) {\n\ttoken += \"\";\n\treturn checkTokenAndGetIndex(this, token) !== -1;\n};\nclassListProto.add = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tif (checkTokenAndGetIndex(this, token) === -1) {\n\t\t\tthis.push(token);\n\t\t\tupdated = true;\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.remove = function () {\n\tvar\n\t\t tokens = arguments\n\t\t, i = 0\n\t\t, l = tokens.length\n\t\t, token\n\t\t, updated = false\n\t\t, index\n\t;\n\tdo {\n\t\ttoken = tokens[i] + \"\";\n\t\tindex = checkTokenAndGetIndex(this, token);\n\t\twhile (index !== -1) {\n\t\t\tthis.splice(index, 1);\n\t\t\tupdated = true;\n\t\t\tindex = checkTokenAndGetIndex(this, token);\n\t\t}\n\t}\n\twhile (++i < l);\n\n\tif (updated) {\n\t\tthis._updateClassName();\n\t}\n};\nclassListProto.toggle = function (token, force) {\n\ttoken += \"\";\n\n\tvar\n\t\t result = this.contains(token)\n\t\t, method = result ?\n\t\t\tforce !== true && \"remove\"\n\t\t:\n\t\t\tforce !== false && \"add\"\n\t;\n\n\tif (method) {\n\t\tthis[method](token);\n\t}\n\n\tif (force === true || force === false) {\n\t\treturn force;\n\t} else {\n\t\treturn !result;\n\t}\n};\nclassListProto.toString = function () {\n\treturn this.join(\" \");\n};\n\nif (objCtr.defineProperty) {\n\tvar classListPropDesc = {\n\t\t get: classListGetter\n\t\t, enumerable: true\n\t\t, configurable: true\n\t};\n\ttry {\n\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t} catch (ex) { // IE 8 doesn't support enumerable:true\n\t\tif (ex.number === -0x7FF5EC54) {\n\t\t\tclassListPropDesc.enumerable = false;\n\t\t\tobjCtr.defineProperty(elemCtrProto, classListProp, classListPropDesc);\n\t\t}\n\t}\n} else if (objCtr[protoProp].__defineGetter__) {\n\telemCtrProto.__defineGetter__(classListProp, classListGetter);\n}\n\n}(self));\n\n} else {\n// There is full or partial native classList support, so just check if we need\n// to normalize the add/remove and toggle APIs.\n\n(function () {\n\t\"use strict\";\n\n\tvar testElement = document.createElement(\"_\");\n\n\ttestElement.classList.add(\"c1\", \"c2\");\n\n\t// Polyfill for IE 10/11 and Firefox <26, where classList.add and\n\t// classList.remove exist but support only one argument at a time.\n\tif (!testElement.classList.contains(\"c2\")) {\n\t\tvar createMethod = function(method) {\n\t\t\tvar original = DOMTokenList.prototype[method];\n\n\t\t\tDOMTokenList.prototype[method] = function(token) {\n\t\t\t\tvar i, len = arguments.length;\n\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\ttoken = arguments[i];\n\t\t\t\t\toriginal.call(this, token);\n\t\t\t\t}\n\t\t\t};\n\t\t};\n\t\tcreateMethod('add');\n\t\tcreateMethod('remove');\n\t}\n\n\ttestElement.classList.toggle(\"c3\", false);\n\n\t// Polyfill for IE 10 and Firefox <24, where classList.toggle does not\n\t// support the second argument.\n\tif (testElement.classList.contains(\"c3\")) {\n\t\tvar _toggle = DOMTokenList.prototype.toggle;\n\n\t\tDOMTokenList.prototype.toggle = function(token, force) {\n\t\t\tif (1 in arguments && !this.contains(token) === !force) {\n\t\t\t\treturn force;\n\t\t\t} else {\n\t\t\t\treturn _toggle.call(this, token);\n\t\t\t}\n\t\t};\n\n\t}\n\n\ttestElement = null;\n}());\n\n}\n\n}\n\n\n},{}],12:[function(_dereq_,module,exports){\n\r\n/**\r\n * Expose `Emitter`.\r\n */\r\n\r\nif (typeof module !== 'undefined') {\r\n module.exports = Emitter;\r\n}\r\n\r\n/**\r\n * Initialize a new `Emitter`.\r\n *\r\n * @api public\r\n */\r\n\r\nfunction Emitter(obj) {\r\n if (obj) return mixin(obj);\r\n};\r\n\r\n/**\r\n * Mixin the emitter properties.\r\n *\r\n * @param {Object} obj\r\n * @return {Object}\r\n * @api private\r\n */\r\n\r\nfunction mixin(obj) {\r\n for (var key in Emitter.prototype) {\r\n obj[key] = Emitter.prototype[key];\r\n }\r\n return obj;\r\n}\r\n\r\n/**\r\n * Listen on the given `event` with `fn`.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.on =\r\nEmitter.prototype.addEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n (this._callbacks['$' + event] = this._callbacks['$' + event] || [])\r\n .push(fn);\r\n return this;\r\n};\r\n\r\n/**\r\n * Adds an `event` listener that will be invoked a single\r\n * time then automatically removed.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.once = function(event, fn){\r\n function on() {\r\n this.off(event, on);\r\n fn.apply(this, arguments);\r\n }\r\n\r\n on.fn = fn;\r\n this.on(event, on);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove the given callback for `event` or all\r\n * registered callbacks.\r\n *\r\n * @param {String} event\r\n * @param {Function} fn\r\n * @return {Emitter}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.off =\r\nEmitter.prototype.removeListener =\r\nEmitter.prototype.removeAllListeners =\r\nEmitter.prototype.removeEventListener = function(event, fn){\r\n this._callbacks = this._callbacks || {};\r\n\r\n // all\r\n if (0 == arguments.length) {\r\n this._callbacks = {};\r\n return this;\r\n }\r\n\r\n // specific event\r\n var callbacks = this._callbacks['$' + event];\r\n if (!callbacks) return this;\r\n\r\n // remove all handlers\r\n if (1 == arguments.length) {\r\n delete this._callbacks['$' + event];\r\n return this;\r\n }\r\n\r\n // remove specific handler\r\n var cb;\r\n for (var i = 0; i < callbacks.length; i++) {\r\n cb = callbacks[i];\r\n if (cb === fn || cb.fn === fn) {\r\n callbacks.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emit `event` with the given args.\r\n *\r\n * @param {String} event\r\n * @param {Mixed} ...\r\n * @return {Emitter}\r\n */\r\n\r\nEmitter.prototype.emit = function(event){\r\n this._callbacks = this._callbacks || {};\r\n var args = [].slice.call(arguments, 1)\r\n , callbacks = this._callbacks['$' + event];\r\n\r\n if (callbacks) {\r\n callbacks = callbacks.slice(0);\r\n for (var i = 0, len = callbacks.length; i < len; ++i) {\r\n callbacks[i].apply(this, args);\r\n }\r\n }\r\n\r\n return this;\r\n};\r\n\r\n/**\r\n * Return array of callbacks for `event`.\r\n *\r\n * @param {String} event\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.listeners = function(event){\r\n this._callbacks = this._callbacks || {};\r\n return this._callbacks['$' + event] || [];\r\n};\r\n\r\n/**\r\n * Check if this emitter has `event` handlers.\r\n *\r\n * @param {String} event\r\n * @return {Boolean}\r\n * @api public\r\n */\r\n\r\nEmitter.prototype.hasListeners = function(event){\r\n return !! this.listeners(event).length;\r\n};\r\n\n},{}],13:[function(_dereq_,module,exports){\nvar DOCUMENT_POSITION_CONTAINED_BY = 16\n\nmodule.exports = contains\n\nfunction contains(container, elem) {\n if (container.contains) {\n return container.contains(elem)\n }\n\n var comparison = container.compareDocumentPosition(elem)\n\n return comparison === 0 || comparison & DOCUMENT_POSITION_CONTAINED_BY\n}\n\n},{}],14:[function(_dereq_,module,exports){\n(function (Buffer){\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n}).call(this,{\"isBuffer\":_dereq_(\"../../is-buffer/index.js\")})\n},{\"../../is-buffer/index.js\":40}],15:[function(_dereq_,module,exports){\n// create-error.js 0.3.1\n// (c) 2013 Tim Griesser\n// This source may be freely distributed under the MIT license.\n(function(factory) {\n\n\"use strict\";\n\n// A simple utility for subclassing the \"Error\"\n// object in multiple environments, while maintaining\n// relevant stack traces, messages, and prototypes.\nfactory(function() {\n\nvar toString = Object.prototype.toString;\n\n// Creates an new error type with a \"name\",\n// and any additional properties that should be set\n// on the error instance.\nreturn function() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = arguments[i];\n }\n var name = getName(args);\n var target = getTarget(args);\n var properties = getProps(args);\n function ErrorCtor(message, obj) {\n attachProps(this, properties);\n attachProps(this, obj);\n this.message = (message || this.message);\n if (message instanceof Error) {\n this.message = message.message;\n this.stack = message.stack;\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n function Err() { this.constructor = ErrorCtor; }\n Err.prototype = target['prototype'];\n ErrorCtor.prototype = new Err();\n ErrorCtor.prototype.name = ('' + name) || 'CustomError';\n return ErrorCtor;\n};\n\n// Just a few helpers to clean up the function above\n// https://github.com/petkaantonov/bluebird/wiki/Optimization-killers\nfunction getName(args) {\n if (args.length === 0) return '';\n return isError(args[0]) ? (args[1] || '') : args[0];\n}\nfunction getTarget(args) {\n if (args.length === 0) return Error;\n return isError(args[0]) ? args[0] : Error;\n}\nfunction getProps(args) {\n if (args.length === 0) return null;\n return isError(args[0]) ? args[2] : args[1];\n}\nfunction inheritedKeys(obj) {\n var ret = [];\n for (var key in obj) {\n ret.push(key);\n }\n return ret;\n}\n\n// Right now we're just assuming that a function in the first argument is an error.\nfunction isError(obj) {\n return (typeof obj === \"function\");\n}\n\n// We don't need the full underscore check here, since it should either be\n// an object-literal, or nothing at all.\nfunction isObject(obj) {\n return (obj && typeof obj === \"object\" && toString.call(obj) === \"[object Object]\");\n}\n\n// Used to attach attributes to the error object in the constructor.\nfunction attachProps(context, target) {\n if (isObject(target)) {\n var keys = inheritedKeys(target);\n for (var i = 0, l = keys.length; i < l; ++i) {\n context[keys[i]] = clone(target[keys[i]]);\n }\n }\n}\n\n// Don't need the full-out \"clone\" mechanism here, since if you're\n// trying to set things other than empty arrays/objects on your\n// sub-classed `Error` object, you're probably doing it wrong.\nfunction clone(target) {\n if (target == null || typeof target !== \"object\") return target;\n var cloned = target.constructor ? target.constructor() : Object.create(null);\n for (var attr in target) {\n if (target.hasOwnProperty(attr)) {\n cloned[attr] = target[attr];\n }\n }\n return cloned;\n}\n\n});\n\n// Boilerplate UMD definition block...\n})(function(createErrorLib) {\n if (typeof define === \"function\" && define.amd) {\n define(createErrorLib);\n } else if (typeof exports === 'object') {\n module.exports = createErrorLib();\n } else {\n var root = this;\n var lastcreateError = root.createError;\n var createError = root.createError = createErrorLib();\n createError.noConflict = function() {\n root.createError = lastcreateError;\n return createError;\n };\n }\n});\n\n},{}],16:[function(_dereq_,module,exports){\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.deepmerge = factory());\n}(this, (function () { 'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nreturn deepmerge_1;\n\n})));\n\n},{}],17:[function(_dereq_,module,exports){\nmodule.exports = function () {\n for (var i = 0; i < arguments.length; i++) {\n if (arguments[i] !== undefined) return arguments[i];\n }\n};\n\n},{}],18:[function(_dereq_,module,exports){\nvar util = _dereq_('util')\nvar global = _dereq_('global')\nvar EventEmitter = _dereq_('events')\n\nvar makeDespot = function () {\n var Despot = function () {\n if (global._singletonDespotInstance) {\n return global._singletonDespotInstance\n } else {\n global._singletonDespotInstance = this\n EventEmitter.call(this)\n }\n }\n\n util.inherits(Despot, EventEmitter)\n\n return new Despot()\n}\n\nmodule.exports = makeDespot()\n\n},{\"events\":24,\"global\":30,\"util\":80}],19:[function(_dereq_,module,exports){\n'use strict'\n\nvar document = _dereq_('global/document')\nvar Event = _dereq_('geval')\nvar Keys = _dereq_('./keys')\n\nmodule.exports = Visibility\n\nfunction Visibility () {\n var keys = Keys(document)\n if (!keys) return noopShim()\n\n return {\n visible: visible,\n onChange: Event(listen)\n }\n\n function visible () {\n return !document[keys.hidden]\n }\n\n function listen (broadcast) {\n document.addEventListener(keys.event, function onVisibilityChange () {\n broadcast(visible())\n })\n }\n}\n\nfunction noopShim () {\n return {\n visible: function () {\n return true\n },\n onChange: noop\n }\n}\n\nfunction noop () {}\n\n},{\"./keys\":20,\"geval\":28,\"global/document\":29}],20:[function(_dereq_,module,exports){\n'use strict'\n\nmodule.exports = keys\n\nfunction keys (document) {\n var prefix = detectPrefix(document)\n if (prefix == null) return\n return {\n hidden: lowercaseFirst(prefix + 'Hidden'),\n event: prefix + 'visibilitychange'\n }\n}\n\nfunction detectPrefix (document) {\n if (document.hidden != null) return ''\n if (document.mozHidden != null) return 'moz'\n if (document.msHidden != null) return 'ms'\n if (document.webkitHidden != null) return 'webkit'\n}\n\nfunction lowercaseFirst (string) {\n return string.substring(0, 1).toLowerCase() + string.substring(1)\n}\n\n},{}],21:[function(_dereq_,module,exports){\n(function (process,Buffer){\nvar stream = _dereq_('readable-stream')\nvar eos = _dereq_('end-of-stream')\nvar inherits = _dereq_('inherits')\nvar shift = _dereq_('stream-shift')\n\nvar SIGNAL_FLUSH = (Buffer.from && Buffer.from !== Uint8Array.from)\n ? Buffer.from([0])\n : new Buffer([0])\n\nvar onuncork = function(self, fn) {\n if (self._corked) self.once('uncork', fn)\n else fn()\n}\n\nvar destroyer = function(self, end) {\n return function(err) {\n if (err) self._destroyInterval(err)\n else if (end && !self._ended) self.end()\n }\n}\n\nvar end = function(ws, fn) {\n if (!ws) return fn()\n if (ws._writableState && ws._writableState.finished) return fn()\n if (ws._writableState) return ws.end(fn)\n ws.end()\n fn()\n}\n\nvar toStreams2 = function(rs) {\n return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs)\n}\n\nvar Duplexify = function(writable, readable, opts) {\n if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts)\n stream.Duplex.call(this, opts)\n\n this._writable = null\n this._readable = null\n this._readable2 = null\n\n this._forwardDestroy = !opts || opts.destroy !== false\n this._forwardEnd = !opts || opts.end !== false\n this._corked = 1 // start corked\n this._ondrain = null\n this._drained = false\n this._forwarding = false\n this._unwrite = null\n this._unread = null\n this._ended = false\n this._error = null\n this._preferError = false\n\n this.destroyed = false\n\n if (writable) this.setWritable(writable)\n if (readable) this.setReadable(readable)\n}\n\ninherits(Duplexify, stream.Duplex)\n\nDuplexify.obj = function(writable, readable, opts) {\n if (!opts) opts = {}\n opts.objectMode = true\n opts.highWaterMark = 16\n return new Duplexify(writable, readable, opts)\n}\n\nDuplexify.prototype.cork = function() {\n if (++this._corked === 1) this.emit('cork')\n}\n\nDuplexify.prototype.uncork = function() {\n if (this._corked && --this._corked === 0) this.emit('uncork')\n}\n\nDuplexify.prototype.setWritable = function(writable) {\n if (this._unwrite) this._unwrite()\n\n if (this.destroyed) {\n if (writable && writable.destroy) writable.destroy()\n return\n }\n\n if (writable === null || writable === false) {\n this.end()\n return\n }\n\n var self = this\n var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd))\n\n var ondrain = function() {\n var ondrain = self._ondrain\n self._ondrain = null\n if (ondrain) ondrain()\n }\n\n var clear = function() {\n self._writable.removeListener('drain', ondrain)\n unend()\n }\n\n if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks\n\n this._writable = writable\n this._writable.on('drain', ondrain)\n this._unwrite = clear\n\n this.uncork() // always uncork setWritable\n}\n\nDuplexify.prototype.setReadable = function(readable) {\n if (this._unread) this._unread()\n\n if (this.destroyed) {\n if (readable && readable.destroy) readable.destroy()\n return\n }\n\n if (readable === null || readable === false) {\n this.push(null)\n this.resume()\n return\n }\n\n var self = this\n var unend = eos(readable, {writable:false, readable:true}, destroyer(this))\n\n var onreadable = function() {\n self._forward()\n }\n\n var onend = function() {\n self.push(null)\n }\n\n var clear = function() {\n self._readable2.removeListener('readable', onreadable)\n self._readable2.removeListener('end', onend)\n unend()\n }\n\n this._drained = true\n this._readable = readable\n this._readable2 = readable._readableState ? readable : toStreams2(readable)\n this._readable2.on('readable', onreadable)\n this._readable2.on('end', onend)\n this._unread = clear\n\n this._forward()\n}\n\nDuplexify.prototype._read = function() {\n this._drained = true\n this._forward()\n}\n\nDuplexify.prototype._forward = function() {\n if (this._forwarding || !this._readable2 || !this._drained) return\n this._forwarding = true\n\n var data\n\n while (this._drained && (data = shift(this._readable2)) !== null) {\n if (this.destroyed) continue\n this._drained = this.push(data)\n }\n\n this._forwarding = false\n}\n\nDuplexify.prototype.destroy = function(err) {\n if (this._preferError && !this._error && err) this._error = err\n\n if (this.destroyed) return\n this.destroyed = true\n\n var self = this\n process.nextTick(function() {\n self._destroy(self._preferError ? self._error : err)\n })\n}\n\nDuplexify.prototype._destroyInterval = function(err) {\n if (this.destroyed) return\n if (err.message !== 'premature close') return this.destroy(err)\n this._preferError = true\n this.destroy(null)\n}\n\nDuplexify.prototype._destroy = function(err) {\n if (err) {\n var ondrain = this._ondrain\n this._ondrain = null\n if (ondrain) ondrain(err)\n else this.emit('error', err)\n }\n\n if (this._forwardDestroy) {\n if (this._readable && this._readable.destroy) this._readable.destroy()\n if (this._writable && this._writable.destroy) this._writable.destroy()\n }\n\n this.emit('close')\n}\n\nDuplexify.prototype._write = function(data, enc, cb) {\n if (this.destroyed) return cb()\n if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb))\n if (data === SIGNAL_FLUSH) return this._finish(cb)\n if (!this._writable) return cb()\n\n if (this._writable.write(data) === false) this._ondrain = cb\n else cb()\n}\n\n\nDuplexify.prototype._finish = function(cb) {\n var self = this\n this.emit('preend')\n onuncork(this, function() {\n end(self._forwardEnd && self._writable, function() {\n // haxx to not emit prefinish twice\n if (self._writableState.prefinished === false) self._writableState.prefinished = true\n self.emit('prefinish')\n onuncork(self, cb)\n })\n })\n}\n\nDuplexify.prototype.end = function(data, enc, cb) {\n if (typeof data === 'function') return this.end(null, null, data)\n if (typeof enc === 'function') return this.end(data, null, enc)\n this._ended = true\n if (data) this.write(data)\n if (!this._writableState.ending) this.write(SIGNAL_FLUSH)\n return stream.Writable.prototype.end.call(this, cb)\n}\n\nmodule.exports = Duplexify\n\n}).call(this,_dereq_('_process'),_dereq_(\"buffer\").Buffer)\n},{\"_process\":51,\"buffer\":8,\"end-of-stream\":23,\"inherits\":36,\"readable-stream\":62,\"stream-shift\":68}],22:[function(_dereq_,module,exports){\n// element-closest | CC0-1.0 | github.com/jonathantneal/closest\n\n(function (ElementProto) {\n\tif (typeof ElementProto.matches !== 'function') {\n\t\tElementProto.matches = ElementProto.msMatchesSelector || ElementProto.mozMatchesSelector || ElementProto.webkitMatchesSelector || function matches(selector) {\n\t\t\tvar element = this;\n\t\t\tvar elements = (element.document || element.ownerDocument).querySelectorAll(selector);\n\t\t\tvar index = 0;\n\n\t\t\twhile (elements[index] && elements[index] !== element) {\n\t\t\t\t++index;\n\t\t\t}\n\n\t\t\treturn Boolean(elements[index]);\n\t\t};\n\t}\n\n\tif (typeof ElementProto.closest !== 'function') {\n\t\tElementProto.closest = function closest(selector) {\n\t\t\tvar element = this;\n\n\t\t\twhile (element && element.nodeType === 1) {\n\t\t\t\tif (element.matches(selector)) {\n\t\t\t\t\treturn element;\n\t\t\t\t}\n\n\t\t\t\telement = element.parentNode;\n\t\t\t}\n\n\t\t\treturn null;\n\t\t};\n\t}\n})(window.Element.prototype);\n\n},{}],23:[function(_dereq_,module,exports){\nvar once = _dereq_('once');\n\nvar noop = function() {};\n\nvar isRequest = function(stream) {\n\treturn stream.setHeader && typeof stream.abort === 'function';\n};\n\nvar isChildProcess = function(stream) {\n\treturn stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3\n};\n\nvar eos = function(stream, opts, callback) {\n\tif (typeof opts === 'function') return eos(stream, null, opts);\n\tif (!opts) opts = {};\n\n\tcallback = once(callback || noop);\n\n\tvar ws = stream._writableState;\n\tvar rs = stream._readableState;\n\tvar readable = opts.readable || (opts.readable !== false && stream.readable);\n\tvar writable = opts.writable || (opts.writable !== false && stream.writable);\n\n\tvar onlegacyfinish = function() {\n\t\tif (!stream.writable) onfinish();\n\t};\n\n\tvar onfinish = function() {\n\t\twritable = false;\n\t\tif (!readable) callback.call(stream);\n\t};\n\n\tvar onend = function() {\n\t\treadable = false;\n\t\tif (!writable) callback.call(stream);\n\t};\n\n\tvar onexit = function(exitCode) {\n\t\tcallback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);\n\t};\n\n\tvar onerror = function(err) {\n\t\tcallback.call(stream, err);\n\t};\n\n\tvar onclose = function() {\n\t\tif (readable && !(rs && rs.ended)) return callback.call(stream, new Error('premature close'));\n\t\tif (writable && !(ws && ws.ended)) return callback.call(stream, new Error('premature close'));\n\t};\n\n\tvar onrequest = function() {\n\t\tstream.req.on('finish', onfinish);\n\t};\n\n\tif (isRequest(stream)) {\n\t\tstream.on('complete', onfinish);\n\t\tstream.on('abort', onclose);\n\t\tif (stream.req) onrequest();\n\t\telse stream.on('request', onrequest);\n\t} else if (writable && !ws) { // legacy streams\n\t\tstream.on('end', onlegacyfinish);\n\t\tstream.on('close', onlegacyfinish);\n\t}\n\n\tif (isChildProcess(stream)) stream.on('exit', onexit);\n\n\tstream.on('end', onend);\n\tstream.on('finish', onfinish);\n\tif (opts.error !== false) stream.on('error', onerror);\n\tstream.on('close', onclose);\n\n\treturn function() {\n\t\tstream.removeListener('complete', onfinish);\n\t\tstream.removeListener('abort', onclose);\n\t\tstream.removeListener('request', onrequest);\n\t\tif (stream.req) stream.req.removeListener('finish', onfinish);\n\t\tstream.removeListener('end', onlegacyfinish);\n\t\tstream.removeListener('close', onlegacyfinish);\n\t\tstream.removeListener('finish', onfinish);\n\t\tstream.removeListener('exit', onexit);\n\t\tstream.removeListener('end', onend);\n\t\tstream.removeListener('error', onerror);\n\t\tstream.removeListener('close', onclose);\n\t};\n};\n\nmodule.exports = eos;\n\n},{\"once\":48}],24:[function(_dereq_,module,exports){\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar objectCreate = Object.create || objectCreatePolyfill\nvar objectKeys = Object.keys || objectKeysPolyfill\nvar bind = Function.prototype.bind || functionBindPolyfill\n\nfunction EventEmitter() {\n if (!this._events || !Object.prototype.hasOwnProperty.call(this, '_events')) {\n this._events = objectCreate(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nvar hasDefineProperty;\ntry {\n var o = {};\n if (Object.defineProperty) Object.defineProperty(o, 'x', { value: 0 });\n hasDefineProperty = o.x === 0;\n} catch (err) { hasDefineProperty = false }\nif (hasDefineProperty) {\n Object.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n // check whether the input is a positive number (whose value is zero or\n // greater and not a NaN).\n if (typeof arg !== 'number' || arg < 0 || arg !== arg)\n throw new TypeError('\"defaultMaxListeners\" must be a positive number');\n defaultMaxListeners = arg;\n }\n });\n} else {\n EventEmitter.defaultMaxListeners = defaultMaxListeners;\n}\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || isNaN(n))\n throw new TypeError('\"n\" argument must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\n// These standalone emit* functions are used to optimize calling of event\n// handlers for fast cases because emit() itself often has a variable number of\n// arguments and can be deoptimized because of that. These functions always have\n// the same number of arguments and thus do not get deoptimized, so the code\n// inside them can execute faster.\nfunction emitNone(handler, isFn, self) {\n if (isFn)\n handler.call(self);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self);\n }\n}\nfunction emitOne(handler, isFn, self, arg1) {\n if (isFn)\n handler.call(self, arg1);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1);\n }\n}\nfunction emitTwo(handler, isFn, self, arg1, arg2) {\n if (isFn)\n handler.call(self, arg1, arg2);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2);\n }\n}\nfunction emitThree(handler, isFn, self, arg1, arg2, arg3) {\n if (isFn)\n handler.call(self, arg1, arg2, arg3);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].call(self, arg1, arg2, arg3);\n }\n}\n\nfunction emitMany(handler, isFn, self, args) {\n if (isFn)\n handler.apply(self, args);\n else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n listeners[i].apply(self, args);\n }\n}\n\nEventEmitter.prototype.emit = function emit(type) {\n var er, handler, len, args, i, events;\n var doError = (type === 'error');\n\n events = this._events;\n if (events)\n doError = (doError && events.error == null);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n if (arguments.length > 1)\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Unhandled \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n return false;\n }\n\n handler = events[type];\n\n if (!handler)\n return false;\n\n var isFn = typeof handler === 'function';\n len = arguments.length;\n switch (len) {\n // fast cases\n case 1:\n emitNone(handler, isFn, this);\n break;\n case 2:\n emitOne(handler, isFn, this, arguments[1]);\n break;\n case 3:\n emitTwo(handler, isFn, this, arguments[1], arguments[2]);\n break;\n case 4:\n emitThree(handler, isFn, this, arguments[1], arguments[2], arguments[3]);\n break;\n // slower\n default:\n args = new Array(len - 1);\n for (i = 1; i < len; i++)\n args[i - 1] = arguments[i];\n emitMany(handler, isFn, this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = target._events;\n if (!events) {\n events = target._events = objectCreate(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (!existing) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n } else {\n // If we've already got an array, just append.\n if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n }\n\n // Check for listener leak\n if (!existing.warned) {\n m = $getMaxListeners(target);\n if (m && m > 0 && existing.length > m) {\n existing.warned = true;\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' \"' + String(type) + '\" listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit.');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n if (typeof console === 'object' && console.warn) {\n console.warn('%s: %s', w.name, w.message);\n }\n }\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n switch (arguments.length) {\n case 0:\n return this.listener.call(this.target);\n case 1:\n return this.listener.call(this.target, arguments[0]);\n case 2:\n return this.listener.call(this.target, arguments[0], arguments[1]);\n case 3:\n return this.listener.call(this.target, arguments[0], arguments[1],\n arguments[2]);\n default:\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i)\n args[i] = arguments[i];\n this.listener.apply(this.target, args);\n }\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = bind.call(onceWrapper, state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function')\n throw new TypeError('\"listener\" argument must be a function');\n\n events = this._events;\n if (!events)\n return this;\n\n list = events[type];\n if (!list)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = objectCreate(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else\n spliceOne(list, position);\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (!events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!events.removeListener) {\n if (arguments.length === 0) {\n this._events = objectCreate(null);\n this._eventsCount = 0;\n } else if (events[type]) {\n if (--this._eventsCount === 0)\n this._events = objectCreate(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = objectKeys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = objectCreate(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nEventEmitter.prototype.listeners = function listeners(type) {\n var evlistener;\n var ret;\n var events = this._events;\n\n if (!events)\n ret = [];\n else {\n evlistener = events[type];\n if (!evlistener)\n ret = [];\n else if (typeof evlistener === 'function')\n ret = [evlistener.listener || evlistener];\n else\n ret = unwrapListeners(evlistener);\n }\n\n return ret;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [];\n};\n\n// About 1.5x faster than the two-arg version of Array#splice().\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1)\n list[i] = list[k];\n list.pop();\n}\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction objectCreatePolyfill(proto) {\n var F = function() {};\n F.prototype = proto;\n return new F;\n}\nfunction objectKeysPolyfill(obj) {\n var keys = [];\n for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k)) {\n keys.push(k);\n }\n return k;\n}\nfunction functionBindPolyfill(context) {\n var fn = this;\n return function () {\n return fn.apply(context, arguments);\n };\n}\n\n},{}],25:[function(_dereq_,module,exports){\n(function (global){\n\"use strict\";\n\n/**\r\n * filesize\r\n *\r\n * @copyright 2018 Jason Mulligan \r\n * @license BSD-3-Clause\r\n * @version 3.6.1\r\n */\n(function (global) {\n\tvar b = /^(b|B)$/,\n\t symbol = {\n\t\tiec: {\n\t\t\tbits: [\"b\", \"Kib\", \"Mib\", \"Gib\", \"Tib\", \"Pib\", \"Eib\", \"Zib\", \"Yib\"],\n\t\t\tbytes: [\"B\", \"KiB\", \"MiB\", \"GiB\", \"TiB\", \"PiB\", \"EiB\", \"ZiB\", \"YiB\"]\n\t\t},\n\t\tjedec: {\n\t\t\tbits: [\"b\", \"Kb\", \"Mb\", \"Gb\", \"Tb\", \"Pb\", \"Eb\", \"Zb\", \"Yb\"],\n\t\t\tbytes: [\"B\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"]\n\t\t}\n\t},\n\t fullform = {\n\t\tiec: [\"\", \"kibi\", \"mebi\", \"gibi\", \"tebi\", \"pebi\", \"exbi\", \"zebi\", \"yobi\"],\n\t\tjedec: [\"\", \"kilo\", \"mega\", \"giga\", \"tera\", \"peta\", \"exa\", \"zetta\", \"yotta\"]\n\t};\n\n\t/**\r\n * filesize\r\n *\r\n * @method filesize\r\n * @param {Mixed} arg String, Int or Float to transform\r\n * @param {Object} descriptor [Optional] Flags\r\n * @return {String} Readable file size String\r\n */\n\tfunction filesize(arg) {\n\t\tvar descriptor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n\t\tvar result = [],\n\t\t val = 0,\n\t\t e = void 0,\n\t\t base = void 0,\n\t\t bits = void 0,\n\t\t ceil = void 0,\n\t\t full = void 0,\n\t\t fullforms = void 0,\n\t\t neg = void 0,\n\t\t num = void 0,\n\t\t output = void 0,\n\t\t round = void 0,\n\t\t unix = void 0,\n\t\t separator = void 0,\n\t\t spacer = void 0,\n\t\t standard = void 0,\n\t\t symbols = void 0;\n\n\t\tif (isNaN(arg)) {\n\t\t\tthrow new Error(\"Invalid arguments\");\n\t\t}\n\n\t\tbits = descriptor.bits === true;\n\t\tunix = descriptor.unix === true;\n\t\tbase = descriptor.base || 2;\n\t\tround = descriptor.round !== void 0 ? descriptor.round : unix ? 1 : 2;\n\t\tseparator = descriptor.separator !== void 0 ? descriptor.separator || \"\" : \"\";\n\t\tspacer = descriptor.spacer !== void 0 ? descriptor.spacer : unix ? \"\" : \" \";\n\t\tsymbols = descriptor.symbols || descriptor.suffixes || {};\n\t\tstandard = base === 2 ? descriptor.standard || \"jedec\" : \"jedec\";\n\t\toutput = descriptor.output || \"string\";\n\t\tfull = descriptor.fullform === true;\n\t\tfullforms = descriptor.fullforms instanceof Array ? descriptor.fullforms : [];\n\t\te = descriptor.exponent !== void 0 ? descriptor.exponent : -1;\n\t\tnum = Number(arg);\n\t\tneg = num < 0;\n\t\tceil = base > 2 ? 1000 : 1024;\n\n\t\t// Flipping a negative number to determine the size\n\t\tif (neg) {\n\t\t\tnum = -num;\n\t\t}\n\n\t\t// Determining the exponent\n\t\tif (e === -1 || isNaN(e)) {\n\t\t\te = Math.floor(Math.log(num) / Math.log(ceil));\n\n\t\t\tif (e < 0) {\n\t\t\t\te = 0;\n\t\t\t}\n\t\t}\n\n\t\t// Exceeding supported length, time to reduce & multiply\n\t\tif (e > 8) {\n\t\t\te = 8;\n\t\t}\n\n\t\t// Zero is now a special case because bytes divide by 1\n\t\tif (num === 0) {\n\t\t\tresult[0] = 0;\n\t\t\tresult[1] = unix ? \"\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\n\t\t} else {\n\t\t\tval = num / (base === 2 ? Math.pow(2, e * 10) : Math.pow(1000, e));\n\n\t\t\tif (bits) {\n\t\t\t\tval = val * 8;\n\n\t\t\t\tif (val >= ceil && e < 8) {\n\t\t\t\t\tval = val / ceil;\n\t\t\t\t\te++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tresult[0] = Number(val.toFixed(e > 0 ? round : 0));\n\t\t\tresult[1] = base === 10 && e === 1 ? bits ? \"kb\" : \"kB\" : symbol[standard][bits ? \"bits\" : \"bytes\"][e];\n\n\t\t\tif (unix) {\n\t\t\t\tresult[1] = standard === \"jedec\" ? result[1].charAt(0) : e > 0 ? result[1].replace(/B$/, \"\") : result[1];\n\n\t\t\t\tif (b.test(result[1])) {\n\t\t\t\t\tresult[0] = Math.floor(result[0]);\n\t\t\t\t\tresult[1] = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Decorating a 'diff'\n\t\tif (neg) {\n\t\t\tresult[0] = -result[0];\n\t\t}\n\n\t\t// Applying custom symbol\n\t\tresult[1] = symbols[result[1]] || result[1];\n\n\t\t// Returning Array, Object, or String (default)\n\t\tif (output === \"array\") {\n\t\t\treturn result;\n\t\t}\n\n\t\tif (output === \"exponent\") {\n\t\t\treturn e;\n\t\t}\n\n\t\tif (output === \"object\") {\n\t\t\treturn { value: result[0], suffix: result[1], symbol: result[1] };\n\t\t}\n\n\t\tif (full) {\n\t\t\tresult[1] = fullforms[e] ? fullforms[e] : fullform[standard][e] + (bits ? \"bit\" : \"byte\") + (result[0] === 1 ? \"\" : \"s\");\n\t\t}\n\n\t\tif (separator.length > 0) {\n\t\t\tresult[0] = result[0].toString().replace(\".\", separator);\n\t\t}\n\n\t\treturn result.join(spacer);\n\t}\n\n\t// Partial application for functional programming\n\tfilesize.partial = function (opt) {\n\t\treturn function (arg) {\n\t\t\treturn filesize(arg, opt);\n\t\t};\n\t};\n\n\t// CommonJS, AMD, script tag\n\tif (typeof exports !== \"undefined\") {\n\t\tmodule.exports = filesize;\n\t} else if (typeof define === \"function\" && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn filesize;\n\t\t});\n\t} else {\n\t\tglobal.filesize = filesize;\n\t}\n})(typeof window !== \"undefined\" ? window : global);\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],26:[function(_dereq_,module,exports){\n'use strict';\n\nexports.__esModule = true;\nexports.default = getFormData;\nexports.getFieldData = getFieldData;\nvar NODE_LIST_CLASSES = {\n '[object HTMLCollection]': true,\n '[object NodeList]': true,\n '[object RadioNodeList]': true\n\n // .type values for elements which can appear in .elements and should be ignored\n};var IGNORED_ELEMENT_TYPES = {\n 'button': true,\n 'fieldset': true,\n 'reset': true,\n 'submit': true\n};\n\nvar CHECKED_INPUT_TYPES = {\n 'checkbox': true,\n 'radio': true\n};\n\nvar TRIM_RE = /^\\s+|\\s+$/g;\n\nvar slice = Array.prototype.slice;\nvar toString = Object.prototype.toString;\n\n/**\n * @param {HTMLFormElement} form\n * @param {Object} options\n * @return {Object.)>} an object containing\n * submittable value(s) held in the form's .elements collection, with\n * properties named as per element names or ids.\n */\n\nfunction getFormData(form) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { trim: false };\n\n if (!form) {\n throw new Error('A form is required by getFormData, was given form=' + form);\n }\n\n var data = {};\n var elementName = void 0;\n var elementNames = [];\n var elementNameLookup = {};\n\n // Get unique submittable element names for the form\n for (var i = 0, l = form.elements.length; i < l; i++) {\n var element = form.elements[i];\n if (IGNORED_ELEMENT_TYPES[element.type] || element.disabled) {\n continue;\n }\n elementName = element.name || element.id;\n if (elementName && !elementNameLookup[elementName]) {\n elementNames.push(elementName);\n elementNameLookup[elementName] = true;\n }\n }\n\n // Extract element data name-by-name for consistent handling of special cases\n // around elements which contain multiple inputs.\n for (var _i = 0, _l = elementNames.length; _i < _l; _i++) {\n elementName = elementNames[_i];\n var value = getFieldData(form, elementName, options);\n if (value != null) {\n data[elementName] = value;\n }\n }\n\n return data;\n}\n\n/**\n * @param {HTMLFormElement} form\n * @param {string} fieldName\n * @param {Object} options\n * @return {(string|Array.)} submittable value(s) in the form for a\n * named element from its .elements collection, or null if there was no\n * element with that name or the element had no submittable value(s).\n */\nfunction getFieldData(form, fieldName) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { trim: false };\n\n if (!form) {\n throw new Error('A form is required by getFieldData, was given form=' + form);\n }\n if (!fieldName && toString.call(fieldName) !== '[object String]') {\n throw new Error('A field name is required by getFieldData, was given fieldName=' + fieldName);\n }\n\n var element = form.elements[fieldName];\n if (!element || element.disabled) {\n return null;\n }\n\n if (!NODE_LIST_CLASSES[toString.call(element)]) {\n return getFormElementValue(element, options.trim);\n }\n\n // Deal with multiple form controls which have the same name\n var data = [];\n var allRadios = true;\n for (var i = 0, l = element.length; i < l; i++) {\n if (element[i].disabled) {\n continue;\n }\n if (allRadios && element[i].type !== 'radio') {\n allRadios = false;\n }\n var value = getFormElementValue(element[i], options.trim);\n if (value != null) {\n data = data.concat(value);\n }\n }\n\n // Special case for an element with multiple same-named inputs which were all\n // radio buttons: if there was a selected value, only return the value.\n if (allRadios && data.length === 1) {\n return data[0];\n }\n\n return data.length > 0 ? data : null;\n}\n\n/**\n * @param {HTMLElement} element a form element.\n * @param {booleam} trim should values for text entry inputs be trimmed?\n * @return {(string|Array.|File|Array.)} the element's submittable\n * value(s), or null if it had none.\n */\nfunction getFormElementValue(element, trim) {\n var value = null;\n var type = element.type;\n\n\n if (type === 'select-one') {\n if (element.options.length) {\n value = element.options[element.selectedIndex].value;\n }\n return value;\n }\n\n if (type === 'select-multiple') {\n value = [];\n for (var i = 0, l = element.options.length; i < l; i++) {\n if (element.options[i].selected) {\n value.push(element.options[i].value);\n }\n }\n if (value.length === 0) {\n value = null;\n }\n return value;\n }\n\n // If a file input doesn't have a files attribute, fall through to using its\n // value attribute.\n if (type === 'file' && 'files' in element) {\n if (element.multiple) {\n value = slice.call(element.files);\n if (value.length === 0) {\n value = null;\n }\n } else {\n // Should be null if not present, according to the spec\n value = element.files[0];\n }\n return value;\n }\n\n if (!CHECKED_INPUT_TYPES[type]) {\n value = trim ? element.value.replace(TRIM_RE, '') : element.value;\n } else if (element.checked) {\n value = element.value;\n }\n\n return value;\n}\n\n// For UMD build access to getFieldData\ngetFormData.getFieldData = getFieldData;\n},{}],27:[function(_dereq_,module,exports){\nmodule.exports = Event\n\nfunction Event() {\n var listeners = []\n\n return { broadcast: broadcast, listen: event }\n\n function broadcast(value) {\n for (var i = 0; i < listeners.length; i++) {\n listeners[i](value)\n }\n }\n\n function event(listener) {\n listeners.push(listener)\n\n return removeListener\n\n function removeListener() {\n var index = listeners.indexOf(listener)\n if (index !== -1) {\n listeners.splice(index, 1)\n }\n }\n }\n}\n\n},{}],28:[function(_dereq_,module,exports){\nvar Event = _dereq_('./event.js')\n\nmodule.exports = Source\n\nfunction Source(broadcaster) {\n var tuple = Event()\n\n broadcaster(tuple.broadcast)\n\n return tuple.listen\n}\n\n},{\"./event.js\":27}],29:[function(_dereq_,module,exports){\n(function (global){\nvar topLevel = typeof global !== 'undefined' ? global :\n typeof window !== 'undefined' ? window : {}\nvar minDoc = _dereq_('min-document');\n\nvar doccy;\n\nif (typeof document !== 'undefined') {\n doccy = document;\n} else {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];\n\n if (!doccy) {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;\n }\n}\n\nmodule.exports = doccy;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"min-document\":6}],30:[function(_dereq_,module,exports){\n(function (global){\nvar win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\"){\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],31:[function(_dereq_,module,exports){\nmodule.exports = shim\n\nfunction shim (element, value) {\n if (value === undefined) {\n return element.style.display === 'none'\n }\n\n element.style.display = value ? 'none' : ''\n}\n\n},{}],32:[function(_dereq_,module,exports){\n// HumanizeDuration.js - https://git.io/j0HgmQ\n\n;(function () {\n // This has to be defined separately because of a bug: we want to alias\n // `gr` and `el` for backwards-compatiblity. In a breaking change, we can\n // remove `gr` entirely.\n // See https://github.com/EvanHahn/HumanizeDuration.js/issues/143 for more.\n var greek = {\n y: function (c) { return c === 1 ? 'χρόνος' : 'χρόνια' },\n mo: function (c) { return c === 1 ? 'μήνας' : 'μήνες' },\n w: function (c) { return c === 1 ? 'εβδομάδα' : 'εβδομάδες' },\n d: function (c) { return c === 1 ? 'μέρα' : 'μέρες' },\n h: function (c) { return c === 1 ? 'ώρα' : 'ώρες' },\n m: function (c) { return c === 1 ? 'λεπτό' : 'λεπτά' },\n s: function (c) { return c === 1 ? 'δευτερόλεπτο' : 'δευτερόλεπτα' },\n ms: function (c) { return c === 1 ? 'χιλιοστό του δευτερολέπτου' : 'χιλιοστά του δευτερολέπτου' },\n decimal: ','\n }\n\n var languages = {\n ar: {\n y: function (c) { return c === 1 ? 'سنة' : 'سنوات' },\n mo: function (c) { return c === 1 ? 'شهر' : 'أشهر' },\n w: function (c) { return c === 1 ? 'أسبوع' : 'أسابيع' },\n d: function (c) { return c === 1 ? 'يوم' : 'أيام' },\n h: function (c) { return c === 1 ? 'ساعة' : 'ساعات' },\n m: function (c) {\n return ['دقيقة', 'دقائق'][getArabicForm(c)]\n },\n s: function (c) { return c === 1 ? 'ثانية' : 'ثواني' },\n ms: function (c) { return c === 1 ? 'جزء من الثانية' : 'أجزاء من الثانية' },\n decimal: ','\n },\n bg: {\n y: function (c) { return ['години', 'година', 'години'][getSlavicForm(c)] },\n mo: function (c) { return ['месеца', 'месец', 'месеца'][getSlavicForm(c)] },\n w: function (c) { return ['седмици', 'седмица', 'седмици'][getSlavicForm(c)] },\n d: function (c) { return ['дни', 'ден', 'дни'][getSlavicForm(c)] },\n h: function (c) { return ['часа', 'час', 'часа'][getSlavicForm(c)] },\n m: function (c) { return ['минути', 'минута', 'минути'][getSlavicForm(c)] },\n s: function (c) { return ['секунди', 'секунда', 'секунди'][getSlavicForm(c)] },\n ms: function (c) { return ['милисекунди', 'милисекунда', 'милисекунди'][getSlavicForm(c)] },\n decimal: ','\n },\n ca: {\n y: function (c) { return 'any' + (c === 1 ? '' : 's') },\n mo: function (c) { return 'mes' + (c === 1 ? '' : 'os') },\n w: function (c) { return 'setman' + (c === 1 ? 'a' : 'es') },\n d: function (c) { return 'di' + (c === 1 ? 'a' : 'es') },\n h: function (c) { return 'hor' + (c === 1 ? 'a' : 'es') },\n m: function (c) { return 'minut' + (c === 1 ? '' : 's') },\n s: function (c) { return 'segon' + (c === 1 ? '' : 's') },\n ms: function (c) { return 'milisegon' + (c === 1 ? '' : 's') },\n decimal: ','\n },\n cs: {\n y: function (c) { return ['rok', 'roku', 'roky', 'let'][getCzechOrSlovakForm(c)] },\n mo: function (c) { return ['měsíc', 'měsíce', 'měsíce', 'měsíců'][getCzechOrSlovakForm(c)] },\n w: function (c) { return ['týden', 'týdne', 'týdny', 'týdnů'][getCzechOrSlovakForm(c)] },\n d: function (c) { return ['den', 'dne', 'dny', 'dní'][getCzechOrSlovakForm(c)] },\n h: function (c) { return ['hodina', 'hodiny', 'hodiny', 'hodin'][getCzechOrSlovakForm(c)] },\n m: function (c) { return ['minuta', 'minuty', 'minuty', 'minut'][getCzechOrSlovakForm(c)] },\n s: function (c) { return ['sekunda', 'sekundy', 'sekundy', 'sekund'][getCzechOrSlovakForm(c)] },\n ms: function (c) { return ['milisekunda', 'milisekundy', 'milisekundy', 'milisekund'][getCzechOrSlovakForm(c)] },\n decimal: ','\n },\n da: {\n y: 'år',\n mo: function (c) { return 'måned' + (c === 1 ? '' : 'er') },\n w: function (c) { return 'uge' + (c === 1 ? '' : 'r') },\n d: function (c) { return 'dag' + (c === 1 ? '' : 'e') },\n h: function (c) { return 'time' + (c === 1 ? '' : 'r') },\n m: function (c) { return 'minut' + (c === 1 ? '' : 'ter') },\n s: function (c) { return 'sekund' + (c === 1 ? '' : 'er') },\n ms: function (c) { return 'millisekund' + (c === 1 ? '' : 'er') },\n decimal: ','\n },\n de: {\n y: function (c) { return 'Jahr' + (c === 1 ? '' : 'e') },\n mo: function (c) { return 'Monat' + (c === 1 ? '' : 'e') },\n w: function (c) { return 'Woche' + (c === 1 ? '' : 'n') },\n d: function (c) { return 'Tag' + (c === 1 ? '' : 'e') },\n h: function (c) { return 'Stunde' + (c === 1 ? '' : 'n') },\n m: function (c) { return 'Minute' + (c === 1 ? '' : 'n') },\n s: function (c) { return 'Sekunde' + (c === 1 ? '' : 'n') },\n ms: function (c) { return 'Millisekunde' + (c === 1 ? '' : 'n') },\n decimal: ','\n },\n el: greek,\n en: {\n y: function (c) { return 'year' + (c === 1 ? '' : 's') },\n mo: function (c) { return 'month' + (c === 1 ? '' : 's') },\n w: function (c) { return 'week' + (c === 1 ? '' : 's') },\n d: function (c) { return 'day' + (c === 1 ? '' : 's') },\n h: function (c) { return 'hour' + (c === 1 ? '' : 's') },\n m: function (c) { return 'minute' + (c === 1 ? '' : 's') },\n s: function (c) { return 'second' + (c === 1 ? '' : 's') },\n ms: function (c) { return 'millisecond' + (c === 1 ? '' : 's') },\n decimal: '.'\n },\n es: {\n y: function (c) { return 'año' + (c === 1 ? '' : 's') },\n mo: function (c) { return 'mes' + (c === 1 ? '' : 'es') },\n w: function (c) { return 'semana' + (c === 1 ? '' : 's') },\n d: function (c) { return 'día' + (c === 1 ? '' : 's') },\n h: function (c) { return 'hora' + (c === 1 ? '' : 's') },\n m: function (c) { return 'minuto' + (c === 1 ? '' : 's') },\n s: function (c) { return 'segundo' + (c === 1 ? '' : 's') },\n ms: function (c) { return 'milisegundo' + (c === 1 ? '' : 's') },\n decimal: ','\n },\n fa: {\n y: 'سال',\n mo: 'ماه',\n w: 'هفته',\n d: 'روز',\n h: 'ساعت',\n m: 'دقیقه',\n s: 'ثانیه',\n ms: 'میلی ثانیه',\n decimal: '.'\n },\n fi: {\n y: function (c) { return c === 1 ? 'vuosi' : 'vuotta' },\n mo: function (c) { return c === 1 ? 'kuukausi' : 'kuukautta' },\n w: function (c) { return 'viikko' + (c === 1 ? '' : 'a') },\n d: function (c) { return 'päivä' + (c === 1 ? '' : 'ä') },\n h: function (c) { return 'tunti' + (c === 1 ? '' : 'a') },\n m: function (c) { return 'minuutti' + (c === 1 ? '' : 'a') },\n s: function (c) { return 'sekunti' + (c === 1 ? '' : 'a') },\n ms: function (c) { return 'millisekunti' + (c === 1 ? '' : 'a') },\n decimal: ','\n },\n fr: {\n y: function (c) { return 'an' + (c >= 2 ? 's' : '') },\n mo: 'mois',\n w: function (c) { return 'semaine' + (c >= 2 ? 's' : '') },\n d: function (c) { return 'jour' + (c >= 2 ? 's' : '') },\n h: function (c) { return 'heure' + (c >= 2 ? 's' : '') },\n m: function (c) { return 'minute' + (c >= 2 ? 's' : '') },\n s: function (c) { return 'seconde' + (c >= 2 ? 's' : '') },\n ms: function (c) { return 'milliseconde' + (c >= 2 ? 's' : '') },\n decimal: ','\n },\n gr: greek,\n hr: {\n y: function (c) {\n if (c % 10 === 2 || c % 10 === 3 || c % 10 === 4) {\n return 'godine'\n }\n return 'godina'\n },\n mo: function (c) {\n if (c === 1) {\n return 'mjesec'\n } else if (c === 2 || c === 3 || c === 4) {\n return 'mjeseca'\n }\n return 'mjeseci'\n },\n w: function (c) {\n if (c % 10 === 1 && c !== 11) {\n return 'tjedan'\n }\n return 'tjedna'\n },\n d: function (c) { return c === 1 ? 'dan' : 'dana' },\n h: function (c) {\n if (c === 1) {\n return 'sat'\n } else if (c === 2 || c === 3 || c === 4) {\n return 'sata'\n }\n return 'sati'\n },\n m: function (c) {\n var mod10 = c % 10\n if ((mod10 === 2 || mod10 === 3 || mod10 === 4) && (c < 10 || c > 14)) {\n return 'minute'\n }\n return 'minuta'\n },\n s: function (c) {\n if ((c === 10 || c === 11 || c === 12 || c === 13 || c === 14 || c === 16 || c === 17 || c === 18 || c === 19) || (c % 10 === 5)) {\n return 'sekundi'\n } else if (c % 10 === 1) {\n return 'sekunda'\n } else if (c % 10 === 2 || c % 10 === 3 || c % 10 === 4) {\n return 'sekunde'\n }\n return 'sekundi'\n },\n ms: function (c) {\n if (c === 1) {\n return 'milisekunda'\n } else if (c % 10 === 2 || c % 10 === 3 || c % 10 === 4) {\n return 'milisekunde'\n }\n return 'milisekundi'\n },\n decimal: ','\n },\n hu: {\n y: 'év',\n mo: 'hónap',\n w: 'hét',\n d: 'nap',\n h: 'óra',\n m: 'perc',\n s: 'másodperc',\n ms: 'ezredmásodperc',\n decimal: ','\n },\n id: {\n y: 'tahun',\n mo: 'bulan',\n w: 'minggu',\n d: 'hari',\n h: 'jam',\n m: 'menit',\n s: 'detik',\n ms: 'milidetik',\n decimal: '.'\n },\n is: {\n y: 'ár',\n mo: function (c) { return 'mánuð' + (c === 1 ? 'ur' : 'ir') },\n w: function (c) { return 'vik' + (c === 1 ? 'a' : 'ur') },\n d: function (c) { return 'dag' + (c === 1 ? 'ur' : 'ar') },\n h: function (c) { return 'klukkutím' + (c === 1 ? 'i' : 'ar') },\n m: function (c) { return 'mínút' + (c === 1 ? 'a' : 'ur') },\n s: function (c) { return 'sekúnd' + (c === 1 ? 'a' : 'ur') },\n ms: function (c) { return 'millisekúnd' + (c === 1 ? 'a' : 'ur') },\n decimal: '.'\n },\n it: {\n y: function (c) { return 'ann' + (c === 1 ? 'o' : 'i') },\n mo: function (c) { return 'mes' + (c === 1 ? 'e' : 'i') },\n w: function (c) { return 'settiman' + (c === 1 ? 'a' : 'e') },\n d: function (c) { return 'giorn' + (c === 1 ? 'o' : 'i') },\n h: function (c) { return 'or' + (c === 1 ? 'a' : 'e') },\n m: function (c) { return 'minut' + (c === 1 ? 'o' : 'i') },\n s: function (c) { return 'second' + (c === 1 ? 'o' : 'i') },\n ms: function (c) { return 'millisecond' + (c === 1 ? 'o' : 'i') },\n decimal: ','\n },\n ja: {\n y: '年',\n mo: '月',\n w: '週',\n d: '日',\n h: '時間',\n m: '分',\n s: '秒',\n ms: 'ミリ秒',\n decimal: '.'\n },\n ko: {\n y: '년',\n mo: '개월',\n w: '주일',\n d: '일',\n h: '시간',\n m: '분',\n s: '초',\n ms: '밀리 초',\n decimal: '.'\n },\n lo: {\n y: 'ປີ',\n mo: 'ເດືອນ',\n w: 'ອາທິດ',\n d: 'ມື້',\n h: 'ຊົ່ວໂມງ',\n m: 'ນາທີ',\n s: 'ວິນາທີ',\n ms: 'ມິນລິວິນາທີ',\n decimal: ','\n },\n lt: {\n y: function (c) { return ((c % 10 === 0) || (c % 100 >= 10 && c % 100 <= 20)) ? 'metų' : 'metai' },\n mo: function (c) { return ['mėnuo', 'mėnesiai', 'mėnesių'][getLithuanianForm(c)] },\n w: function (c) { return ['savaitė', 'savaitės', 'savaičių'][getLithuanianForm(c)] },\n d: function (c) { return ['diena', 'dienos', 'dienų'][getLithuanianForm(c)] },\n h: function (c) { return ['valanda', 'valandos', 'valandų'][getLithuanianForm(c)] },\n m: function (c) { return ['minutė', 'minutės', 'minučių'][getLithuanianForm(c)] },\n s: function (c) { return ['sekundė', 'sekundės', 'sekundžių'][getLithuanianForm(c)] },\n ms: function (c) { return ['milisekundė', 'milisekundės', 'milisekundžių'][getLithuanianForm(c)] },\n decimal: ','\n },\n ms: {\n y: 'tahun',\n mo: 'bulan',\n w: 'minggu',\n d: 'hari',\n h: 'jam',\n m: 'minit',\n s: 'saat',\n ms: 'milisaat',\n decimal: '.'\n },\n nl: {\n y: 'jaar',\n mo: function (c) { return c === 1 ? 'maand' : 'maanden' },\n w: function (c) { return c === 1 ? 'week' : 'weken' },\n d: function (c) { return c === 1 ? 'dag' : 'dagen' },\n h: 'uur',\n m: function (c) { return c === 1 ? 'minuut' : 'minuten' },\n s: function (c) { return c === 1 ? 'seconde' : 'seconden' },\n ms: function (c) { return c === 1 ? 'milliseconde' : 'milliseconden' },\n decimal: ','\n },\n no: {\n y: 'år',\n mo: function (c) { return 'måned' + (c === 1 ? '' : 'er') },\n w: function (c) { return 'uke' + (c === 1 ? '' : 'r') },\n d: function (c) { return 'dag' + (c === 1 ? '' : 'er') },\n h: function (c) { return 'time' + (c === 1 ? '' : 'r') },\n m: function (c) { return 'minutt' + (c === 1 ? '' : 'er') },\n s: function (c) { return 'sekund' + (c === 1 ? '' : 'er') },\n ms: function (c) { return 'millisekund' + (c === 1 ? '' : 'er') },\n decimal: ','\n },\n pl: {\n y: function (c) { return ['rok', 'roku', 'lata', 'lat'][getPolishForm(c)] },\n mo: function (c) { return ['miesiąc', 'miesiąca', 'miesiące', 'miesięcy'][getPolishForm(c)] },\n w: function (c) { return ['tydzień', 'tygodnia', 'tygodnie', 'tygodni'][getPolishForm(c)] },\n d: function (c) { return ['dzień', 'dnia', 'dni', 'dni'][getPolishForm(c)] },\n h: function (c) { return ['godzina', 'godziny', 'godziny', 'godzin'][getPolishForm(c)] },\n m: function (c) { return ['minuta', 'minuty', 'minuty', 'minut'][getPolishForm(c)] },\n s: function (c) { return ['sekunda', 'sekundy', 'sekundy', 'sekund'][getPolishForm(c)] },\n ms: function (c) { return ['milisekunda', 'milisekundy', 'milisekundy', 'milisekund'][getPolishForm(c)] },\n decimal: ','\n },\n pt: {\n y: function (c) { return 'ano' + (c === 1 ? '' : 's') },\n mo: function (c) { return c === 1 ? 'mês' : 'meses' },\n w: function (c) { return 'semana' + (c === 1 ? '' : 's') },\n d: function (c) { return 'dia' + (c === 1 ? '' : 's') },\n h: function (c) { return 'hora' + (c === 1 ? '' : 's') },\n m: function (c) { return 'minuto' + (c === 1 ? '' : 's') },\n s: function (c) { return 'segundo' + (c === 1 ? '' : 's') },\n ms: function (c) { return 'milissegundo' + (c === 1 ? '' : 's') },\n decimal: ','\n },\n ru: {\n y: function (c) { return ['лет', 'год', 'года'][getSlavicForm(c)] },\n mo: function (c) { return ['месяцев', 'месяц', 'месяца'][getSlavicForm(c)] },\n w: function (c) { return ['недель', 'неделя', 'недели'][getSlavicForm(c)] },\n d: function (c) { return ['дней', 'день', 'дня'][getSlavicForm(c)] },\n h: function (c) { return ['часов', 'час', 'часа'][getSlavicForm(c)] },\n m: function (c) { return ['минут', 'минута', 'минуты'][getSlavicForm(c)] },\n s: function (c) { return ['секунд', 'секунда', 'секунды'][getSlavicForm(c)] },\n ms: function (c) { return ['миллисекунд', 'миллисекунда', 'миллисекунды'][getSlavicForm(c)] },\n decimal: ','\n },\n uk: {\n y: function (c) { return ['років', 'рік', 'роки'][getSlavicForm(c)] },\n mo: function (c) { return ['місяців', 'місяць', 'місяці'][getSlavicForm(c)] },\n w: function (c) { return ['тижнів', 'тиждень', 'тижні'][getSlavicForm(c)] },\n d: function (c) { return ['днів', 'день', 'дні'][getSlavicForm(c)] },\n h: function (c) { return ['годин', 'година', 'години'][getSlavicForm(c)] },\n m: function (c) { return ['хвилин', 'хвилина', 'хвилини'][getSlavicForm(c)] },\n s: function (c) { return ['секунд', 'секунда', 'секунди'][getSlavicForm(c)] },\n ms: function (c) { return ['мілісекунд', 'мілісекунда', 'мілісекунди'][getSlavicForm(c)] },\n decimal: ','\n },\n ur: {\n y: 'سال',\n mo: function (c) { return c === 1 ? 'مہینہ' : 'مہینے' },\n w: function (c) { return c === 1 ? 'ہفتہ' : 'ہفتے' },\n d: 'دن',\n h: function (c) { return c === 1 ? 'گھنٹہ' : 'گھنٹے' },\n m: 'منٹ',\n s: 'سیکنڈ',\n ms: 'ملی سیکنڈ',\n decimal: '.'\n },\n sk: {\n y: function (c) { return ['rok', 'roky', 'roky', 'rokov'][getCzechOrSlovakForm(c)] },\n mo: function (c) { return ['mesiac', 'mesiace', 'mesiace', 'mesiacov'][getCzechOrSlovakForm(c)] },\n w: function (c) { return ['týždeň', 'týždne', 'týždne', 'týždňov'][getCzechOrSlovakForm(c)] },\n d: function (c) { return ['deň', 'dni', 'dni', 'dní'][getCzechOrSlovakForm(c)] },\n h: function (c) { return ['hodina', 'hodiny', 'hodiny', 'hodín'][getCzechOrSlovakForm(c)] },\n m: function (c) { return ['minúta', 'minúty', 'minúty', 'minút'][getCzechOrSlovakForm(c)] },\n s: function (c) { return ['sekunda', 'sekundy', 'sekundy', 'sekúnd'][getCzechOrSlovakForm(c)] },\n ms: function (c) { return ['milisekunda', 'milisekundy', 'milisekundy', 'milisekúnd'][getCzechOrSlovakForm(c)] },\n decimal: ','\n },\n sv: {\n y: 'år',\n mo: function (c) { return 'månad' + (c === 1 ? '' : 'er') },\n w: function (c) { return 'veck' + (c === 1 ? 'a' : 'or') },\n d: function (c) { return 'dag' + (c === 1 ? '' : 'ar') },\n h: function (c) { return 'timm' + (c === 1 ? 'e' : 'ar') },\n m: function (c) { return 'minut' + (c === 1 ? '' : 'er') },\n s: function (c) { return 'sekund' + (c === 1 ? '' : 'er') },\n ms: function (c) { return 'millisekund' + (c === 1 ? '' : 'er') },\n decimal: ','\n },\n tr: {\n y: 'yıl',\n mo: 'ay',\n w: 'hafta',\n d: 'gün',\n h: 'saat',\n m: 'dakika',\n s: 'saniye',\n ms: 'milisaniye',\n decimal: ','\n },\n vi: {\n y: 'năm',\n mo: 'tháng',\n w: 'tuần',\n d: 'ngày',\n h: 'giờ',\n m: 'phút',\n s: 'giây',\n ms: 'mili giây',\n decimal: ','\n },\n zh_CN: {\n y: '年',\n mo: '个月',\n w: '周',\n d: '天',\n h: '小时',\n m: '分钟',\n s: '秒',\n ms: '毫秒',\n decimal: '.'\n },\n zh_TW: {\n y: '年',\n mo: '個月',\n w: '周',\n d: '天',\n h: '小時',\n m: '分鐘',\n s: '秒',\n ms: '毫秒',\n decimal: '.'\n }\n }\n\n // You can create a humanizer, which returns a function with default\n // parameters.\n function humanizer (passedOptions) {\n var result = function humanizer (ms, humanizerOptions) {\n var options = extend({}, result, humanizerOptions || {})\n return doHumanization(ms, options)\n }\n\n return extend(result, {\n language: 'en',\n delimiter: ', ',\n spacer: ' ',\n conjunction: '',\n serialComma: true,\n units: ['y', 'mo', 'w', 'd', 'h', 'm', 's'],\n languages: {},\n round: false,\n unitMeasures: {\n y: 31557600000,\n mo: 2629800000,\n w: 604800000,\n d: 86400000,\n h: 3600000,\n m: 60000,\n s: 1000,\n ms: 1\n }\n }, passedOptions)\n }\n\n // The main function is just a wrapper around a default humanizer.\n var humanizeDuration = humanizer({})\n\n // doHumanization does the bulk of the work.\n function doHumanization (ms, options) {\n var i, len, piece\n\n // Make sure we have a positive number.\n // Has the nice sideffect of turning Number objects into primitives.\n ms = Math.abs(ms)\n\n var dictionary = options.languages[options.language] || languages[options.language]\n if (!dictionary) {\n throw new Error('No language ' + dictionary + '.')\n }\n\n var pieces = []\n\n // Start at the top and keep removing units, bit by bit.\n var unitName, unitMS, unitCount\n for (i = 0, len = options.units.length; i < len; i++) {\n unitName = options.units[i]\n unitMS = options.unitMeasures[unitName]\n\n // What's the number of full units we can fit?\n if (i + 1 === len) {\n unitCount = ms / unitMS\n } else {\n unitCount = Math.floor(ms / unitMS)\n }\n\n // Add the string.\n pieces.push({\n unitCount: unitCount,\n unitName: unitName\n })\n\n // Remove what we just figured out.\n ms -= unitCount * unitMS\n }\n\n var firstOccupiedUnitIndex = 0\n for (i = 0; i < pieces.length; i++) {\n if (pieces[i].unitCount) {\n firstOccupiedUnitIndex = i\n break\n }\n }\n\n if (options.round) {\n var ratioToLargerUnit, previousPiece\n for (i = pieces.length - 1; i >= 0; i--) {\n piece = pieces[i]\n piece.unitCount = Math.round(piece.unitCount)\n\n if (i === 0) { break }\n\n previousPiece = pieces[i - 1]\n\n ratioToLargerUnit = options.unitMeasures[previousPiece.unitName] / options.unitMeasures[piece.unitName]\n if ((piece.unitCount % ratioToLargerUnit) === 0 || (options.largest && ((options.largest - 1) < (i - firstOccupiedUnitIndex)))) {\n previousPiece.unitCount += piece.unitCount / ratioToLargerUnit\n piece.unitCount = 0\n }\n }\n }\n\n var result = []\n for (i = 0, pieces.length; i < len; i++) {\n piece = pieces[i]\n if (piece.unitCount) {\n result.push(render(piece.unitCount, piece.unitName, dictionary, options))\n }\n\n if (result.length === options.largest) { break }\n }\n\n if (result.length) {\n if (!options.conjunction || result.length === 1) {\n return result.join(options.delimiter)\n } else if (result.length === 2) {\n return result.join(options.conjunction)\n } else if (result.length > 2) {\n return result.slice(0, -1).join(options.delimiter) + (options.serialComma ? ',' : '') + options.conjunction + result.slice(-1)\n }\n } else {\n return render(0, options.units[options.units.length - 1], dictionary, options)\n }\n }\n\n function render (count, type, dictionary, options) {\n var decimal\n if (options.decimal === void 0) {\n decimal = dictionary.decimal\n } else {\n decimal = options.decimal\n }\n\n var countStr = count.toString().replace('.', decimal)\n\n var dictionaryValue = dictionary[type]\n var word\n if (typeof dictionaryValue === 'function') {\n word = dictionaryValue(count)\n } else {\n word = dictionaryValue\n }\n\n return countStr + options.spacer + word\n }\n\n function extend (destination) {\n var source\n for (var i = 1; i < arguments.length; i++) {\n source = arguments[i]\n for (var prop in source) {\n if (source.hasOwnProperty(prop)) {\n destination[prop] = source[prop]\n }\n }\n }\n return destination\n }\n\n // Internal helper function for Polish language.\n function getPolishForm (c) {\n if (c === 1) {\n return 0\n } else if (Math.floor(c) !== c) {\n return 1\n } else if (c % 10 >= 2 && c % 10 <= 4 && !(c % 100 > 10 && c % 100 < 20)) {\n return 2\n } else {\n return 3\n }\n }\n\n // Internal helper function for Russian and Ukranian languages.\n function getSlavicForm (c) {\n if (Math.floor(c) !== c) {\n return 2\n } else if ((c % 100 >= 5 && c % 100 <= 20) || (c % 10 >= 5 && c % 10 <= 9) || c % 10 === 0) {\n return 0\n } else if (c % 10 === 1) {\n return 1\n } else if (c > 1) {\n return 2\n } else {\n return 0\n }\n }\n\n // Internal helper function for Slovak language.\n function getCzechOrSlovakForm (c) {\n if (c === 1) {\n return 0\n } else if (Math.floor(c) !== c) {\n return 1\n } else if (c % 10 >= 2 && c % 10 <= 4 && c % 100 < 10) {\n return 2\n } else {\n return 3\n }\n }\n\n // Internal helper function for Lithuanian language.\n function getLithuanianForm (c) {\n if (c === 1 || (c % 10 === 1 && c % 100 > 20)) {\n return 0\n } else if (Math.floor(c) !== c || (c % 10 >= 2 && c % 100 > 20) || (c % 10 >= 2 && c % 100 < 10)) {\n return 1\n } else {\n return 2\n }\n }\n\n // Internal helper function for Arabic language.\n function getArabicForm (c) {\n if (c <= 2) { return 0 }\n if (c > 2 && c < 11) { return 1 }\n return 0\n }\n\n humanizeDuration.getSupportedLanguages = function getSupportedLanguages () {\n var result = []\n for (var language in languages) {\n if (languages.hasOwnProperty(language) && language !== 'gr') {\n result.push(language)\n }\n }\n return result\n }\n\n humanizeDuration.humanizer = humanizer\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return humanizeDuration\n })\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = humanizeDuration\n } else {\n this.humanizeDuration = humanizeDuration\n }\n})(); // eslint-disable-line semi\n\n},{}],33:[function(_dereq_,module,exports){\nvar split = _dereq_('browser-split')\nvar ClassList = _dereq_('class-list')\n\nvar w = typeof window === 'undefined' ? _dereq_('html-element') : window\nvar document = w.document\nvar Text = w.Text\n\nfunction context () {\n\n var cleanupFuncs = []\n\n function h() {\n var args = [].slice.call(arguments), e = null\n function item (l) {\n var r\n function parseClass (string) {\n // Our minimal parser doesn’t understand escaping CSS special\n // characters like `#`. Don’t use them. More reading:\n // https://mathiasbynens.be/notes/css-escapes .\n\n var m = split(string, /([\\.#]?[^\\s#.]+)/)\n if(/^\\.|#/.test(m[1]))\n e = document.createElement('div')\n forEach(m, function (v) {\n var s = v.substring(1,v.length)\n if(!v) return\n if(!e)\n e = document.createElement(v)\n else if (v[0] === '.')\n ClassList(e).add(s)\n else if (v[0] === '#')\n e.setAttribute('id', s)\n })\n }\n\n if(l == null)\n ;\n else if('string' === typeof l) {\n if(!e)\n parseClass(l)\n else\n e.appendChild(r = document.createTextNode(l))\n }\n else if('number' === typeof l\n || 'boolean' === typeof l\n || l instanceof Date\n || l instanceof RegExp ) {\n e.appendChild(r = document.createTextNode(l.toString()))\n }\n //there might be a better way to handle this...\n else if (isArray(l))\n forEach(l, item)\n else if(isNode(l))\n e.appendChild(r = l)\n else if(l instanceof Text)\n e.appendChild(r = l)\n else if ('object' === typeof l) {\n for (var k in l) {\n if('function' === typeof l[k]) {\n if(/^on\\w+/.test(k)) {\n (function (k, l) { // capture k, l in the closure\n if (e.addEventListener){\n e.addEventListener(k.substring(2), l[k], false)\n cleanupFuncs.push(function(){\n e.removeEventListener(k.substring(2), l[k], false)\n })\n }else{\n e.attachEvent(k, l[k])\n cleanupFuncs.push(function(){\n e.detachEvent(k, l[k])\n })\n }\n })(k, l)\n } else {\n // observable\n e[k] = l[k]()\n cleanupFuncs.push(l[k](function (v) {\n e[k] = v\n }))\n }\n }\n else if(k === 'style') {\n if('string' === typeof l[k]) {\n e.style.cssText = l[k]\n }else{\n for (var s in l[k]) (function(s, v) {\n if('function' === typeof v) {\n // observable\n e.style.setProperty(s, v())\n cleanupFuncs.push(v(function (val) {\n e.style.setProperty(s, val)\n }))\n } else\n var match = l[k][s].match(/(.*)\\W+!important\\W*$/);\n if (match) {\n e.style.setProperty(s, match[1], 'important')\n } else {\n e.style.setProperty(s, l[k][s])\n }\n })(s, l[k][s])\n }\n } else if(k === 'attrs') {\n for (var v in l[k]) {\n e.setAttribute(v, l[k][v])\n }\n }\n else if (k.substr(0, 5) === \"data-\") {\n e.setAttribute(k, l[k])\n } else {\n e[k] = l[k]\n }\n }\n } else if ('function' === typeof l) {\n //assume it's an observable!\n var v = l()\n e.appendChild(r = isNode(v) ? v : document.createTextNode(v))\n\n cleanupFuncs.push(l(function (v) {\n if(isNode(v) && r.parentElement)\n r.parentElement.replaceChild(v, r), r = v\n else\n r.textContent = v\n }))\n }\n\n return r\n }\n while(args.length)\n item(args.shift())\n\n return e\n }\n\n h.cleanup = function () {\n for (var i = 0; i < cleanupFuncs.length; i++){\n cleanupFuncs[i]()\n }\n cleanupFuncs.length = 0\n }\n\n return h\n}\n\nvar h = module.exports = context()\nh.context = context\n\nfunction isNode (el) {\n return el && el.nodeName && el.nodeType\n}\n\nfunction forEach (arr, fn) {\n if (arr.forEach) return arr.forEach(fn)\n for (var i = 0; i < arr.length; i++) fn(arr[i], i)\n}\n\nfunction isArray (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]'\n}\n\n\n\n},{\"browser-split\":7,\"class-list\":10,\"html-element\":6}],34:[function(_dereq_,module,exports){\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n},{}],35:[function(_dereq_,module,exports){\n\nvar indexOf = [].indexOf;\n\nmodule.exports = function(arr, obj){\n if (indexOf) return arr.indexOf(obj);\n for (var i = 0; i < arr.length; ++i) {\n if (arr[i] === obj) return i;\n }\n return -1;\n};\n},{}],36:[function(_dereq_,module,exports){\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n},{}],37:[function(_dereq_,module,exports){\nvar containers = []; // will store container HTMLElement references\nvar styleElements = []; // will store {prepend: HTMLElement, append: HTMLElement}\n\nvar usage = 'insert-css: You need to provide a CSS string. Usage: insertCss(cssString[, options]).';\n\nfunction insertCss(css, options) {\n options = options || {};\n\n if (css === undefined) {\n throw new Error(usage);\n }\n\n var position = options.prepend === true ? 'prepend' : 'append';\n var container = options.container !== undefined ? options.container : document.querySelector('head');\n var containerId = containers.indexOf(container);\n\n // first time we see this container, create the necessary entries\n if (containerId === -1) {\n containerId = containers.push(container) - 1;\n styleElements[containerId] = {};\n }\n\n // try to get the correponding container + position styleElement, create it otherwise\n var styleElement;\n\n if (styleElements[containerId] !== undefined && styleElements[containerId][position] !== undefined) {\n styleElement = styleElements[containerId][position];\n } else {\n styleElement = styleElements[containerId][position] = createStyleElement();\n\n if (position === 'prepend') {\n container.insertBefore(styleElement, container.childNodes[0]);\n } else {\n container.appendChild(styleElement);\n }\n }\n\n // strip potential UTF-8 BOM if css was read from a file\n if (css.charCodeAt(0) === 0xFEFF) { css = css.substr(1, css.length); }\n\n // actually add the stylesheet\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText += css\n } else {\n styleElement.textContent += css;\n }\n\n return styleElement;\n};\n\nfunction createStyleElement() {\n var styleElement = document.createElement('style');\n styleElement.setAttribute('type', 'text/css');\n return styleElement;\n}\n\nmodule.exports = insertCss;\nmodule.exports.insertCss = insertCss;\n\n},{}],38:[function(_dereq_,module,exports){\n/*! npm.im/intervalometer */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction intervalometer(cb, request, cancel, requestParameter) {\n\tvar requestId;\n\tvar previousLoopTime;\n\tfunction loop(now) {\n\t\t// must be requested before cb() because that might call .stop()\n\t\trequestId = request(loop, requestParameter);\n\n\t\t// called with \"ms since last call\". 0 on start()\n\t\tcb(now - (previousLoopTime || now));\n\n\t\tpreviousLoopTime = now;\n\t}\n\treturn {\n\t\tstart: function start() {\n\t\t\tif (!requestId) { // prevent double starts\n\t\t\t\tloop(0);\n\t\t\t}\n\t\t},\n\t\tstop: function stop() {\n\t\t\tcancel(requestId);\n\t\t\trequestId = null;\n\t\t\tpreviousLoopTime = 0;\n\t\t}\n\t};\n}\n\nfunction frameIntervalometer(cb) {\n\treturn intervalometer(cb, requestAnimationFrame, cancelAnimationFrame);\n}\n\nfunction timerIntervalometer(cb, delay) {\n\treturn intervalometer(cb, setTimeout, clearTimeout, delay);\n}\n\nexports.intervalometer = intervalometer;\nexports.frameIntervalometer = frameIntervalometer;\nexports.timerIntervalometer = timerIntervalometer;\n},{}],39:[function(_dereq_,module,exports){\n/*! npm.im/iphone-inline-video 2.2.2 */\n'use strict';\n\nvar intervalometer = _dereq_('intervalometer');\n\nfunction preventEvent(element, eventName, test) {\n\tfunction handler(e) {\n\t\tif (!test || test(element, eventName)) {\n\t\t\te.stopImmediatePropagation();\n\t\t\t// // console.log(eventName, 'prevented on', element);\n\t\t}\n\t}\n\telement.addEventListener(eventName, handler);\n\n\t// Return handler to allow to disable the prevention. Usage:\n\t// const preventionHandler = preventEvent(el, 'click');\n\t// el.removeEventHandler('click', preventionHandler);\n\treturn handler;\n}\n\nfunction proxyProperty(object, propertyName, sourceObject, copyFirst) {\n\tfunction get() {\n\t\treturn sourceObject[propertyName];\n\t}\n\tfunction set(value) {\n\t\tsourceObject[propertyName] = value;\n\t}\n\n\tif (copyFirst) {\n\t\tset(object[propertyName]);\n\t}\n\n\tObject.defineProperty(object, propertyName, {get: get, set: set});\n}\n\nfunction proxyEvent(object, eventName, sourceObject) {\n\tsourceObject.addEventListener(eventName, function () { return object.dispatchEvent(new Event(eventName)); });\n}\n\nfunction dispatchEventAsync(element, type) {\n\tPromise.resolve().then(function () {\n\t\telement.dispatchEvent(new Event(type));\n\t});\n}\n\nvar iOS8or9 = typeof document === 'object' && 'object-fit' in document.head.style && !matchMedia('(-webkit-video-playable-inline)').matches;\n\nvar IIV = 'bfred-it:iphone-inline-video';\nvar IIVEvent = 'bfred-it:iphone-inline-video:event';\nvar IIVPlay = 'bfred-it:iphone-inline-video:nativeplay';\nvar IIVPause = 'bfred-it:iphone-inline-video:nativepause';\n\n/**\n * UTILS\n */\n\nfunction getAudioFromVideo(video) {\n\tvar audio = new Audio();\n\tproxyEvent(video, 'play', audio);\n\tproxyEvent(video, 'playing', audio);\n\tproxyEvent(video, 'pause', audio);\n\taudio.crossOrigin = video.crossOrigin;\n\n\t// 'data:' causes audio.networkState > 0\n\t// which then allows to keep