nikkatalnikov/apeiron

View on GitHub
dist/apeiron.min.js.map

Summary

Maintainability
Test Coverage
{
  "version": 3,
  "sources": [
    "node_modules/browser-pack/_prelude.js",
    "consts.js",
    "node_modules/axios/index.js",
    "node_modules/axios/lib/adapters/xhr.js",
    "node_modules/axios/lib/axios.js",
    "node_modules/axios/lib/cancel/Cancel.js",
    "node_modules/axios/lib/cancel/CancelToken.js",
    "node_modules/axios/lib/cancel/isCancel.js",
    "node_modules/axios/lib/core/Axios.js",
    "node_modules/axios/lib/core/InterceptorManager.js",
    "node_modules/axios/lib/core/createError.js",
    "node_modules/axios/lib/core/dispatchRequest.js",
    "node_modules/axios/lib/core/enhanceError.js",
    "node_modules/axios/lib/core/settle.js",
    "node_modules/axios/lib/core/transformData.js",
    "node_modules/axios/lib/defaults.js",
    "node_modules/axios/lib/helpers/bind.js",
    "node_modules/axios/lib/helpers/btoa.js",
    "node_modules/axios/lib/helpers/buildURL.js",
    "node_modules/axios/lib/helpers/combineURLs.js",
    "node_modules/axios/lib/helpers/cookies.js",
    "node_modules/axios/lib/helpers/isAbsoluteURL.js",
    "node_modules/axios/lib/helpers/isURLSameOrigin.js",
    "node_modules/axios/lib/helpers/normalizeHeaderName.js",
    "node_modules/axios/lib/helpers/parseHeaders.js",
    "node_modules/axios/lib/helpers/spread.js",
    "node_modules/axios/lib/utils.js",
    "node_modules/process/browser.js",
    "node_modules/rxjs/AsyncSubject.js",
    "node_modules/rxjs/BehaviorSubject.js",
    "node_modules/rxjs/InnerSubscriber.js",
    "node_modules/rxjs/Notification.js",
    "node_modules/rxjs/Observable.js",
    "node_modules/rxjs/Observer.js",
    "node_modules/rxjs/OuterSubscriber.js",
    "node_modules/rxjs/ReplaySubject.js",
    "node_modules/rxjs/Rx.js",
    "node_modules/rxjs/Scheduler.js",
    "node_modules/rxjs/Subject.js",
    "node_modules/rxjs/SubjectSubscription.js",
    "node_modules/rxjs/Subscriber.js",
    "node_modules/rxjs/Subscription.js",
    "node_modules/rxjs/add/observable/bindCallback.js",
    "node_modules/rxjs/add/observable/bindNodeCallback.js",
    "node_modules/rxjs/add/observable/combineLatest.js",
    "node_modules/rxjs/add/observable/concat.js",
    "node_modules/rxjs/add/observable/defer.js",
    "node_modules/rxjs/add/observable/dom/ajax.js",
    "node_modules/rxjs/add/observable/dom/webSocket.js",
    "node_modules/rxjs/add/observable/empty.js",
    "node_modules/rxjs/add/observable/forkJoin.js",
    "node_modules/rxjs/add/observable/from.js",
    "node_modules/rxjs/add/observable/fromEvent.js",
    "node_modules/rxjs/add/observable/fromEventPattern.js",
    "node_modules/rxjs/add/observable/fromPromise.js",
    "node_modules/rxjs/add/observable/generate.js",
    "node_modules/rxjs/add/observable/if.js",
    "node_modules/rxjs/add/observable/interval.js",
    "node_modules/rxjs/add/observable/merge.js",
    "node_modules/rxjs/add/observable/never.js",
    "node_modules/rxjs/add/observable/of.js",
    "node_modules/rxjs/add/observable/onErrorResumeNext.js",
    "node_modules/rxjs/add/observable/pairs.js",
    "node_modules/rxjs/add/observable/race.js",
    "node_modules/rxjs/add/observable/range.js",
    "node_modules/rxjs/add/observable/throw.js",
    "node_modules/rxjs/add/observable/timer.js",
    "node_modules/rxjs/add/observable/using.js",
    "node_modules/rxjs/add/observable/zip.js",
    "node_modules/rxjs/add/operator/audit.js",
    "node_modules/rxjs/add/operator/auditTime.js",
    "node_modules/rxjs/add/operator/buffer.js",
    "node_modules/rxjs/add/operator/bufferCount.js",
    "node_modules/rxjs/add/operator/bufferTime.js",
    "node_modules/rxjs/add/operator/bufferToggle.js",
    "node_modules/rxjs/add/operator/bufferWhen.js",
    "node_modules/rxjs/add/operator/catch.js",
    "node_modules/rxjs/add/operator/combineAll.js",
    "node_modules/rxjs/add/operator/combineLatest.js",
    "node_modules/rxjs/add/operator/concat.js",
    "node_modules/rxjs/add/operator/concatAll.js",
    "node_modules/rxjs/add/operator/concatMap.js",
    "node_modules/rxjs/add/operator/concatMapTo.js",
    "node_modules/rxjs/add/operator/count.js",
    "node_modules/rxjs/add/operator/debounce.js",
    "node_modules/rxjs/add/operator/debounceTime.js",
    "node_modules/rxjs/add/operator/defaultIfEmpty.js",
    "node_modules/rxjs/add/operator/delay.js",
    "node_modules/rxjs/add/operator/delayWhen.js",
    "node_modules/rxjs/add/operator/dematerialize.js",
    "node_modules/rxjs/add/operator/distinct.js",
    "node_modules/rxjs/add/operator/distinctUntilChanged.js",
    "node_modules/rxjs/add/operator/distinctUntilKeyChanged.js",
    "node_modules/rxjs/add/operator/do.js",
    "node_modules/rxjs/add/operator/elementAt.js",
    "node_modules/rxjs/add/operator/every.js",
    "node_modules/rxjs/add/operator/exhaust.js",
    "node_modules/rxjs/add/operator/exhaustMap.js",
    "node_modules/rxjs/add/operator/expand.js",
    "node_modules/rxjs/add/operator/filter.js",
    "node_modules/rxjs/add/operator/finally.js",
    "node_modules/rxjs/add/operator/find.js",
    "node_modules/rxjs/add/operator/findIndex.js",
    "node_modules/rxjs/add/operator/first.js",
    "node_modules/rxjs/add/operator/groupBy.js",
    "node_modules/rxjs/add/operator/ignoreElements.js",
    "node_modules/rxjs/add/operator/isEmpty.js",
    "node_modules/rxjs/add/operator/last.js",
    "node_modules/rxjs/add/operator/let.js",
    "node_modules/rxjs/add/operator/map.js",
    "node_modules/rxjs/add/operator/mapTo.js",
    "node_modules/rxjs/add/operator/materialize.js",
    "node_modules/rxjs/add/operator/max.js",
    "node_modules/rxjs/add/operator/merge.js",
    "node_modules/rxjs/add/operator/mergeAll.js",
    "node_modules/rxjs/add/operator/mergeMap.js",
    "node_modules/rxjs/add/operator/mergeMapTo.js",
    "node_modules/rxjs/add/operator/mergeScan.js",
    "node_modules/rxjs/add/operator/min.js",
    "node_modules/rxjs/add/operator/multicast.js",
    "node_modules/rxjs/add/operator/observeOn.js",
    "node_modules/rxjs/add/operator/onErrorResumeNext.js",
    "node_modules/rxjs/add/operator/pairwise.js",
    "node_modules/rxjs/add/operator/partition.js",
    "node_modules/rxjs/add/operator/pluck.js",
    "node_modules/rxjs/add/operator/publish.js",
    "node_modules/rxjs/add/operator/publishBehavior.js",
    "node_modules/rxjs/add/operator/publishLast.js",
    "node_modules/rxjs/add/operator/publishReplay.js",
    "node_modules/rxjs/add/operator/race.js",
    "node_modules/rxjs/add/operator/reduce.js",
    "node_modules/rxjs/add/operator/repeat.js",
    "node_modules/rxjs/add/operator/repeatWhen.js",
    "node_modules/rxjs/add/operator/retry.js",
    "node_modules/rxjs/add/operator/retryWhen.js",
    "node_modules/rxjs/add/operator/sample.js",
    "node_modules/rxjs/add/operator/sampleTime.js",
    "node_modules/rxjs/add/operator/scan.js",
    "node_modules/rxjs/add/operator/sequenceEqual.js",
    "node_modules/rxjs/add/operator/share.js",
    "node_modules/rxjs/add/operator/single.js",
    "node_modules/rxjs/add/operator/skip.js",
    "node_modules/rxjs/add/operator/skipUntil.js",
    "node_modules/rxjs/add/operator/skipWhile.js",
    "node_modules/rxjs/add/operator/startWith.js",
    "node_modules/rxjs/add/operator/subscribeOn.js",
    "node_modules/rxjs/add/operator/switch.js",
    "node_modules/rxjs/add/operator/switchMap.js",
    "node_modules/rxjs/add/operator/switchMapTo.js",
    "node_modules/rxjs/add/operator/take.js",
    "node_modules/rxjs/add/operator/takeLast.js",
    "node_modules/rxjs/add/operator/takeUntil.js",
    "node_modules/rxjs/add/operator/takeWhile.js",
    "node_modules/rxjs/add/operator/throttle.js",
    "node_modules/rxjs/add/operator/throttleTime.js",
    "node_modules/rxjs/add/operator/timeInterval.js",
    "node_modules/rxjs/add/operator/timeout.js",
    "node_modules/rxjs/add/operator/timeoutWith.js",
    "node_modules/rxjs/add/operator/timestamp.js",
    "node_modules/rxjs/add/operator/toArray.js",
    "node_modules/rxjs/add/operator/toPromise.js",
    "node_modules/rxjs/add/operator/window.js",
    "node_modules/rxjs/add/operator/windowCount.js",
    "node_modules/rxjs/add/operator/windowTime.js",
    "node_modules/rxjs/add/operator/windowToggle.js",
    "node_modules/rxjs/add/operator/windowWhen.js",
    "node_modules/rxjs/add/operator/withLatestFrom.js",
    "node_modules/rxjs/add/operator/zip.js",
    "node_modules/rxjs/add/operator/zipAll.js",
    "node_modules/rxjs/observable/ArrayLikeObservable.js",
    "node_modules/rxjs/observable/ArrayObservable.js",
    "node_modules/rxjs/observable/BoundCallbackObservable.js",
    "node_modules/rxjs/observable/BoundNodeCallbackObservable.js",
    "node_modules/rxjs/observable/ConnectableObservable.js",
    "node_modules/rxjs/observable/DeferObservable.js",
    "node_modules/rxjs/observable/EmptyObservable.js",
    "node_modules/rxjs/observable/ErrorObservable.js",
    "node_modules/rxjs/observable/ForkJoinObservable.js",
    "node_modules/rxjs/observable/FromEventObservable.js",
    "node_modules/rxjs/observable/FromEventPatternObservable.js",
    "node_modules/rxjs/observable/FromObservable.js",
    "node_modules/rxjs/observable/GenerateObservable.js",
    "node_modules/rxjs/observable/IfObservable.js",
    "node_modules/rxjs/observable/IntervalObservable.js",
    "node_modules/rxjs/observable/IteratorObservable.js",
    "node_modules/rxjs/observable/NeverObservable.js",
    "node_modules/rxjs/observable/PairsObservable.js",
    "node_modules/rxjs/observable/PromiseObservable.js",
    "node_modules/rxjs/observable/RangeObservable.js",
    "node_modules/rxjs/observable/ScalarObservable.js",
    "node_modules/rxjs/observable/SubscribeOnObservable.js",
    "node_modules/rxjs/observable/TimerObservable.js",
    "node_modules/rxjs/observable/UsingObservable.js",
    "node_modules/rxjs/observable/bindCallback.js",
    "node_modules/rxjs/observable/bindNodeCallback.js",
    "node_modules/rxjs/observable/combineLatest.js",
    "node_modules/rxjs/observable/concat.js",
    "node_modules/rxjs/observable/defer.js",
    "node_modules/rxjs/observable/dom/AjaxObservable.js",
    "node_modules/rxjs/observable/dom/WebSocketSubject.js",
    "node_modules/rxjs/observable/dom/ajax.js",
    "node_modules/rxjs/observable/dom/webSocket.js",
    "node_modules/rxjs/observable/empty.js",
    "node_modules/rxjs/observable/forkJoin.js",
    "node_modules/rxjs/observable/from.js",
    "node_modules/rxjs/observable/fromEvent.js",
    "node_modules/rxjs/observable/fromEventPattern.js",
    "node_modules/rxjs/observable/fromPromise.js",
    "node_modules/rxjs/observable/if.js",
    "node_modules/rxjs/observable/interval.js",
    "node_modules/rxjs/observable/merge.js",
    "node_modules/rxjs/observable/never.js",
    "node_modules/rxjs/observable/of.js",
    "node_modules/rxjs/observable/pairs.js",
    "node_modules/rxjs/observable/range.js",
    "node_modules/rxjs/observable/throw.js",
    "node_modules/rxjs/observable/timer.js",
    "node_modules/rxjs/observable/using.js",
    "node_modules/rxjs/observable/zip.js",
    "node_modules/rxjs/operator/audit.js",
    "node_modules/rxjs/operator/auditTime.js",
    "node_modules/rxjs/operator/buffer.js",
    "node_modules/rxjs/operator/bufferCount.js",
    "node_modules/rxjs/operator/bufferTime.js",
    "node_modules/rxjs/operator/bufferToggle.js",
    "node_modules/rxjs/operator/bufferWhen.js",
    "node_modules/rxjs/operator/catch.js",
    "node_modules/rxjs/operator/combineAll.js",
    "node_modules/rxjs/operator/combineLatest.js",
    "node_modules/rxjs/operator/concat.js",
    "node_modules/rxjs/operator/concatAll.js",
    "node_modules/rxjs/operator/concatMap.js",
    "node_modules/rxjs/operator/concatMapTo.js",
    "node_modules/rxjs/operator/count.js",
    "node_modules/rxjs/operator/debounce.js",
    "node_modules/rxjs/operator/debounceTime.js",
    "node_modules/rxjs/operator/defaultIfEmpty.js",
    "node_modules/rxjs/operator/delay.js",
    "node_modules/rxjs/operator/delayWhen.js",
    "node_modules/rxjs/operator/dematerialize.js",
    "node_modules/rxjs/operator/distinct.js",
    "node_modules/rxjs/operator/distinctUntilChanged.js",
    "node_modules/rxjs/operator/distinctUntilKeyChanged.js",
    "node_modules/rxjs/operator/do.js",
    "node_modules/rxjs/operator/elementAt.js",
    "node_modules/rxjs/operator/every.js",
    "node_modules/rxjs/operator/exhaust.js",
    "node_modules/rxjs/operator/exhaustMap.js",
    "node_modules/rxjs/operator/expand.js",
    "node_modules/rxjs/operator/filter.js",
    "node_modules/rxjs/operator/finally.js",
    "node_modules/rxjs/operator/find.js",
    "node_modules/rxjs/operator/findIndex.js",
    "node_modules/rxjs/operator/first.js",
    "node_modules/rxjs/operator/groupBy.js",
    "node_modules/rxjs/operator/ignoreElements.js",
    "node_modules/rxjs/operator/isEmpty.js",
    "node_modules/rxjs/operator/last.js",
    "node_modules/rxjs/operator/let.js",
    "node_modules/rxjs/operator/map.js",
    "node_modules/rxjs/operator/mapTo.js",
    "node_modules/rxjs/operator/materialize.js",
    "node_modules/rxjs/operator/max.js",
    "node_modules/rxjs/operator/merge.js",
    "node_modules/rxjs/operator/mergeAll.js",
    "node_modules/rxjs/operator/mergeMap.js",
    "node_modules/rxjs/operator/mergeMapTo.js",
    "node_modules/rxjs/operator/mergeScan.js",
    "node_modules/rxjs/operator/min.js",
    "node_modules/rxjs/operator/multicast.js",
    "node_modules/rxjs/operator/observeOn.js",
    "node_modules/rxjs/operator/onErrorResumeNext.js",
    "node_modules/rxjs/operator/pairwise.js",
    "node_modules/rxjs/operator/partition.js",
    "node_modules/rxjs/operator/pluck.js",
    "node_modules/rxjs/operator/publish.js",
    "node_modules/rxjs/operator/publishBehavior.js",
    "node_modules/rxjs/operator/publishLast.js",
    "node_modules/rxjs/operator/publishReplay.js",
    "node_modules/rxjs/operator/race.js",
    "node_modules/rxjs/operator/reduce.js",
    "node_modules/rxjs/operator/repeat.js",
    "node_modules/rxjs/operator/repeatWhen.js",
    "node_modules/rxjs/operator/retry.js",
    "node_modules/rxjs/operator/retryWhen.js",
    "node_modules/rxjs/operator/sample.js",
    "node_modules/rxjs/operator/sampleTime.js",
    "node_modules/rxjs/operator/scan.js",
    "node_modules/rxjs/operator/sequenceEqual.js",
    "node_modules/rxjs/operator/share.js",
    "node_modules/rxjs/operator/single.js",
    "node_modules/rxjs/operator/skip.js",
    "node_modules/rxjs/operator/skipUntil.js",
    "node_modules/rxjs/operator/skipWhile.js",
    "node_modules/rxjs/operator/startWith.js",
    "node_modules/rxjs/operator/subscribeOn.js",
    "node_modules/rxjs/operator/switch.js",
    "node_modules/rxjs/operator/switchMap.js",
    "node_modules/rxjs/operator/switchMapTo.js",
    "node_modules/rxjs/operator/take.js",
    "node_modules/rxjs/operator/takeLast.js",
    "node_modules/rxjs/operator/takeUntil.js",
    "node_modules/rxjs/operator/takeWhile.js",
    "node_modules/rxjs/operator/throttle.js",
    "node_modules/rxjs/operator/throttleTime.js",
    "node_modules/rxjs/operator/timeInterval.js",
    "node_modules/rxjs/operator/timeout.js",
    "node_modules/rxjs/operator/timeoutWith.js",
    "node_modules/rxjs/operator/timestamp.js",
    "node_modules/rxjs/operator/toArray.js",
    "node_modules/rxjs/operator/toPromise.js",
    "node_modules/rxjs/operator/window.js",
    "node_modules/rxjs/operator/windowCount.js",
    "node_modules/rxjs/operator/windowTime.js",
    "node_modules/rxjs/operator/windowToggle.js",
    "node_modules/rxjs/operator/windowWhen.js",
    "node_modules/rxjs/operator/withLatestFrom.js",
    "node_modules/rxjs/operator/zip.js",
    "node_modules/rxjs/operator/zipAll.js",
    "node_modules/rxjs/scheduler/Action.js",
    "node_modules/rxjs/scheduler/AnimationFrameAction.js",
    "node_modules/rxjs/scheduler/AnimationFrameScheduler.js",
    "node_modules/rxjs/scheduler/AsapAction.js",
    "node_modules/rxjs/scheduler/AsapScheduler.js",
    "node_modules/rxjs/scheduler/AsyncAction.js",
    "node_modules/rxjs/scheduler/AsyncScheduler.js",
    "node_modules/rxjs/scheduler/QueueAction.js",
    "node_modules/rxjs/scheduler/QueueScheduler.js",
    "node_modules/rxjs/scheduler/VirtualTimeScheduler.js",
    "node_modules/rxjs/scheduler/animationFrame.js",
    "node_modules/rxjs/scheduler/asap.js",
    "node_modules/rxjs/scheduler/async.js",
    "node_modules/rxjs/scheduler/queue.js",
    "node_modules/rxjs/symbol/iterator.js",
    "node_modules/rxjs/symbol/observable.js",
    "node_modules/rxjs/symbol/rxSubscriber.js",
    "node_modules/rxjs/testing/ColdObservable.js",
    "node_modules/rxjs/testing/HotObservable.js",
    "node_modules/rxjs/testing/SubscriptionLog.js",
    "node_modules/rxjs/testing/SubscriptionLoggable.js",
    "node_modules/rxjs/testing/TestScheduler.js",
    "node_modules/rxjs/util/AnimationFrame.js",
    "node_modules/rxjs/util/ArgumentOutOfRangeError.js",
    "node_modules/rxjs/util/EmptyError.js",
    "node_modules/rxjs/util/FastMap.js",
    "node_modules/rxjs/util/Immediate.js",
    "node_modules/rxjs/util/Map.js",
    "node_modules/rxjs/util/MapPolyfill.js",
    "node_modules/rxjs/util/ObjectUnsubscribedError.js",
    "node_modules/rxjs/util/Set.js",
    "node_modules/rxjs/util/TimeoutError.js",
    "node_modules/rxjs/util/UnsubscriptionError.js",
    "node_modules/rxjs/util/applyMixins.js",
    "node_modules/rxjs/util/assign.js",
    "node_modules/rxjs/util/errorObject.js",
    "node_modules/rxjs/util/isArray.js",
    "node_modules/rxjs/util/isDate.js",
    "node_modules/rxjs/util/isFunction.js",
    "node_modules/rxjs/util/isNumeric.js",
    "node_modules/rxjs/util/isObject.js",
    "node_modules/rxjs/util/isPromise.js",
    "node_modules/rxjs/util/isScheduler.js",
    "node_modules/rxjs/util/noop.js",
    "node_modules/rxjs/util/not.js",
    "node_modules/rxjs/util/root.js",
    "node_modules/rxjs/util/subscribeToResult.js",
    "node_modules/rxjs/util/toSubscriber.js",
    "node_modules/rxjs/util/tryCatch.js",
    "streamAPI.js",
    "streamProviders.js"
  ],
  "names": [],
  "mappings": "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",
  "file": "generated.js",
  "sourceRoot": "",
  "sourcesContent": [
    "(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})",
    "export const STREAM_TYPE = {\n  HTTP: 'HTTP',\n  WS: 'WS',\n  SSE: 'SSE',\n  STRUCTURE: 'STRUCTURE',\n}\n",
    "module.exports = require('./lib/axios');",
    "'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    var requestData = config.data;\n    var requestHeaders = config.headers;\n\n    if (utils.isFormData(requestData)) {\n      delete requestHeaders['Content-Type']; // Let the browser set it\n    }\n\n    var request = new XMLHttpRequest();\n    var loadEvent = 'onreadystatechange';\n    var xDomain = false;\n\n    // For IE 8/9 CORS support\n    // Only supports POST and GET calls and doesn't returns the response headers.\n    // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n    if (process.env.NODE_ENV !== 'test' &&\n        typeof window !== 'undefined' &&\n        window.XDomainRequest && !('withCredentials' in request) &&\n        !isURLSameOrigin(config.url)) {\n      request = new window.XDomainRequest();\n      loadEvent = 'onload';\n      xDomain = true;\n      request.onprogress = function handleProgress() {};\n      request.ontimeout = function handleTimeout() {};\n    }\n\n    // HTTP basic authentication\n    if (config.auth) {\n      var username = config.auth.username || '';\n      var password = config.auth.password || '';\n      requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n    }\n\n    request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n    // Set the request timeout in MS\n    request.timeout = config.timeout;\n\n    // Listen for ready state\n    request[loadEvent] = function handleLoad() {\n      if (!request || (request.readyState !== 4 && !xDomain)) {\n        return;\n      }\n\n      // The request errored out and we didn't get a response, this will be\n      // handled by onerror instead\n      // With one exception: request that using file: protocol, most browsers\n      // will return status as 0 even though it's a successful request\n      if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n        return;\n      }\n\n      // Prepare the response\n      var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n      var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n      var response = {\n        data: responseData,\n        // IE sends 1223 instead of 204 (https://github.com/mzabriskie/axios/issues/201)\n        status: request.status === 1223 ? 204 : request.status,\n        statusText: request.status === 1223 ? 'No Content' : request.statusText,\n        headers: responseHeaders,\n        config: config,\n        request: request\n      };\n\n      settle(resolve, reject, response);\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(createError('Network Error', config));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED'));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Add xsrf header\n    // This is only done if running in a standard browser environment.\n    // Specifically not if we're in a web worker, or react-native.\n    if (utils.isStandardBrowserEnv()) {\n      var cookies = require('./../helpers/cookies');\n\n      // Add xsrf header\n      var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n          cookies.read(config.xsrfCookieName) :\n          undefined;\n\n      if (xsrfValue) {\n        requestHeaders[config.xsrfHeaderName] = xsrfValue;\n      }\n    }\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n        if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n          // Remove Content-Type if data is undefined\n          delete requestHeaders[key];\n        } else {\n          // Otherwise add header to the request\n          request.setRequestHeader(key, val);\n        }\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (config.withCredentials) {\n      request.withCredentials = true;\n    }\n\n    // Add responseType to request if needed\n    if (config.responseType) {\n      try {\n        request.responseType = config.responseType;\n      } catch (e) {\n        if (request.responseType !== 'json') {\n          throw e;\n        }\n      }\n    }\n\n    // Handle progress if needed\n    if (typeof config.onDownloadProgress === 'function') {\n      request.addEventListener('progress', config.onDownloadProgress);\n    }\n\n    // Not all browsers support upload events\n    if (typeof config.onUploadProgress === 'function' && request.upload) {\n      request.upload.addEventListener('progress', config.onUploadProgress);\n    }\n\n    if (config.cancelToken) {\n      // Handle cancellation\n      config.cancelToken.promise.then(function onCanceled(cancel) {\n        if (!request) {\n          return;\n        }\n\n        request.abort();\n        reject(cancel);\n        // Clean up request\n        request = null;\n      });\n    }\n\n    if (requestData === undefined) {\n      requestData = null;\n    }\n\n    // Send the request\n    request.send(requestData);\n  });\n};\n",
    "'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  var context = new Axios(defaultConfig);\n  var instance = bind(Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, Axios.prototype, context);\n\n  // Copy context to instance\n  utils.extend(instance, context);\n\n  return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n  return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n",
    "'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n  this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n  return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n",
    "'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n  if (typeof executor !== 'function') {\n    throw new TypeError('executor must be a function.');\n  }\n\n  var resolvePromise;\n  this.promise = new Promise(function promiseExecutor(resolve) {\n    resolvePromise = resolve;\n  });\n\n  var token = this;\n  executor(function cancel(message) {\n    if (token.reason) {\n      // Cancellation has already been requested\n      return;\n    }\n\n    token.reason = new Cancel(message);\n    resolvePromise(token.reason);\n  });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n  if (this.reason) {\n    throw this.reason;\n  }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n  var cancel;\n  var token = new CancelToken(function executor(c) {\n    cancel = c;\n  });\n  return {\n    token: token,\n    cancel: cancel\n  };\n};\n\nmodule.exports = CancelToken;\n",
    "'use strict';\n\nmodule.exports = function isCancel(value) {\n  return !!(value && value.__CANCEL__);\n};\n",
    "'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n  this.defaults = instanceConfig;\n  this.interceptors = {\n    request: new InterceptorManager(),\n    response: new InterceptorManager()\n  };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n  /*eslint no-param-reassign:0*/\n  // Allow for axios('example/url'[, config]) a la fetch API\n  if (typeof config === 'string') {\n    config = utils.merge({\n      url: arguments[0]\n    }, arguments[1]);\n  }\n\n  config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\n\n  // Support baseURL config\n  if (config.baseURL && !isAbsoluteURL(config.url)) {\n    config.url = combineURLs(config.baseURL, config.url);\n  }\n\n  // Hook up interceptors middleware\n  var chain = [dispatchRequest, undefined];\n  var promise = Promise.resolve(config);\n\n  this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n    chain.unshift(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n    chain.push(interceptor.fulfilled, interceptor.rejected);\n  });\n\n  while (chain.length) {\n    promise = promise.then(chain.shift(), chain.shift());\n  }\n\n  return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(utils.merge(config || {}, {\n      method: method,\n      url: url\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, data, config) {\n    return this.request(utils.merge(config || {}, {\n      method: method,\n      url: url,\n      data: data\n    }));\n  };\n});\n\nmodule.exports = Axios;\n",
    "'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n  this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n  this.handlers.push({\n    fulfilled: fulfilled,\n    rejected: rejected\n  });\n  return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n  if (this.handlers[id]) {\n    this.handlers[id] = null;\n  }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n  utils.forEach(this.handlers, function forEachHandler(h) {\n    if (h !== null) {\n      fn(h);\n    }\n  });\n};\n\nmodule.exports = InterceptorManager;\n",
    "'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, response) {\n  var error = new Error(message);\n  return enhanceError(error, config, code, response);\n};\n",
    "'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  // Ensure headers exist\n  config.headers = config.headers || {};\n\n  // Transform request data\n  config.data = transformData(\n    config.data,\n    config.headers,\n    config.transformRequest\n  );\n\n  // Flatten headers\n  config.headers = utils.merge(\n    config.headers.common || {},\n    config.headers[config.method] || {},\n    config.headers || {}\n  );\n\n  utils.forEach(\n    ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n    function cleanHeaderConfig(method) {\n      delete config.headers[method];\n    }\n  );\n\n  var adapter = config.adapter || defaults.adapter;\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData(\n      response.data,\n      response.headers,\n      config.transformResponse\n    );\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData(\n          reason.response.data,\n          reason.response.headers,\n          config.transformResponse\n        );\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n};\n",
    "'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n @ @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, response) {\n  error.config = config;\n  if (code) {\n    error.code = code;\n  }\n  error.response = response;\n  return error;\n};\n",
    "'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n  var validateStatus = response.config.validateStatus;\n  // Note: status is not exposed by XDomainRequest\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(createError(\n      'Request failed with status code ' + response.status,\n      response.config,\n      null,\n      response\n    ));\n  }\n};\n",
    "'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n  /*eslint no-param-reassign:0*/\n  utils.forEach(fns, function transform(fn) {\n    data = fn(data, headers);\n  });\n\n  return data;\n};\n",
    "'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar PROTECTION_PREFIX = /^\\)\\]\\}',?\\n/;\nvar DEFAULT_CONTENT_TYPE = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n  if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n    headers['Content-Type'] = value;\n  }\n}\n\nfunction getDefaultAdapter() {\n  var adapter;\n  if (typeof XMLHttpRequest !== 'undefined') {\n    // For browsers use XHR adapter\n    adapter = require('./adapters/xhr');\n  } else if (typeof process !== 'undefined') {\n    // For node use HTTP adapter\n    adapter = require('./adapters/http');\n  }\n  return adapter;\n}\n\nvar defaults = {\n  adapter: getDefaultAdapter(),\n\n  transformRequest: [function transformRequest(data, headers) {\n    normalizeHeaderName(headers, 'Content-Type');\n    if (utils.isFormData(data) ||\n      utils.isArrayBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n      return data.toString();\n    }\n    if (utils.isObject(data)) {\n      setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n      return JSON.stringify(data);\n    }\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    /*eslint no-param-reassign:0*/\n    if (typeof data === 'string') {\n      data = data.replace(PROTECTION_PREFIX, '');\n      try {\n        data = JSON.parse(data);\n      } catch (e) { /* Ignore */ }\n    }\n    return data;\n  }],\n\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  }\n};\n\ndefaults.headers = {\n  common: {\n    'Accept': 'application/json, text/plain, */*'\n  }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMehtodNoData(method) {\n  defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n",
    "'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n  return function wrap() {\n    var args = new Array(arguments.length);\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i];\n    }\n    return fn.apply(thisArg, args);\n  };\n};\n",
    "'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n  this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n  var str = String(input);\n  var output = '';\n  for (\n    // initialize result and counter\n    var block, charCode, idx = 0, map = chars;\n    // if the next str index does not exist:\n    //   change the mapping table to \"=\"\n    //   check if d has no fractional digits\n    str.charAt(idx | 0) || (map = '=', idx % 1);\n    // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n    output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n  ) {\n    charCode = str.charCodeAt(idx += 3 / 4);\n    if (charCode > 0xFF) {\n      throw new E();\n    }\n    block = block << 8 | charCode;\n  }\n  return output;\n}\n\nmodule.exports = btoa;\n",
    "'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n  return encodeURIComponent(val).\n    replace(/%40/gi, '@').\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n\n  var serializedParams;\n  if (paramsSerializer) {\n    serializedParams = paramsSerializer(params);\n  } else if (utils.isURLSearchParams(params)) {\n    serializedParams = params.toString();\n  } else {\n    var parts = [];\n\n    utils.forEach(params, function serialize(val, key) {\n      if (val === null || typeof val === 'undefined') {\n        return;\n      }\n\n      if (utils.isArray(val)) {\n        key = key + '[]';\n      }\n\n      if (!utils.isArray(val)) {\n        val = [val];\n      }\n\n      utils.forEach(val, function parseValue(v) {\n        if (utils.isDate(v)) {\n          v = v.toISOString();\n        } else if (utils.isObject(v)) {\n          v = JSON.stringify(v);\n        }\n        parts.push(encode(key) + '=' + encode(v));\n      });\n    });\n\n    serializedParams = parts.join('&');\n  }\n\n  if (serializedParams) {\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n};\n",
    "'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n  return baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '');\n};\n",
    "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs support document.cookie\n  (function standardBrowserEnv() {\n    return {\n      write: function write(name, value, expires, path, domain, secure) {\n        var cookie = [];\n        cookie.push(name + '=' + encodeURIComponent(value));\n\n        if (utils.isNumber(expires)) {\n          cookie.push('expires=' + new Date(expires).toGMTString());\n        }\n\n        if (utils.isString(path)) {\n          cookie.push('path=' + path);\n        }\n\n        if (utils.isString(domain)) {\n          cookie.push('domain=' + domain);\n        }\n\n        if (secure === true) {\n          cookie.push('secure');\n        }\n\n        document.cookie = cookie.join('; ');\n      },\n\n      read: function read(name) {\n        var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n        return (match ? decodeURIComponent(match[3]) : null);\n      },\n\n      remove: function remove(name) {\n        this.write(name, '', Date.now() - 86400000);\n      }\n    };\n  })() :\n\n  // Non standard browser env (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return {\n      write: function write() {},\n      read: function read() { return null; },\n      remove: function remove() {}\n    };\n  })()\n);\n",
    "'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n",
    "'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n  utils.isStandardBrowserEnv() ?\n\n  // Standard browser envs have full support of the APIs needed to test\n  // whether the request URL is of the same origin as current location.\n  (function standardBrowserEnv() {\n    var msie = /(msie|trident)/i.test(navigator.userAgent);\n    var urlParsingNode = document.createElement('a');\n    var originURL;\n\n    /**\n    * Parse a URL to discover it's components\n    *\n    * @param {String} url The URL to be parsed\n    * @returns {Object}\n    */\n    function resolveURL(url) {\n      var href = url;\n\n      if (msie) {\n        // IE needs attribute set twice to normalize properties\n        urlParsingNode.setAttribute('href', href);\n        href = urlParsingNode.href;\n      }\n\n      urlParsingNode.setAttribute('href', href);\n\n      // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n      return {\n        href: urlParsingNode.href,\n        protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n        host: urlParsingNode.host,\n        search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n        hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n        hostname: urlParsingNode.hostname,\n        port: urlParsingNode.port,\n        pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n                  urlParsingNode.pathname :\n                  '/' + urlParsingNode.pathname\n      };\n    }\n\n    originURL = resolveURL(window.location.href);\n\n    /**\n    * Determine if a URL shares the same origin as the current location\n    *\n    * @param {String} requestURL The URL to test\n    * @returns {boolean} True if URL shares the same origin, otherwise false\n    */\n    return function isURLSameOrigin(requestURL) {\n      var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n      return (parsed.protocol === originURL.protocol &&\n            parsed.host === originURL.host);\n    };\n  })() :\n\n  // Non standard browser envs (web workers, react-native) lack needed support.\n  (function nonStandardBrowserEnv() {\n    return function isURLSameOrigin() {\n      return true;\n    };\n  })()\n);\n",
    "'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n  utils.forEach(headers, function processHeader(value, name) {\n    if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n      headers[normalizedName] = value;\n      delete headers[name];\n    }\n  });\n};\n",
    "'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n  var parsed = {};\n  var key;\n  var val;\n  var i;\n\n  if (!headers) { return parsed; }\n\n  utils.forEach(headers.split('\\n'), function parser(line) {\n    i = line.indexOf(':');\n    key = utils.trim(line.substr(0, i)).toLowerCase();\n    val = utils.trim(line.substr(i + 1));\n\n    if (key) {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n\n  return parsed;\n};\n",
    "'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n};\n",
    "'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n  return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n  return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n  return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  var result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n  return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n  return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n  return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n  return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n  return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n  return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n  return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n  return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n  return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n  return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n  return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  typeof document.createElement -> undefined\n */\nfunction isStandardBrowserEnv() {\n  return (\n    typeof window !== 'undefined' &&\n    typeof document !== 'undefined' &&\n    typeof document.createElement === 'function'\n  );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object' && !isArray(obj)) {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (var i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    for (var key in obj) {\n      if (Object.prototype.hasOwnProperty.call(obj, key)) {\n        fn.call(null, obj[key], key, obj);\n      }\n    }\n  }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  var result = {};\n  function assignValue(val, key) {\n    if (typeof result[key] === 'object' && typeof val === 'object') {\n      result[key] = merge(result[key], val);\n    } else {\n      result[key] = val;\n    }\n  }\n\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n  forEach(b, function assignValue(val, key) {\n    if (thisArg && typeof val === 'function') {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  });\n  return a;\n}\n\nmodule.exports = {\n  isArray: isArray,\n  isArrayBuffer: isArrayBuffer,\n  isFormData: isFormData,\n  isArrayBufferView: isArrayBufferView,\n  isString: isString,\n  isNumber: isNumber,\n  isObject: isObject,\n  isUndefined: isUndefined,\n  isDate: isDate,\n  isFile: isFile,\n  isBlob: isBlob,\n  isFunction: isFunction,\n  isStream: isStream,\n  isURLSearchParams: isURLSearchParams,\n  isStandardBrowserEnv: isStandardBrowserEnv,\n  forEach: forEach,\n  merge: merge,\n  extend: extend,\n  trim: trim\n};\n",
    "// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('./Subject');\nvar Subscription_1 = require('./Subscription');\n/**\n * @class AsyncSubject<T>\n */\nvar AsyncSubject = (function (_super) {\n    __extends(AsyncSubject, _super);\n    function AsyncSubject() {\n        _super.apply(this, arguments);\n        this.value = null;\n        this.hasNext = false;\n        this.hasCompleted = false;\n    }\n    AsyncSubject.prototype._subscribe = function (subscriber) {\n        if (this.hasCompleted && this.hasNext) {\n            subscriber.next(this.value);\n            subscriber.complete();\n            return Subscription_1.Subscription.EMPTY;\n        }\n        else if (this.hasError) {\n            subscriber.error(this.thrownError);\n            return Subscription_1.Subscription.EMPTY;\n        }\n        return _super.prototype._subscribe.call(this, subscriber);\n    };\n    AsyncSubject.prototype.next = function (value) {\n        if (!this.hasCompleted) {\n            this.value = value;\n            this.hasNext = true;\n        }\n    };\n    AsyncSubject.prototype.complete = function () {\n        this.hasCompleted = true;\n        if (this.hasNext) {\n            _super.prototype.next.call(this, this.value);\n        }\n        _super.prototype.complete.call(this);\n    };\n    return AsyncSubject;\n}(Subject_1.Subject));\nexports.AsyncSubject = AsyncSubject;\n//# sourceMappingURL=AsyncSubject.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('./Subject');\nvar ObjectUnsubscribedError_1 = require('./util/ObjectUnsubscribedError');\n/**\n * @class BehaviorSubject<T>\n */\nvar BehaviorSubject = (function (_super) {\n    __extends(BehaviorSubject, _super);\n    function BehaviorSubject(_value) {\n        _super.call(this);\n        this._value = _value;\n    }\n    Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n        get: function () {\n            return this.getValue();\n        },\n        enumerable: true,\n        configurable: true\n    });\n    BehaviorSubject.prototype._subscribe = function (subscriber) {\n        var subscription = _super.prototype._subscribe.call(this, subscriber);\n        if (subscription && !subscription.closed) {\n            subscriber.next(this._value);\n        }\n        return subscription;\n    };\n    BehaviorSubject.prototype.getValue = function () {\n        if (this.hasError) {\n            throw this.thrownError;\n        }\n        else if (this.closed) {\n            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n        }\n        else {\n            return this._value;\n        }\n    };\n    BehaviorSubject.prototype.next = function (value) {\n        _super.prototype.next.call(this, this._value = value);\n    };\n    return BehaviorSubject;\n}(Subject_1.Subject));\nexports.BehaviorSubject = BehaviorSubject;\n//# sourceMappingURL=BehaviorSubject.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('./Subscriber');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar InnerSubscriber = (function (_super) {\n    __extends(InnerSubscriber, _super);\n    function InnerSubscriber(parent, outerValue, outerIndex) {\n        _super.call(this);\n        this.parent = parent;\n        this.outerValue = outerValue;\n        this.outerIndex = outerIndex;\n        this.index = 0;\n    }\n    InnerSubscriber.prototype._next = function (value) {\n        this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n    };\n    InnerSubscriber.prototype._error = function (error) {\n        this.parent.notifyError(error, this);\n        this.unsubscribe();\n    };\n    InnerSubscriber.prototype._complete = function () {\n        this.parent.notifyComplete(this);\n        this.unsubscribe();\n    };\n    return InnerSubscriber;\n}(Subscriber_1.Subscriber));\nexports.InnerSubscriber = InnerSubscriber;\n//# sourceMappingURL=InnerSubscriber.js.map",
    "\"use strict\";\nvar Observable_1 = require('./Observable');\n/**\n * Represents a push-based event or value that an {@link Observable} can emit.\n * This class is particularly useful for operators that manage notifications,\n * like {@link materialize}, {@link dematerialize}, {@link observeOn}, and\n * others. Besides wrapping the actual delivered value, it also annotates it\n * with metadata of, for instance, what type of push message it is (`next`,\n * `error`, or `complete`).\n *\n * @see {@link materialize}\n * @see {@link dematerialize}\n * @see {@link observeOn}\n *\n * @class Notification<T>\n */\nvar Notification = (function () {\n    function Notification(kind, value, error) {\n        this.kind = kind;\n        this.value = value;\n        this.error = error;\n        this.hasValue = kind === 'N';\n    }\n    /**\n     * Delivers to the given `observer` the value wrapped by this Notification.\n     * @param {Observer} observer\n     * @return\n     */\n    Notification.prototype.observe = function (observer) {\n        switch (this.kind) {\n            case 'N':\n                return observer.next && observer.next(this.value);\n            case 'E':\n                return observer.error && observer.error(this.error);\n            case 'C':\n                return observer.complete && observer.complete();\n        }\n    };\n    /**\n     * Given some {@link Observer} callbacks, deliver the value represented by the\n     * current Notification to the correctly corresponding callback.\n     * @param {function(value: T): void} next An Observer `next` callback.\n     * @param {function(err: any): void} [error] An Observer `error` callback.\n     * @param {function(): void} [complete] An Observer `complete` callback.\n     * @return {any}\n     */\n    Notification.prototype.do = function (next, error, complete) {\n        var kind = this.kind;\n        switch (kind) {\n            case 'N':\n                return next && next(this.value);\n            case 'E':\n                return error && error(this.error);\n            case 'C':\n                return complete && complete();\n        }\n    };\n    /**\n     * Takes an Observer or its individual callback functions, and calls `observe`\n     * or `do` methods accordingly.\n     * @param {Observer|function(value: T): void} nextOrObserver An Observer or\n     * the `next` callback.\n     * @param {function(err: any): void} [error] An Observer `error` callback.\n     * @param {function(): void} [complete] An Observer `complete` callback.\n     * @return {any}\n     */\n    Notification.prototype.accept = function (nextOrObserver, error, complete) {\n        if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n            return this.observe(nextOrObserver);\n        }\n        else {\n            return this.do(nextOrObserver, error, complete);\n        }\n    };\n    /**\n     * Returns a simple Observable that just delivers the notification represented\n     * by this Notification instance.\n     * @return {any}\n     */\n    Notification.prototype.toObservable = function () {\n        var kind = this.kind;\n        switch (kind) {\n            case 'N':\n                return Observable_1.Observable.of(this.value);\n            case 'E':\n                return Observable_1.Observable.throw(this.error);\n            case 'C':\n                return Observable_1.Observable.empty();\n        }\n        throw new Error('unexpected notification kind value');\n    };\n    /**\n     * A shortcut to create a Notification instance of the type `next` from a\n     * given value.\n     * @param {T} value The `next` value.\n     * @return {Notification<T>} The \"next\" Notification representing the\n     * argument.\n     */\n    Notification.createNext = function (value) {\n        if (typeof value !== 'undefined') {\n            return new Notification('N', value);\n        }\n        return this.undefinedValueNotification;\n    };\n    /**\n     * A shortcut to create a Notification instance of the type `error` from a\n     * given error.\n     * @param {any} [err] The `error` error.\n     * @return {Notification<T>} The \"error\" Notification representing the\n     * argument.\n     */\n    Notification.createError = function (err) {\n        return new Notification('E', undefined, err);\n    };\n    /**\n     * A shortcut to create a Notification instance of the type `complete`.\n     * @return {Notification<any>} The valueless \"complete\" Notification.\n     */\n    Notification.createComplete = function () {\n        return this.completeNotification;\n    };\n    Notification.completeNotification = new Notification('C');\n    Notification.undefinedValueNotification = new Notification('N', undefined);\n    return Notification;\n}());\nexports.Notification = Notification;\n//# sourceMappingURL=Notification.js.map",
    "\"use strict\";\nvar root_1 = require('./util/root');\nvar toSubscriber_1 = require('./util/toSubscriber');\nvar observable_1 = require('./symbol/observable');\n/**\n * A representation of any set of values over any amount of time. This the most basic building block\n * of RxJS.\n *\n * @class Observable<T>\n */\nvar Observable = (function () {\n    /**\n     * @constructor\n     * @param {Function} subscribe the function that is  called when the Observable is\n     * initially subscribed to. This function is given a Subscriber, to which new values\n     * can be `next`ed, or an `error` method can be called to raise an error, or\n     * `complete` can be called to notify of a successful completion.\n     */\n    function Observable(subscribe) {\n        this._isScalar = false;\n        if (subscribe) {\n            this._subscribe = subscribe;\n        }\n    }\n    /**\n     * Creates a new Observable, with this Observable as the source, and the passed\n     * operator defined as the new observable's operator.\n     * @method lift\n     * @param {Operator} operator the operator defining the operation to take on the observable\n     * @return {Observable} a new observable with the Operator applied\n     */\n    Observable.prototype.lift = function (operator) {\n        var observable = new Observable();\n        observable.source = this;\n        observable.operator = operator;\n        return observable;\n    };\n    Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n        var operator = this.operator;\n        var sink = toSubscriber_1.toSubscriber(observerOrNext, error, complete);\n        if (operator) {\n            operator.call(sink, this.source);\n        }\n        else {\n            sink.add(this._subscribe(sink));\n        }\n        if (sink.syncErrorThrowable) {\n            sink.syncErrorThrowable = false;\n            if (sink.syncErrorThrown) {\n                throw sink.syncErrorValue;\n            }\n        }\n        return sink;\n    };\n    /**\n     * @method forEach\n     * @param {Function} next a handler for each value emitted by the observable\n     * @param {PromiseConstructor} [PromiseCtor] a constructor function used to instantiate the Promise\n     * @return {Promise} a promise that either resolves on observable completion or\n     *  rejects with the handled error\n     */\n    Observable.prototype.forEach = function (next, PromiseCtor) {\n        var _this = this;\n        if (!PromiseCtor) {\n            if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {\n                PromiseCtor = root_1.root.Rx.config.Promise;\n            }\n            else if (root_1.root.Promise) {\n                PromiseCtor = root_1.root.Promise;\n            }\n        }\n        if (!PromiseCtor) {\n            throw new Error('no Promise impl found');\n        }\n        return new PromiseCtor(function (resolve, reject) {\n            var subscription = _this.subscribe(function (value) {\n                if (subscription) {\n                    // if there is a subscription, then we can surmise\n                    // the next handling is asynchronous. Any errors thrown\n                    // need to be rejected explicitly and unsubscribe must be\n                    // called manually\n                    try {\n                        next(value);\n                    }\n                    catch (err) {\n                        reject(err);\n                        subscription.unsubscribe();\n                    }\n                }\n                else {\n                    // if there is NO subscription, then we're getting a nexted\n                    // value synchronously during subscription. We can just call it.\n                    // If it errors, Observable's `subscribe` will ensure the\n                    // unsubscription logic is called, then synchronously rethrow the error.\n                    // After that, Promise will trap the error and send it\n                    // down the rejection path.\n                    next(value);\n                }\n            }, reject, resolve);\n        });\n    };\n    Observable.prototype._subscribe = function (subscriber) {\n        return this.source.subscribe(subscriber);\n    };\n    /**\n     * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n     * @method Symbol.observable\n     * @return {Observable} this instance of the observable\n     */\n    Observable.prototype[observable_1.$$observable] = function () {\n        return this;\n    };\n    // HACK: Since TypeScript inherits static properties too, we have to\n    // fight against TypeScript here so Subject can have a different static create signature\n    /**\n     * Creates a new cold Observable by calling the Observable constructor\n     * @static true\n     * @owner Observable\n     * @method create\n     * @param {Function} subscribe? the subscriber function to be passed to the Observable constructor\n     * @return {Observable} a new cold observable\n     */\n    Observable.create = function (subscribe) {\n        return new Observable(subscribe);\n    };\n    return Observable;\n}());\nexports.Observable = Observable;\n//# sourceMappingURL=Observable.js.map",
    "\"use strict\";\nexports.empty = {\n    closed: true,\n    next: function (value) { },\n    error: function (err) { throw err; },\n    complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('./Subscriber');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar OuterSubscriber = (function (_super) {\n    __extends(OuterSubscriber, _super);\n    function OuterSubscriber() {\n        _super.apply(this, arguments);\n    }\n    OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n        this.destination.error(error);\n    };\n    OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.destination.complete();\n    };\n    return OuterSubscriber;\n}(Subscriber_1.Subscriber));\nexports.OuterSubscriber = OuterSubscriber;\n//# sourceMappingURL=OuterSubscriber.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('./Subject');\nvar queue_1 = require('./scheduler/queue');\nvar Subscription_1 = require('./Subscription');\nvar observeOn_1 = require('./operator/observeOn');\nvar ObjectUnsubscribedError_1 = require('./util/ObjectUnsubscribedError');\nvar SubjectSubscription_1 = require('./SubjectSubscription');\n/**\n * @class ReplaySubject<T>\n */\nvar ReplaySubject = (function (_super) {\n    __extends(ReplaySubject, _super);\n    function ReplaySubject(bufferSize, windowTime, scheduler) {\n        if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n        if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n        _super.call(this);\n        this.scheduler = scheduler;\n        this._events = [];\n        this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n        this._windowTime = windowTime < 1 ? 1 : windowTime;\n    }\n    ReplaySubject.prototype.next = function (value) {\n        var now = this._getNow();\n        this._events.push(new ReplayEvent(now, value));\n        this._trimBufferThenGetEvents();\n        _super.prototype.next.call(this, value);\n    };\n    ReplaySubject.prototype._subscribe = function (subscriber) {\n        var _events = this._trimBufferThenGetEvents();\n        var scheduler = this.scheduler;\n        var subscription;\n        if (this.closed) {\n            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n        }\n        else if (this.hasError) {\n            subscription = Subscription_1.Subscription.EMPTY;\n        }\n        else if (this.isStopped) {\n            subscription = Subscription_1.Subscription.EMPTY;\n        }\n        else {\n            this.observers.push(subscriber);\n            subscription = new SubjectSubscription_1.SubjectSubscription(this, subscriber);\n        }\n        if (scheduler) {\n            subscriber.add(subscriber = new observeOn_1.ObserveOnSubscriber(subscriber, scheduler));\n        }\n        var len = _events.length;\n        for (var i = 0; i < len && !subscriber.closed; i++) {\n            subscriber.next(_events[i].value);\n        }\n        if (this.hasError) {\n            subscriber.error(this.thrownError);\n        }\n        else if (this.isStopped) {\n            subscriber.complete();\n        }\n        return subscription;\n    };\n    ReplaySubject.prototype._getNow = function () {\n        return (this.scheduler || queue_1.queue).now();\n    };\n    ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n        var now = this._getNow();\n        var _bufferSize = this._bufferSize;\n        var _windowTime = this._windowTime;\n        var _events = this._events;\n        var eventsCount = _events.length;\n        var spliceCount = 0;\n        // Trim events that fall out of the time window.\n        // Start at the front of the list. Break early once\n        // we encounter an event that falls within the window.\n        while (spliceCount < eventsCount) {\n            if ((now - _events[spliceCount].time) < _windowTime) {\n                break;\n            }\n            spliceCount++;\n        }\n        if (eventsCount > _bufferSize) {\n            spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n        }\n        if (spliceCount > 0) {\n            _events.splice(0, spliceCount);\n        }\n        return _events;\n    };\n    return ReplaySubject;\n}(Subject_1.Subject));\nexports.ReplaySubject = ReplaySubject;\nvar ReplayEvent = (function () {\n    function ReplayEvent(time, value) {\n        this.time = time;\n        this.value = value;\n    }\n    return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map",
    "\"use strict\";\n/* tslint:disable:no-unused-variable */\n// Subject imported before Observable to bypass circular dependency issue since\n// Subject extends Observable and Observable references Subject in it's\n// definition\nvar Subject_1 = require('./Subject');\nexports.Subject = Subject_1.Subject;\nexports.AnonymousSubject = Subject_1.AnonymousSubject;\n/* tslint:enable:no-unused-variable */\nvar Observable_1 = require('./Observable');\nexports.Observable = Observable_1.Observable;\n// statics\n/* tslint:disable:no-use-before-declare */\nrequire('./add/observable/bindCallback');\nrequire('./add/observable/bindNodeCallback');\nrequire('./add/observable/combineLatest');\nrequire('./add/observable/concat');\nrequire('./add/observable/defer');\nrequire('./add/observable/empty');\nrequire('./add/observable/forkJoin');\nrequire('./add/observable/from');\nrequire('./add/observable/fromEvent');\nrequire('./add/observable/fromEventPattern');\nrequire('./add/observable/fromPromise');\nrequire('./add/observable/generate');\nrequire('./add/observable/if');\nrequire('./add/observable/interval');\nrequire('./add/observable/merge');\nrequire('./add/observable/race');\nrequire('./add/observable/never');\nrequire('./add/observable/of');\nrequire('./add/observable/onErrorResumeNext');\nrequire('./add/observable/pairs');\nrequire('./add/observable/range');\nrequire('./add/observable/using');\nrequire('./add/observable/throw');\nrequire('./add/observable/timer');\nrequire('./add/observable/zip');\n//dom\nrequire('./add/observable/dom/ajax');\nrequire('./add/observable/dom/webSocket');\n//operators\nrequire('./add/operator/buffer');\nrequire('./add/operator/bufferCount');\nrequire('./add/operator/bufferTime');\nrequire('./add/operator/bufferToggle');\nrequire('./add/operator/bufferWhen');\nrequire('./add/operator/catch');\nrequire('./add/operator/combineAll');\nrequire('./add/operator/combineLatest');\nrequire('./add/operator/concat');\nrequire('./add/operator/concatAll');\nrequire('./add/operator/concatMap');\nrequire('./add/operator/concatMapTo');\nrequire('./add/operator/count');\nrequire('./add/operator/dematerialize');\nrequire('./add/operator/debounce');\nrequire('./add/operator/debounceTime');\nrequire('./add/operator/defaultIfEmpty');\nrequire('./add/operator/delay');\nrequire('./add/operator/delayWhen');\nrequire('./add/operator/distinct');\nrequire('./add/operator/distinctUntilChanged');\nrequire('./add/operator/distinctUntilKeyChanged');\nrequire('./add/operator/do');\nrequire('./add/operator/exhaust');\nrequire('./add/operator/exhaustMap');\nrequire('./add/operator/expand');\nrequire('./add/operator/elementAt');\nrequire('./add/operator/filter');\nrequire('./add/operator/finally');\nrequire('./add/operator/find');\nrequire('./add/operator/findIndex');\nrequire('./add/operator/first');\nrequire('./add/operator/groupBy');\nrequire('./add/operator/ignoreElements');\nrequire('./add/operator/isEmpty');\nrequire('./add/operator/audit');\nrequire('./add/operator/auditTime');\nrequire('./add/operator/last');\nrequire('./add/operator/let');\nrequire('./add/operator/every');\nrequire('./add/operator/map');\nrequire('./add/operator/mapTo');\nrequire('./add/operator/materialize');\nrequire('./add/operator/max');\nrequire('./add/operator/merge');\nrequire('./add/operator/mergeAll');\nrequire('./add/operator/mergeMap');\nrequire('./add/operator/mergeMapTo');\nrequire('./add/operator/mergeScan');\nrequire('./add/operator/min');\nrequire('./add/operator/multicast');\nrequire('./add/operator/observeOn');\nrequire('./add/operator/onErrorResumeNext');\nrequire('./add/operator/pairwise');\nrequire('./add/operator/partition');\nrequire('./add/operator/pluck');\nrequire('./add/operator/publish');\nrequire('./add/operator/publishBehavior');\nrequire('./add/operator/publishReplay');\nrequire('./add/operator/publishLast');\nrequire('./add/operator/race');\nrequire('./add/operator/reduce');\nrequire('./add/operator/repeat');\nrequire('./add/operator/repeatWhen');\nrequire('./add/operator/retry');\nrequire('./add/operator/retryWhen');\nrequire('./add/operator/sample');\nrequire('./add/operator/sampleTime');\nrequire('./add/operator/scan');\nrequire('./add/operator/sequenceEqual');\nrequire('./add/operator/share');\nrequire('./add/operator/single');\nrequire('./add/operator/skip');\nrequire('./add/operator/skipUntil');\nrequire('./add/operator/skipWhile');\nrequire('./add/operator/startWith');\nrequire('./add/operator/subscribeOn');\nrequire('./add/operator/switch');\nrequire('./add/operator/switchMap');\nrequire('./add/operator/switchMapTo');\nrequire('./add/operator/take');\nrequire('./add/operator/takeLast');\nrequire('./add/operator/takeUntil');\nrequire('./add/operator/takeWhile');\nrequire('./add/operator/throttle');\nrequire('./add/operator/throttleTime');\nrequire('./add/operator/timeInterval');\nrequire('./add/operator/timeout');\nrequire('./add/operator/timeoutWith');\nrequire('./add/operator/timestamp');\nrequire('./add/operator/toArray');\nrequire('./add/operator/toPromise');\nrequire('./add/operator/window');\nrequire('./add/operator/windowCount');\nrequire('./add/operator/windowTime');\nrequire('./add/operator/windowToggle');\nrequire('./add/operator/windowWhen');\nrequire('./add/operator/withLatestFrom');\nrequire('./add/operator/zip');\nrequire('./add/operator/zipAll');\n/* tslint:disable:no-unused-variable */\nvar Subscription_1 = require('./Subscription');\nexports.Subscription = Subscription_1.Subscription;\nvar Subscriber_1 = require('./Subscriber');\nexports.Subscriber = Subscriber_1.Subscriber;\nvar AsyncSubject_1 = require('./AsyncSubject');\nexports.AsyncSubject = AsyncSubject_1.AsyncSubject;\nvar ReplaySubject_1 = require('./ReplaySubject');\nexports.ReplaySubject = ReplaySubject_1.ReplaySubject;\nvar BehaviorSubject_1 = require('./BehaviorSubject');\nexports.BehaviorSubject = BehaviorSubject_1.BehaviorSubject;\nvar ConnectableObservable_1 = require('./observable/ConnectableObservable');\nexports.ConnectableObservable = ConnectableObservable_1.ConnectableObservable;\nvar Notification_1 = require('./Notification');\nexports.Notification = Notification_1.Notification;\nvar EmptyError_1 = require('./util/EmptyError');\nexports.EmptyError = EmptyError_1.EmptyError;\nvar ArgumentOutOfRangeError_1 = require('./util/ArgumentOutOfRangeError');\nexports.ArgumentOutOfRangeError = ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;\nvar ObjectUnsubscribedError_1 = require('./util/ObjectUnsubscribedError');\nexports.ObjectUnsubscribedError = ObjectUnsubscribedError_1.ObjectUnsubscribedError;\nvar TimeoutError_1 = require('./util/TimeoutError');\nexports.TimeoutError = TimeoutError_1.TimeoutError;\nvar UnsubscriptionError_1 = require('./util/UnsubscriptionError');\nexports.UnsubscriptionError = UnsubscriptionError_1.UnsubscriptionError;\nvar timeInterval_1 = require('./operator/timeInterval');\nexports.TimeInterval = timeInterval_1.TimeInterval;\nvar timestamp_1 = require('./operator/timestamp');\nexports.Timestamp = timestamp_1.Timestamp;\nvar TestScheduler_1 = require('./testing/TestScheduler');\nexports.TestScheduler = TestScheduler_1.TestScheduler;\nvar VirtualTimeScheduler_1 = require('./scheduler/VirtualTimeScheduler');\nexports.VirtualTimeScheduler = VirtualTimeScheduler_1.VirtualTimeScheduler;\nvar AjaxObservable_1 = require('./observable/dom/AjaxObservable');\nexports.AjaxResponse = AjaxObservable_1.AjaxResponse;\nexports.AjaxError = AjaxObservable_1.AjaxError;\nexports.AjaxTimeoutError = AjaxObservable_1.AjaxTimeoutError;\nvar asap_1 = require('./scheduler/asap');\nvar async_1 = require('./scheduler/async');\nvar queue_1 = require('./scheduler/queue');\nvar animationFrame_1 = require('./scheduler/animationFrame');\nvar rxSubscriber_1 = require('./symbol/rxSubscriber');\nvar iterator_1 = require('./symbol/iterator');\nvar observable_1 = require('./symbol/observable');\n/* tslint:enable:no-unused-variable */\n/**\n * @typedef {Object} Rx.Scheduler\n * @property {Scheduler} queue Schedules on a queue in the current event frame\n * (trampoline scheduler). Use this for iteration operations.\n * @property {Scheduler} asap Schedules on the micro task queue, which uses the\n * fastest transport mechanism available, either Node.js' `process.nextTick()`\n * or Web Worker MessageChannel or setTimeout or others. Use this for\n * asynchronous conversions.\n * @property {Scheduler} async Schedules work with `setInterval`. Use this for\n * time-based operations.\n * @property {Scheduler} animationFrame Schedules work with `requestAnimationFrame`.\n * Use this for synchronizing with the platform's painting\n */\nvar Scheduler = {\n    asap: asap_1.asap,\n    queue: queue_1.queue,\n    animationFrame: animationFrame_1.animationFrame,\n    async: async_1.async\n};\nexports.Scheduler = Scheduler;\n/**\n * @typedef {Object} Rx.Symbol\n * @property {Symbol|string} rxSubscriber A symbol to use as a property name to\n * retrieve an \"Rx safe\" Observer from an object. \"Rx safety\" can be defined as\n * an object that has all of the traits of an Rx Subscriber, including the\n * ability to add and remove subscriptions to the subscription chain and\n * guarantees involving event triggering (can't \"next\" after unsubscription,\n * etc).\n * @property {Symbol|string} observable A symbol to use as a property name to\n * retrieve an Observable as defined by the [ECMAScript \"Observable\" spec](https://github.com/zenparsing/es-observable).\n * @property {Symbol|string} iterator The ES6 symbol to use as a property name\n * to retrieve an iterator from an object.\n */\nvar Symbol = {\n    rxSubscriber: rxSubscriber_1.$$rxSubscriber,\n    observable: observable_1.$$observable,\n    iterator: iterator_1.$$iterator\n};\nexports.Symbol = Symbol;\n//# sourceMappingURL=Rx.js.map",
    "\"use strict\";\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an {@link Action}.\n *\n * ```ts\n * class Scheduler {\n *   now(): number;\n *   schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @class Scheduler\n */\nvar Scheduler = (function () {\n    function Scheduler(SchedulerAction, now) {\n        if (now === void 0) { now = Scheduler.now; }\n        this.SchedulerAction = SchedulerAction;\n        this.now = now;\n    }\n    /**\n     * Schedules a function, `work`, for execution. May happen at some point in\n     * the future, according to the `delay` parameter, if specified. May be passed\n     * some context object, `state`, which will be passed to the `work` function.\n     *\n     * The given arguments will be processed an stored as an Action object in a\n     * queue of actions.\n     *\n     * @param {function(state: ?T): ?Subscription} work A function representing a\n     * task, or some unit of work to be executed by the Scheduler.\n     * @param {number} [delay] Time to wait before executing the work, where the\n     * time unit is implicit and defined by the Scheduler itself.\n     * @param {T} [state] Some contextual data that the `work` function uses when\n     * called by the Scheduler.\n     * @return {Subscription} A subscription in order to be able to unsubscribe\n     * the scheduled work.\n     */\n    Scheduler.prototype.schedule = function (work, delay, state) {\n        if (delay === void 0) { delay = 0; }\n        return new this.SchedulerAction(this, work).schedule(state, delay);\n    };\n    Scheduler.now = Date.now ? Date.now : function () { return +new Date(); };\n    return Scheduler;\n}());\nexports.Scheduler = Scheduler;\n//# sourceMappingURL=Scheduler.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('./Observable');\nvar Subscriber_1 = require('./Subscriber');\nvar Subscription_1 = require('./Subscription');\nvar ObjectUnsubscribedError_1 = require('./util/ObjectUnsubscribedError');\nvar SubjectSubscription_1 = require('./SubjectSubscription');\nvar rxSubscriber_1 = require('./symbol/rxSubscriber');\n/**\n * @class SubjectSubscriber<T>\n */\nvar SubjectSubscriber = (function (_super) {\n    __extends(SubjectSubscriber, _super);\n    function SubjectSubscriber(destination) {\n        _super.call(this, destination);\n        this.destination = destination;\n    }\n    return SubjectSubscriber;\n}(Subscriber_1.Subscriber));\nexports.SubjectSubscriber = SubjectSubscriber;\n/**\n * @class Subject<T>\n */\nvar Subject = (function (_super) {\n    __extends(Subject, _super);\n    function Subject() {\n        _super.call(this);\n        this.observers = [];\n        this.closed = false;\n        this.isStopped = false;\n        this.hasError = false;\n        this.thrownError = null;\n    }\n    Subject.prototype[rxSubscriber_1.$$rxSubscriber] = function () {\n        return new SubjectSubscriber(this);\n    };\n    Subject.prototype.lift = function (operator) {\n        var subject = new AnonymousSubject(this, this);\n        subject.operator = operator;\n        return subject;\n    };\n    Subject.prototype.next = function (value) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n        }\n        if (!this.isStopped) {\n            var observers = this.observers;\n            var len = observers.length;\n            var copy = observers.slice();\n            for (var i = 0; i < len; i++) {\n                copy[i].next(value);\n            }\n        }\n    };\n    Subject.prototype.error = function (err) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n        }\n        this.hasError = true;\n        this.thrownError = err;\n        this.isStopped = true;\n        var observers = this.observers;\n        var len = observers.length;\n        var copy = observers.slice();\n        for (var i = 0; i < len; i++) {\n            copy[i].error(err);\n        }\n        this.observers.length = 0;\n    };\n    Subject.prototype.complete = function () {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n        }\n        this.isStopped = true;\n        var observers = this.observers;\n        var len = observers.length;\n        var copy = observers.slice();\n        for (var i = 0; i < len; i++) {\n            copy[i].complete();\n        }\n        this.observers.length = 0;\n    };\n    Subject.prototype.unsubscribe = function () {\n        this.isStopped = true;\n        this.closed = true;\n        this.observers = null;\n    };\n    Subject.prototype._subscribe = function (subscriber) {\n        if (this.closed) {\n            throw new ObjectUnsubscribedError_1.ObjectUnsubscribedError();\n        }\n        else if (this.hasError) {\n            subscriber.error(this.thrownError);\n            return Subscription_1.Subscription.EMPTY;\n        }\n        else if (this.isStopped) {\n            subscriber.complete();\n            return Subscription_1.Subscription.EMPTY;\n        }\n        else {\n            this.observers.push(subscriber);\n            return new SubjectSubscription_1.SubjectSubscription(this, subscriber);\n        }\n    };\n    Subject.prototype.asObservable = function () {\n        var observable = new Observable_1.Observable();\n        observable.source = this;\n        return observable;\n    };\n    Subject.create = function (destination, source) {\n        return new AnonymousSubject(destination, source);\n    };\n    return Subject;\n}(Observable_1.Observable));\nexports.Subject = Subject;\n/**\n * @class AnonymousSubject<T>\n */\nvar AnonymousSubject = (function (_super) {\n    __extends(AnonymousSubject, _super);\n    function AnonymousSubject(destination, source) {\n        _super.call(this);\n        this.destination = destination;\n        this.source = source;\n    }\n    AnonymousSubject.prototype.next = function (value) {\n        var destination = this.destination;\n        if (destination && destination.next) {\n            destination.next(value);\n        }\n    };\n    AnonymousSubject.prototype.error = function (err) {\n        var destination = this.destination;\n        if (destination && destination.error) {\n            this.destination.error(err);\n        }\n    };\n    AnonymousSubject.prototype.complete = function () {\n        var destination = this.destination;\n        if (destination && destination.complete) {\n            this.destination.complete();\n        }\n    };\n    AnonymousSubject.prototype._subscribe = function (subscriber) {\n        var source = this.source;\n        if (source) {\n            return this.source.subscribe(subscriber);\n        }\n        else {\n            return Subscription_1.Subscription.EMPTY;\n        }\n    };\n    return AnonymousSubject;\n}(Subject));\nexports.AnonymousSubject = AnonymousSubject;\n//# sourceMappingURL=Subject.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscription_1 = require('./Subscription');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SubjectSubscription = (function (_super) {\n    __extends(SubjectSubscription, _super);\n    function SubjectSubscription(subject, subscriber) {\n        _super.call(this);\n        this.subject = subject;\n        this.subscriber = subscriber;\n        this.closed = false;\n    }\n    SubjectSubscription.prototype.unsubscribe = function () {\n        if (this.closed) {\n            return;\n        }\n        this.closed = true;\n        var subject = this.subject;\n        var observers = subject.observers;\n        this.subject = null;\n        if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n            return;\n        }\n        var subscriberIndex = observers.indexOf(this.subscriber);\n        if (subscriberIndex !== -1) {\n            observers.splice(subscriberIndex, 1);\n        }\n    };\n    return SubjectSubscription;\n}(Subscription_1.Subscription));\nexports.SubjectSubscription = SubjectSubscription;\n//# sourceMappingURL=SubjectSubscription.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar isFunction_1 = require('./util/isFunction');\nvar Subscription_1 = require('./Subscription');\nvar Observer_1 = require('./Observer');\nvar rxSubscriber_1 = require('./symbol/rxSubscriber');\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n *\n * @class Subscriber<T>\n */\nvar Subscriber = (function (_super) {\n    __extends(Subscriber, _super);\n    /**\n     * @param {Observer|function(value: T): void} [destinationOrNext] A partially\n     * defined Observer or a `next` callback function.\n     * @param {function(e: ?any): void} [error] The `error` callback of an\n     * Observer.\n     * @param {function(): void} [complete] The `complete` callback of an\n     * Observer.\n     */\n    function Subscriber(destinationOrNext, error, complete) {\n        _super.call(this);\n        this.syncErrorValue = null;\n        this.syncErrorThrown = false;\n        this.syncErrorThrowable = false;\n        this.isStopped = false;\n        switch (arguments.length) {\n            case 0:\n                this.destination = Observer_1.empty;\n                break;\n            case 1:\n                if (!destinationOrNext) {\n                    this.destination = Observer_1.empty;\n                    break;\n                }\n                if (typeof destinationOrNext === 'object') {\n                    if (destinationOrNext instanceof Subscriber) {\n                        this.destination = destinationOrNext;\n                        this.destination.add(this);\n                    }\n                    else {\n                        this.syncErrorThrowable = true;\n                        this.destination = new SafeSubscriber(this, destinationOrNext);\n                    }\n                    break;\n                }\n            default:\n                this.syncErrorThrowable = true;\n                this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n                break;\n        }\n    }\n    Subscriber.prototype[rxSubscriber_1.$$rxSubscriber] = function () { return this; };\n    /**\n     * A static factory for a Subscriber, given a (potentially partial) definition\n     * of an Observer.\n     * @param {function(x: ?T): void} [next] The `next` callback of an Observer.\n     * @param {function(e: ?any): void} [error] The `error` callback of an\n     * Observer.\n     * @param {function(): void} [complete] The `complete` callback of an\n     * Observer.\n     * @return {Subscriber<T>} A Subscriber wrapping the (partially defined)\n     * Observer represented by the given arguments.\n     */\n    Subscriber.create = function (next, error, complete) {\n        var subscriber = new Subscriber(next, error, complete);\n        subscriber.syncErrorThrowable = false;\n        return subscriber;\n    };\n    /**\n     * The {@link Observer} callback to receive notifications of type `next` from\n     * the Observable, with a value. The Observable may call this method 0 or more\n     * times.\n     * @param {T} [value] The `next` value.\n     * @return {void}\n     */\n    Subscriber.prototype.next = function (value) {\n        if (!this.isStopped) {\n            this._next(value);\n        }\n    };\n    /**\n     * The {@link Observer} callback to receive notifications of type `error` from\n     * the Observable, with an attached {@link Error}. Notifies the Observer that\n     * the Observable has experienced an error condition.\n     * @param {any} [err] The `error` exception.\n     * @return {void}\n     */\n    Subscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            this.isStopped = true;\n            this._error(err);\n        }\n    };\n    /**\n     * The {@link Observer} callback to receive a valueless notification of type\n     * `complete` from the Observable. Notifies the Observer that the Observable\n     * has finished sending push-based notifications.\n     * @return {void}\n     */\n    Subscriber.prototype.complete = function () {\n        if (!this.isStopped) {\n            this.isStopped = true;\n            this._complete();\n        }\n    };\n    Subscriber.prototype.unsubscribe = function () {\n        if (this.closed) {\n            return;\n        }\n        this.isStopped = true;\n        _super.prototype.unsubscribe.call(this);\n    };\n    Subscriber.prototype._next = function (value) {\n        this.destination.next(value);\n    };\n    Subscriber.prototype._error = function (err) {\n        this.destination.error(err);\n        this.unsubscribe();\n    };\n    Subscriber.prototype._complete = function () {\n        this.destination.complete();\n        this.unsubscribe();\n    };\n    return Subscriber;\n}(Subscription_1.Subscription));\nexports.Subscriber = Subscriber;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SafeSubscriber = (function (_super) {\n    __extends(SafeSubscriber, _super);\n    function SafeSubscriber(_parent, observerOrNext, error, complete) {\n        _super.call(this);\n        this._parent = _parent;\n        var next;\n        var context = this;\n        if (isFunction_1.isFunction(observerOrNext)) {\n            next = observerOrNext;\n        }\n        else if (observerOrNext) {\n            context = observerOrNext;\n            next = observerOrNext.next;\n            error = observerOrNext.error;\n            complete = observerOrNext.complete;\n            if (isFunction_1.isFunction(context.unsubscribe)) {\n                this.add(context.unsubscribe.bind(context));\n            }\n            context.unsubscribe = this.unsubscribe.bind(this);\n        }\n        this._context = context;\n        this._next = next;\n        this._error = error;\n        this._complete = complete;\n    }\n    SafeSubscriber.prototype.next = function (value) {\n        if (!this.isStopped && this._next) {\n            var _parent = this._parent;\n            if (!_parent.syncErrorThrowable) {\n                this.__tryOrUnsub(this._next, value);\n            }\n            else if (this.__tryOrSetError(_parent, this._next, value)) {\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var _parent = this._parent;\n            if (this._error) {\n                if (!_parent.syncErrorThrowable) {\n                    this.__tryOrUnsub(this._error, err);\n                    this.unsubscribe();\n                }\n                else {\n                    this.__tryOrSetError(_parent, this._error, err);\n                    this.unsubscribe();\n                }\n            }\n            else if (!_parent.syncErrorThrowable) {\n                this.unsubscribe();\n                throw err;\n            }\n            else {\n                _parent.syncErrorValue = err;\n                _parent.syncErrorThrown = true;\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.complete = function () {\n        if (!this.isStopped) {\n            var _parent = this._parent;\n            if (this._complete) {\n                if (!_parent.syncErrorThrowable) {\n                    this.__tryOrUnsub(this._complete);\n                    this.unsubscribe();\n                }\n                else {\n                    this.__tryOrSetError(_parent, this._complete);\n                    this.unsubscribe();\n                }\n            }\n            else {\n                this.unsubscribe();\n            }\n        }\n    };\n    SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n        try {\n            fn.call(this._context, value);\n        }\n        catch (err) {\n            this.unsubscribe();\n            throw err;\n        }\n    };\n    SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n        try {\n            fn.call(this._context, value);\n        }\n        catch (err) {\n            parent.syncErrorValue = err;\n            parent.syncErrorThrown = true;\n            return true;\n        }\n        return false;\n    };\n    SafeSubscriber.prototype._unsubscribe = function () {\n        var _parent = this._parent;\n        this._context = null;\n        this._parent = null;\n        _parent.unsubscribe();\n    };\n    return SafeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=Subscriber.js.map",
    "\"use strict\";\nvar isArray_1 = require('./util/isArray');\nvar isObject_1 = require('./util/isObject');\nvar isFunction_1 = require('./util/isFunction');\nvar tryCatch_1 = require('./util/tryCatch');\nvar errorObject_1 = require('./util/errorObject');\nvar UnsubscriptionError_1 = require('./util/UnsubscriptionError');\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n *\n * @class Subscription\n */\nvar Subscription = (function () {\n    /**\n     * @param {function(): void} [unsubscribe] A function describing how to\n     * perform the disposal of resources when the `unsubscribe` method is called.\n     */\n    function Subscription(unsubscribe) {\n        /**\n         * A flag to indicate whether this Subscription has already been unsubscribed.\n         * @type {boolean}\n         */\n        this.closed = false;\n        if (unsubscribe) {\n            this._unsubscribe = unsubscribe;\n        }\n    }\n    /**\n     * Disposes the resources held by the subscription. May, for instance, cancel\n     * an ongoing Observable execution or cancel any other type of work that\n     * started when the Subscription was created.\n     * @return {void}\n     */\n    Subscription.prototype.unsubscribe = function () {\n        var hasErrors = false;\n        var errors;\n        if (this.closed) {\n            return;\n        }\n        this.closed = true;\n        var _a = this, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n        this._subscriptions = null;\n        if (isFunction_1.isFunction(_unsubscribe)) {\n            var trial = tryCatch_1.tryCatch(_unsubscribe).call(this);\n            if (trial === errorObject_1.errorObject) {\n                hasErrors = true;\n                (errors = errors || []).push(errorObject_1.errorObject.e);\n            }\n        }\n        if (isArray_1.isArray(_subscriptions)) {\n            var index = -1;\n            var len = _subscriptions.length;\n            while (++index < len) {\n                var sub = _subscriptions[index];\n                if (isObject_1.isObject(sub)) {\n                    var trial = tryCatch_1.tryCatch(sub.unsubscribe).call(sub);\n                    if (trial === errorObject_1.errorObject) {\n                        hasErrors = true;\n                        errors = errors || [];\n                        var err = errorObject_1.errorObject.e;\n                        if (err instanceof UnsubscriptionError_1.UnsubscriptionError) {\n                            errors = errors.concat(err.errors);\n                        }\n                        else {\n                            errors.push(err);\n                        }\n                    }\n                }\n            }\n        }\n        if (hasErrors) {\n            throw new UnsubscriptionError_1.UnsubscriptionError(errors);\n        }\n    };\n    /**\n     * Adds a tear down to be called during the unsubscribe() of this\n     * Subscription.\n     *\n     * If the tear down being added is a subscription that is already\n     * unsubscribed, is the same reference `add` is being called on, or is\n     * `Subscription.EMPTY`, it will not be added.\n     *\n     * If this subscription is already in an `closed` state, the passed\n     * tear down logic will be executed immediately.\n     *\n     * @param {TeardownLogic} teardown The additional logic to execute on\n     * teardown.\n     * @return {Subscription} Returns the Subscription used or created to be\n     * added to the inner subscriptions list. This Subscription can be used with\n     * `remove()` to remove the passed teardown logic from the inner subscriptions\n     * list.\n     */\n    Subscription.prototype.add = function (teardown) {\n        if (!teardown || (teardown === Subscription.EMPTY)) {\n            return Subscription.EMPTY;\n        }\n        if (teardown === this) {\n            return this;\n        }\n        var sub = teardown;\n        switch (typeof teardown) {\n            case 'function':\n                sub = new Subscription(teardown);\n            case 'object':\n                if (sub.closed || typeof sub.unsubscribe !== 'function') {\n                    break;\n                }\n                else if (this.closed) {\n                    sub.unsubscribe();\n                }\n                else {\n                    (this._subscriptions || (this._subscriptions = [])).push(sub);\n                }\n                break;\n            default:\n                throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n        }\n        return sub;\n    };\n    /**\n     * Removes a Subscription from the internal list of subscriptions that will\n     * unsubscribe during the unsubscribe process of this Subscription.\n     * @param {Subscription} subscription The subscription to remove.\n     * @return {void}\n     */\n    Subscription.prototype.remove = function (subscription) {\n        // HACK: This might be redundant because of the logic in `add()`\n        if (subscription == null || (subscription === this) || (subscription === Subscription.EMPTY)) {\n            return;\n        }\n        var subscriptions = this._subscriptions;\n        if (subscriptions) {\n            var subscriptionIndex = subscriptions.indexOf(subscription);\n            if (subscriptionIndex !== -1) {\n                subscriptions.splice(subscriptionIndex, 1);\n            }\n        }\n    };\n    Subscription.EMPTY = (function (empty) {\n        empty.closed = true;\n        return empty;\n    }(new Subscription()));\n    return Subscription;\n}());\nexports.Subscription = Subscription;\n//# sourceMappingURL=Subscription.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar bindCallback_1 = require('../../observable/bindCallback');\nObservable_1.Observable.bindCallback = bindCallback_1.bindCallback;\n//# sourceMappingURL=bindCallback.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar bindNodeCallback_1 = require('../../observable/bindNodeCallback');\nObservable_1.Observable.bindNodeCallback = bindNodeCallback_1.bindNodeCallback;\n//# sourceMappingURL=bindNodeCallback.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar combineLatest_1 = require('../../observable/combineLatest');\nObservable_1.Observable.combineLatest = combineLatest_1.combineLatest;\n//# sourceMappingURL=combineLatest.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar concat_1 = require('../../observable/concat');\nObservable_1.Observable.concat = concat_1.concat;\n//# sourceMappingURL=concat.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar defer_1 = require('../../observable/defer');\nObservable_1.Observable.defer = defer_1.defer;\n//# sourceMappingURL=defer.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../../Observable');\nvar ajax_1 = require('../../../observable/dom/ajax');\nObservable_1.Observable.ajax = ajax_1.ajax;\n//# sourceMappingURL=ajax.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../../Observable');\nvar webSocket_1 = require('../../../observable/dom/webSocket');\nObservable_1.Observable.webSocket = webSocket_1.webSocket;\n//# sourceMappingURL=webSocket.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar empty_1 = require('../../observable/empty');\nObservable_1.Observable.empty = empty_1.empty;\n//# sourceMappingURL=empty.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar forkJoin_1 = require('../../observable/forkJoin');\nObservable_1.Observable.forkJoin = forkJoin_1.forkJoin;\n//# sourceMappingURL=forkJoin.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar from_1 = require('../../observable/from');\nObservable_1.Observable.from = from_1.from;\n//# sourceMappingURL=from.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar fromEvent_1 = require('../../observable/fromEvent');\nObservable_1.Observable.fromEvent = fromEvent_1.fromEvent;\n//# sourceMappingURL=fromEvent.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar fromEventPattern_1 = require('../../observable/fromEventPattern');\nObservable_1.Observable.fromEventPattern = fromEventPattern_1.fromEventPattern;\n//# sourceMappingURL=fromEventPattern.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar fromPromise_1 = require('../../observable/fromPromise');\nObservable_1.Observable.fromPromise = fromPromise_1.fromPromise;\n//# sourceMappingURL=fromPromise.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar GenerateObservable_1 = require('../../observable/GenerateObservable');\nObservable_1.Observable.generate = GenerateObservable_1.GenerateObservable.create;\n//# sourceMappingURL=generate.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar if_1 = require('../../observable/if');\nObservable_1.Observable.if = if_1._if;\n//# sourceMappingURL=if.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar interval_1 = require('../../observable/interval');\nObservable_1.Observable.interval = interval_1.interval;\n//# sourceMappingURL=interval.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar merge_1 = require('../../observable/merge');\nObservable_1.Observable.merge = merge_1.merge;\n//# sourceMappingURL=merge.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar never_1 = require('../../observable/never');\nObservable_1.Observable.never = never_1.never;\n//# sourceMappingURL=never.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar of_1 = require('../../observable/of');\nObservable_1.Observable.of = of_1.of;\n//# sourceMappingURL=of.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar onErrorResumeNext_1 = require('../../operator/onErrorResumeNext');\nObservable_1.Observable.onErrorResumeNext = onErrorResumeNext_1.onErrorResumeNextStatic;\n//# sourceMappingURL=onErrorResumeNext.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar pairs_1 = require('../../observable/pairs');\nObservable_1.Observable.pairs = pairs_1.pairs;\n//# sourceMappingURL=pairs.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar race_1 = require('../../operator/race');\nObservable_1.Observable.race = race_1.raceStatic;\n//# sourceMappingURL=race.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar range_1 = require('../../observable/range');\nObservable_1.Observable.range = range_1.range;\n//# sourceMappingURL=range.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar throw_1 = require('../../observable/throw');\nObservable_1.Observable.throw = throw_1._throw;\n//# sourceMappingURL=throw.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar timer_1 = require('../../observable/timer');\nObservable_1.Observable.timer = timer_1.timer;\n//# sourceMappingURL=timer.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar using_1 = require('../../observable/using');\nObservable_1.Observable.using = using_1.using;\n//# sourceMappingURL=using.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar zip_1 = require('../../observable/zip');\nObservable_1.Observable.zip = zip_1.zip;\n//# sourceMappingURL=zip.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar audit_1 = require('../../operator/audit');\nObservable_1.Observable.prototype.audit = audit_1.audit;\n//# sourceMappingURL=audit.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar auditTime_1 = require('../../operator/auditTime');\nObservable_1.Observable.prototype.auditTime = auditTime_1.auditTime;\n//# sourceMappingURL=auditTime.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar buffer_1 = require('../../operator/buffer');\nObservable_1.Observable.prototype.buffer = buffer_1.buffer;\n//# sourceMappingURL=buffer.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar bufferCount_1 = require('../../operator/bufferCount');\nObservable_1.Observable.prototype.bufferCount = bufferCount_1.bufferCount;\n//# sourceMappingURL=bufferCount.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar bufferTime_1 = require('../../operator/bufferTime');\nObservable_1.Observable.prototype.bufferTime = bufferTime_1.bufferTime;\n//# sourceMappingURL=bufferTime.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar bufferToggle_1 = require('../../operator/bufferToggle');\nObservable_1.Observable.prototype.bufferToggle = bufferToggle_1.bufferToggle;\n//# sourceMappingURL=bufferToggle.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar bufferWhen_1 = require('../../operator/bufferWhen');\nObservable_1.Observable.prototype.bufferWhen = bufferWhen_1.bufferWhen;\n//# sourceMappingURL=bufferWhen.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar catch_1 = require('../../operator/catch');\nObservable_1.Observable.prototype.catch = catch_1._catch;\nObservable_1.Observable.prototype._catch = catch_1._catch;\n//# sourceMappingURL=catch.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar combineAll_1 = require('../../operator/combineAll');\nObservable_1.Observable.prototype.combineAll = combineAll_1.combineAll;\n//# sourceMappingURL=combineAll.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar combineLatest_1 = require('../../operator/combineLatest');\nObservable_1.Observable.prototype.combineLatest = combineLatest_1.combineLatest;\n//# sourceMappingURL=combineLatest.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar concat_1 = require('../../operator/concat');\nObservable_1.Observable.prototype.concat = concat_1.concat;\n//# sourceMappingURL=concat.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar concatAll_1 = require('../../operator/concatAll');\nObservable_1.Observable.prototype.concatAll = concatAll_1.concatAll;\n//# sourceMappingURL=concatAll.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar concatMap_1 = require('../../operator/concatMap');\nObservable_1.Observable.prototype.concatMap = concatMap_1.concatMap;\n//# sourceMappingURL=concatMap.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar concatMapTo_1 = require('../../operator/concatMapTo');\nObservable_1.Observable.prototype.concatMapTo = concatMapTo_1.concatMapTo;\n//# sourceMappingURL=concatMapTo.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar count_1 = require('../../operator/count');\nObservable_1.Observable.prototype.count = count_1.count;\n//# sourceMappingURL=count.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar debounce_1 = require('../../operator/debounce');\nObservable_1.Observable.prototype.debounce = debounce_1.debounce;\n//# sourceMappingURL=debounce.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar debounceTime_1 = require('../../operator/debounceTime');\nObservable_1.Observable.prototype.debounceTime = debounceTime_1.debounceTime;\n//# sourceMappingURL=debounceTime.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar defaultIfEmpty_1 = require('../../operator/defaultIfEmpty');\nObservable_1.Observable.prototype.defaultIfEmpty = defaultIfEmpty_1.defaultIfEmpty;\n//# sourceMappingURL=defaultIfEmpty.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar delay_1 = require('../../operator/delay');\nObservable_1.Observable.prototype.delay = delay_1.delay;\n//# sourceMappingURL=delay.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar delayWhen_1 = require('../../operator/delayWhen');\nObservable_1.Observable.prototype.delayWhen = delayWhen_1.delayWhen;\n//# sourceMappingURL=delayWhen.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar dematerialize_1 = require('../../operator/dematerialize');\nObservable_1.Observable.prototype.dematerialize = dematerialize_1.dematerialize;\n//# sourceMappingURL=dematerialize.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar distinct_1 = require('../../operator/distinct');\nObservable_1.Observable.prototype.distinct = distinct_1.distinct;\n//# sourceMappingURL=distinct.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar distinctUntilChanged_1 = require('../../operator/distinctUntilChanged');\nObservable_1.Observable.prototype.distinctUntilChanged = distinctUntilChanged_1.distinctUntilChanged;\n//# sourceMappingURL=distinctUntilChanged.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar distinctUntilKeyChanged_1 = require('../../operator/distinctUntilKeyChanged');\nObservable_1.Observable.prototype.distinctUntilKeyChanged = distinctUntilKeyChanged_1.distinctUntilKeyChanged;\n//# sourceMappingURL=distinctUntilKeyChanged.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar do_1 = require('../../operator/do');\nObservable_1.Observable.prototype.do = do_1._do;\nObservable_1.Observable.prototype._do = do_1._do;\n//# sourceMappingURL=do.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar elementAt_1 = require('../../operator/elementAt');\nObservable_1.Observable.prototype.elementAt = elementAt_1.elementAt;\n//# sourceMappingURL=elementAt.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar every_1 = require('../../operator/every');\nObservable_1.Observable.prototype.every = every_1.every;\n//# sourceMappingURL=every.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar exhaust_1 = require('../../operator/exhaust');\nObservable_1.Observable.prototype.exhaust = exhaust_1.exhaust;\n//# sourceMappingURL=exhaust.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar exhaustMap_1 = require('../../operator/exhaustMap');\nObservable_1.Observable.prototype.exhaustMap = exhaustMap_1.exhaustMap;\n//# sourceMappingURL=exhaustMap.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar expand_1 = require('../../operator/expand');\nObservable_1.Observable.prototype.expand = expand_1.expand;\n//# sourceMappingURL=expand.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar filter_1 = require('../../operator/filter');\nObservable_1.Observable.prototype.filter = filter_1.filter;\n//# sourceMappingURL=filter.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar finally_1 = require('../../operator/finally');\nObservable_1.Observable.prototype.finally = finally_1._finally;\nObservable_1.Observable.prototype._finally = finally_1._finally;\n//# sourceMappingURL=finally.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar find_1 = require('../../operator/find');\nObservable_1.Observable.prototype.find = find_1.find;\n//# sourceMappingURL=find.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar findIndex_1 = require('../../operator/findIndex');\nObservable_1.Observable.prototype.findIndex = findIndex_1.findIndex;\n//# sourceMappingURL=findIndex.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar first_1 = require('../../operator/first');\nObservable_1.Observable.prototype.first = first_1.first;\n//# sourceMappingURL=first.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar groupBy_1 = require('../../operator/groupBy');\nObservable_1.Observable.prototype.groupBy = groupBy_1.groupBy;\n//# sourceMappingURL=groupBy.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar ignoreElements_1 = require('../../operator/ignoreElements');\nObservable_1.Observable.prototype.ignoreElements = ignoreElements_1.ignoreElements;\n//# sourceMappingURL=ignoreElements.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar isEmpty_1 = require('../../operator/isEmpty');\nObservable_1.Observable.prototype.isEmpty = isEmpty_1.isEmpty;\n//# sourceMappingURL=isEmpty.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar last_1 = require('../../operator/last');\nObservable_1.Observable.prototype.last = last_1.last;\n//# sourceMappingURL=last.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar let_1 = require('../../operator/let');\nObservable_1.Observable.prototype.let = let_1.letProto;\nObservable_1.Observable.prototype.letBind = let_1.letProto;\n//# sourceMappingURL=let.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar map_1 = require('../../operator/map');\nObservable_1.Observable.prototype.map = map_1.map;\n//# sourceMappingURL=map.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar mapTo_1 = require('../../operator/mapTo');\nObservable_1.Observable.prototype.mapTo = mapTo_1.mapTo;\n//# sourceMappingURL=mapTo.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar materialize_1 = require('../../operator/materialize');\nObservable_1.Observable.prototype.materialize = materialize_1.materialize;\n//# sourceMappingURL=materialize.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar max_1 = require('../../operator/max');\nObservable_1.Observable.prototype.max = max_1.max;\n//# sourceMappingURL=max.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar merge_1 = require('../../operator/merge');\nObservable_1.Observable.prototype.merge = merge_1.merge;\n//# sourceMappingURL=merge.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar mergeAll_1 = require('../../operator/mergeAll');\nObservable_1.Observable.prototype.mergeAll = mergeAll_1.mergeAll;\n//# sourceMappingURL=mergeAll.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar mergeMap_1 = require('../../operator/mergeMap');\nObservable_1.Observable.prototype.mergeMap = mergeMap_1.mergeMap;\nObservable_1.Observable.prototype.flatMap = mergeMap_1.mergeMap;\n//# sourceMappingURL=mergeMap.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar mergeMapTo_1 = require('../../operator/mergeMapTo');\nObservable_1.Observable.prototype.flatMapTo = mergeMapTo_1.mergeMapTo;\nObservable_1.Observable.prototype.mergeMapTo = mergeMapTo_1.mergeMapTo;\n//# sourceMappingURL=mergeMapTo.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar mergeScan_1 = require('../../operator/mergeScan');\nObservable_1.Observable.prototype.mergeScan = mergeScan_1.mergeScan;\n//# sourceMappingURL=mergeScan.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar min_1 = require('../../operator/min');\nObservable_1.Observable.prototype.min = min_1.min;\n//# sourceMappingURL=min.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar multicast_1 = require('../../operator/multicast');\nObservable_1.Observable.prototype.multicast = multicast_1.multicast;\n//# sourceMappingURL=multicast.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar observeOn_1 = require('../../operator/observeOn');\nObservable_1.Observable.prototype.observeOn = observeOn_1.observeOn;\n//# sourceMappingURL=observeOn.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar onErrorResumeNext_1 = require('../../operator/onErrorResumeNext');\nObservable_1.Observable.prototype.onErrorResumeNext = onErrorResumeNext_1.onErrorResumeNext;\n//# sourceMappingURL=onErrorResumeNext.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar pairwise_1 = require('../../operator/pairwise');\nObservable_1.Observable.prototype.pairwise = pairwise_1.pairwise;\n//# sourceMappingURL=pairwise.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar partition_1 = require('../../operator/partition');\nObservable_1.Observable.prototype.partition = partition_1.partition;\n//# sourceMappingURL=partition.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar pluck_1 = require('../../operator/pluck');\nObservable_1.Observable.prototype.pluck = pluck_1.pluck;\n//# sourceMappingURL=pluck.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar publish_1 = require('../../operator/publish');\nObservable_1.Observable.prototype.publish = publish_1.publish;\n//# sourceMappingURL=publish.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar publishBehavior_1 = require('../../operator/publishBehavior');\nObservable_1.Observable.prototype.publishBehavior = publishBehavior_1.publishBehavior;\n//# sourceMappingURL=publishBehavior.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar publishLast_1 = require('../../operator/publishLast');\nObservable_1.Observable.prototype.publishLast = publishLast_1.publishLast;\n//# sourceMappingURL=publishLast.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar publishReplay_1 = require('../../operator/publishReplay');\nObservable_1.Observable.prototype.publishReplay = publishReplay_1.publishReplay;\n//# sourceMappingURL=publishReplay.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar race_1 = require('../../operator/race');\nObservable_1.Observable.prototype.race = race_1.race;\n//# sourceMappingURL=race.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar reduce_1 = require('../../operator/reduce');\nObservable_1.Observable.prototype.reduce = reduce_1.reduce;\n//# sourceMappingURL=reduce.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar repeat_1 = require('../../operator/repeat');\nObservable_1.Observable.prototype.repeat = repeat_1.repeat;\n//# sourceMappingURL=repeat.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar repeatWhen_1 = require('../../operator/repeatWhen');\nObservable_1.Observable.prototype.repeatWhen = repeatWhen_1.repeatWhen;\n//# sourceMappingURL=repeatWhen.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar retry_1 = require('../../operator/retry');\nObservable_1.Observable.prototype.retry = retry_1.retry;\n//# sourceMappingURL=retry.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar retryWhen_1 = require('../../operator/retryWhen');\nObservable_1.Observable.prototype.retryWhen = retryWhen_1.retryWhen;\n//# sourceMappingURL=retryWhen.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar sample_1 = require('../../operator/sample');\nObservable_1.Observable.prototype.sample = sample_1.sample;\n//# sourceMappingURL=sample.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar sampleTime_1 = require('../../operator/sampleTime');\nObservable_1.Observable.prototype.sampleTime = sampleTime_1.sampleTime;\n//# sourceMappingURL=sampleTime.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar scan_1 = require('../../operator/scan');\nObservable_1.Observable.prototype.scan = scan_1.scan;\n//# sourceMappingURL=scan.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar sequenceEqual_1 = require('../../operator/sequenceEqual');\nObservable_1.Observable.prototype.sequenceEqual = sequenceEqual_1.sequenceEqual;\n//# sourceMappingURL=sequenceEqual.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar share_1 = require('../../operator/share');\nObservable_1.Observable.prototype.share = share_1.share;\n//# sourceMappingURL=share.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar single_1 = require('../../operator/single');\nObservable_1.Observable.prototype.single = single_1.single;\n//# sourceMappingURL=single.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar skip_1 = require('../../operator/skip');\nObservable_1.Observable.prototype.skip = skip_1.skip;\n//# sourceMappingURL=skip.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar skipUntil_1 = require('../../operator/skipUntil');\nObservable_1.Observable.prototype.skipUntil = skipUntil_1.skipUntil;\n//# sourceMappingURL=skipUntil.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar skipWhile_1 = require('../../operator/skipWhile');\nObservable_1.Observable.prototype.skipWhile = skipWhile_1.skipWhile;\n//# sourceMappingURL=skipWhile.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar startWith_1 = require('../../operator/startWith');\nObservable_1.Observable.prototype.startWith = startWith_1.startWith;\n//# sourceMappingURL=startWith.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar subscribeOn_1 = require('../../operator/subscribeOn');\nObservable_1.Observable.prototype.subscribeOn = subscribeOn_1.subscribeOn;\n//# sourceMappingURL=subscribeOn.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar switch_1 = require('../../operator/switch');\nObservable_1.Observable.prototype.switch = switch_1._switch;\nObservable_1.Observable.prototype._switch = switch_1._switch;\n//# sourceMappingURL=switch.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar switchMap_1 = require('../../operator/switchMap');\nObservable_1.Observable.prototype.switchMap = switchMap_1.switchMap;\n//# sourceMappingURL=switchMap.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar switchMapTo_1 = require('../../operator/switchMapTo');\nObservable_1.Observable.prototype.switchMapTo = switchMapTo_1.switchMapTo;\n//# sourceMappingURL=switchMapTo.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar take_1 = require('../../operator/take');\nObservable_1.Observable.prototype.take = take_1.take;\n//# sourceMappingURL=take.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar takeLast_1 = require('../../operator/takeLast');\nObservable_1.Observable.prototype.takeLast = takeLast_1.takeLast;\n//# sourceMappingURL=takeLast.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar takeUntil_1 = require('../../operator/takeUntil');\nObservable_1.Observable.prototype.takeUntil = takeUntil_1.takeUntil;\n//# sourceMappingURL=takeUntil.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar takeWhile_1 = require('../../operator/takeWhile');\nObservable_1.Observable.prototype.takeWhile = takeWhile_1.takeWhile;\n//# sourceMappingURL=takeWhile.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar throttle_1 = require('../../operator/throttle');\nObservable_1.Observable.prototype.throttle = throttle_1.throttle;\n//# sourceMappingURL=throttle.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar throttleTime_1 = require('../../operator/throttleTime');\nObservable_1.Observable.prototype.throttleTime = throttleTime_1.throttleTime;\n//# sourceMappingURL=throttleTime.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar timeInterval_1 = require('../../operator/timeInterval');\nObservable_1.Observable.prototype.timeInterval = timeInterval_1.timeInterval;\n//# sourceMappingURL=timeInterval.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar timeout_1 = require('../../operator/timeout');\nObservable_1.Observable.prototype.timeout = timeout_1.timeout;\n//# sourceMappingURL=timeout.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar timeoutWith_1 = require('../../operator/timeoutWith');\nObservable_1.Observable.prototype.timeoutWith = timeoutWith_1.timeoutWith;\n//# sourceMappingURL=timeoutWith.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar timestamp_1 = require('../../operator/timestamp');\nObservable_1.Observable.prototype.timestamp = timestamp_1.timestamp;\n//# sourceMappingURL=timestamp.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar toArray_1 = require('../../operator/toArray');\nObservable_1.Observable.prototype.toArray = toArray_1.toArray;\n//# sourceMappingURL=toArray.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar toPromise_1 = require('../../operator/toPromise');\nObservable_1.Observable.prototype.toPromise = toPromise_1.toPromise;\n//# sourceMappingURL=toPromise.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar window_1 = require('../../operator/window');\nObservable_1.Observable.prototype.window = window_1.window;\n//# sourceMappingURL=window.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar windowCount_1 = require('../../operator/windowCount');\nObservable_1.Observable.prototype.windowCount = windowCount_1.windowCount;\n//# sourceMappingURL=windowCount.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar windowTime_1 = require('../../operator/windowTime');\nObservable_1.Observable.prototype.windowTime = windowTime_1.windowTime;\n//# sourceMappingURL=windowTime.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar windowToggle_1 = require('../../operator/windowToggle');\nObservable_1.Observable.prototype.windowToggle = windowToggle_1.windowToggle;\n//# sourceMappingURL=windowToggle.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar windowWhen_1 = require('../../operator/windowWhen');\nObservable_1.Observable.prototype.windowWhen = windowWhen_1.windowWhen;\n//# sourceMappingURL=windowWhen.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar withLatestFrom_1 = require('../../operator/withLatestFrom');\nObservable_1.Observable.prototype.withLatestFrom = withLatestFrom_1.withLatestFrom;\n//# sourceMappingURL=withLatestFrom.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar zip_1 = require('../../operator/zip');\nObservable_1.Observable.prototype.zip = zip_1.zipProto;\n//# sourceMappingURL=zip.js.map",
    "\"use strict\";\nvar Observable_1 = require('../../Observable');\nvar zipAll_1 = require('../../operator/zipAll');\nObservable_1.Observable.prototype.zipAll = zipAll_1.zipAll;\n//# sourceMappingURL=zipAll.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar ScalarObservable_1 = require('./ScalarObservable');\nvar EmptyObservable_1 = require('./EmptyObservable');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar ArrayLikeObservable = (function (_super) {\n    __extends(ArrayLikeObservable, _super);\n    function ArrayLikeObservable(arrayLike, scheduler) {\n        _super.call(this);\n        this.arrayLike = arrayLike;\n        this.scheduler = scheduler;\n        if (!scheduler && arrayLike.length === 1) {\n            this._isScalar = true;\n            this.value = arrayLike[0];\n        }\n    }\n    ArrayLikeObservable.create = function (arrayLike, scheduler) {\n        var length = arrayLike.length;\n        if (length === 0) {\n            return new EmptyObservable_1.EmptyObservable();\n        }\n        else if (length === 1) {\n            return new ScalarObservable_1.ScalarObservable(arrayLike[0], scheduler);\n        }\n        else {\n            return new ArrayLikeObservable(arrayLike, scheduler);\n        }\n    };\n    ArrayLikeObservable.dispatch = function (state) {\n        var arrayLike = state.arrayLike, index = state.index, length = state.length, subscriber = state.subscriber;\n        if (subscriber.closed) {\n            return;\n        }\n        if (index >= length) {\n            subscriber.complete();\n            return;\n        }\n        subscriber.next(arrayLike[index]);\n        state.index = index + 1;\n        this.schedule(state);\n    };\n    ArrayLikeObservable.prototype._subscribe = function (subscriber) {\n        var index = 0;\n        var _a = this, arrayLike = _a.arrayLike, scheduler = _a.scheduler;\n        var length = arrayLike.length;\n        if (scheduler) {\n            return scheduler.schedule(ArrayLikeObservable.dispatch, 0, {\n                arrayLike: arrayLike, index: index, length: length, subscriber: subscriber\n            });\n        }\n        else {\n            for (var i = 0; i < length && !subscriber.closed; i++) {\n                subscriber.next(arrayLike[i]);\n            }\n            subscriber.complete();\n        }\n    };\n    return ArrayLikeObservable;\n}(Observable_1.Observable));\nexports.ArrayLikeObservable = ArrayLikeObservable;\n//# sourceMappingURL=ArrayLikeObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar ScalarObservable_1 = require('./ScalarObservable');\nvar EmptyObservable_1 = require('./EmptyObservable');\nvar isScheduler_1 = require('../util/isScheduler');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar ArrayObservable = (function (_super) {\n    __extends(ArrayObservable, _super);\n    function ArrayObservable(array, scheduler) {\n        _super.call(this);\n        this.array = array;\n        this.scheduler = scheduler;\n        if (!scheduler && array.length === 1) {\n            this._isScalar = true;\n            this.value = array[0];\n        }\n    }\n    ArrayObservable.create = function (array, scheduler) {\n        return new ArrayObservable(array, scheduler);\n    };\n    /**\n     * Creates an Observable that emits some values you specify as arguments,\n     * immediately one after the other, and then emits a complete notification.\n     *\n     * <span class=\"informal\">Emits the arguments you provide, then completes.\n     * </span>\n     *\n     * <img src=\"./img/of.png\" width=\"100%\">\n     *\n     * This static operator is useful for creating a simple Observable that only\n     * emits the arguments given, and the complete notification thereafter. It can\n     * be used for composing with other Observables, such as with {@link concat}.\n     * By default, it uses a `null` Scheduler, which means the `next`\n     * notifications are sent synchronously, although with a different Scheduler\n     * it is possible to determine when those notifications will be delivered.\n     *\n     * @example <caption>Emit 10, 20, 30, then 'a', 'b', 'c', then start ticking every second.</caption>\n     * var numbers = Rx.Observable.of(10, 20, 30);\n     * var letters = Rx.Observable.of('a', 'b', 'c');\n     * var interval = Rx.Observable.interval(1000);\n     * var result = numbers.concat(letters).concat(interval);\n     * result.subscribe(x => console.log(x));\n     *\n     * @see {@link create}\n     * @see {@link empty}\n     * @see {@link never}\n     * @see {@link throw}\n     *\n     * @param {...T} values Arguments that represent `next` values to be emitted.\n     * @param {Scheduler} [scheduler] A {@link Scheduler} to use for scheduling\n     * the emissions of the `next` notifications.\n     * @return {Observable<T>} An Observable that emits each given input value.\n     * @static true\n     * @name of\n     * @owner Observable\n     */\n    ArrayObservable.of = function () {\n        var array = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            array[_i - 0] = arguments[_i];\n        }\n        var scheduler = array[array.length - 1];\n        if (isScheduler_1.isScheduler(scheduler)) {\n            array.pop();\n        }\n        else {\n            scheduler = null;\n        }\n        var len = array.length;\n        if (len > 1) {\n            return new ArrayObservable(array, scheduler);\n        }\n        else if (len === 1) {\n            return new ScalarObservable_1.ScalarObservable(array[0], scheduler);\n        }\n        else {\n            return new EmptyObservable_1.EmptyObservable(scheduler);\n        }\n    };\n    ArrayObservable.dispatch = function (state) {\n        var array = state.array, index = state.index, count = state.count, subscriber = state.subscriber;\n        if (index >= count) {\n            subscriber.complete();\n            return;\n        }\n        subscriber.next(array[index]);\n        if (subscriber.closed) {\n            return;\n        }\n        state.index = index + 1;\n        this.schedule(state);\n    };\n    ArrayObservable.prototype._subscribe = function (subscriber) {\n        var index = 0;\n        var array = this.array;\n        var count = array.length;\n        var scheduler = this.scheduler;\n        if (scheduler) {\n            return scheduler.schedule(ArrayObservable.dispatch, 0, {\n                array: array, index: index, count: count, subscriber: subscriber\n            });\n        }\n        else {\n            for (var i = 0; i < count && !subscriber.closed; i++) {\n                subscriber.next(array[i]);\n            }\n            subscriber.complete();\n        }\n    };\n    return ArrayObservable;\n}(Observable_1.Observable));\nexports.ArrayObservable = ArrayObservable;\n//# sourceMappingURL=ArrayObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\nvar AsyncSubject_1 = require('../AsyncSubject');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar BoundCallbackObservable = (function (_super) {\n    __extends(BoundCallbackObservable, _super);\n    function BoundCallbackObservable(callbackFunc, selector, args, scheduler) {\n        _super.call(this);\n        this.callbackFunc = callbackFunc;\n        this.selector = selector;\n        this.args = args;\n        this.scheduler = scheduler;\n    }\n    /* tslint:enable:max-line-length */\n    /**\n     * Converts a callback API to a function that returns an Observable.\n     *\n     * <span class=\"informal\">Give it a function `f` of type `f(x, callback)` and\n     * it will return a function `g` that when called as `g(x)` will output an\n     * Observable.</span>\n     *\n     * `bindCallback` is not an operator because its input and output are not\n     * Observables. The input is a function `func` with some parameters, but the\n     * last parameter must be a callback function that `func` calls when it is\n     * done. The output of `bindCallback` is a function that takes the same\n     * parameters as `func`, except the last one (the callback). When the output\n     * function is called with arguments, it will return an Observable where the\n     * results will be delivered to.\n     *\n     * @example <caption>Convert jQuery's getJSON to an Observable API</caption>\n     * // Suppose we have jQuery.getJSON('/my/url', callback)\n     * var getJSONAsObservable = Rx.Observable.bindCallback(jQuery.getJSON);\n     * var result = getJSONAsObservable('/my/url');\n     * result.subscribe(x => console.log(x), e => console.error(e));\n     *\n     * @see {@link bindNodeCallback}\n     * @see {@link from}\n     * @see {@link fromPromise}\n     *\n     * @param {function} func Function with a callback as the last parameter.\n     * @param {function} [selector] A function which takes the arguments from the\n     * callback and maps those a value to emit on the output Observable.\n     * @param {Scheduler} [scheduler] The scheduler on which to schedule the\n     * callbacks.\n     * @return {function(...params: *): Observable} A function which returns the\n     * Observable that delivers the same values the callback would deliver.\n     * @static true\n     * @name bindCallback\n     * @owner Observable\n     */\n    BoundCallbackObservable.create = function (func, selector, scheduler) {\n        if (selector === void 0) { selector = undefined; }\n        return function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i - 0] = arguments[_i];\n            }\n            return new BoundCallbackObservable(func, selector, args, scheduler);\n        };\n    };\n    BoundCallbackObservable.prototype._subscribe = function (subscriber) {\n        var callbackFunc = this.callbackFunc;\n        var args = this.args;\n        var scheduler = this.scheduler;\n        var subject = this.subject;\n        if (!scheduler) {\n            if (!subject) {\n                subject = this.subject = new AsyncSubject_1.AsyncSubject();\n                var handler = function handlerFn() {\n                    var innerArgs = [];\n                    for (var _i = 0; _i < arguments.length; _i++) {\n                        innerArgs[_i - 0] = arguments[_i];\n                    }\n                    var source = handlerFn.source;\n                    var selector = source.selector, subject = source.subject;\n                    if (selector) {\n                        var result_1 = tryCatch_1.tryCatch(selector).apply(this, innerArgs);\n                        if (result_1 === errorObject_1.errorObject) {\n                            subject.error(errorObject_1.errorObject.e);\n                        }\n                        else {\n                            subject.next(result_1);\n                            subject.complete();\n                        }\n                    }\n                    else {\n                        subject.next(innerArgs.length === 1 ? innerArgs[0] : innerArgs);\n                        subject.complete();\n                    }\n                };\n                // use named function instance to avoid closure.\n                handler.source = this;\n                var result = tryCatch_1.tryCatch(callbackFunc).apply(this, args.concat(handler));\n                if (result === errorObject_1.errorObject) {\n                    subject.error(errorObject_1.errorObject.e);\n                }\n            }\n            return subject.subscribe(subscriber);\n        }\n        else {\n            return scheduler.schedule(BoundCallbackObservable.dispatch, 0, { source: this, subscriber: subscriber });\n        }\n    };\n    BoundCallbackObservable.dispatch = function (state) {\n        var self = this;\n        var source = state.source, subscriber = state.subscriber;\n        var callbackFunc = source.callbackFunc, args = source.args, scheduler = source.scheduler;\n        var subject = source.subject;\n        if (!subject) {\n            subject = source.subject = new AsyncSubject_1.AsyncSubject();\n            var handler = function handlerFn() {\n                var innerArgs = [];\n                for (var _i = 0; _i < arguments.length; _i++) {\n                    innerArgs[_i - 0] = arguments[_i];\n                }\n                var source = handlerFn.source;\n                var selector = source.selector, subject = source.subject;\n                if (selector) {\n                    var result_2 = tryCatch_1.tryCatch(selector).apply(this, innerArgs);\n                    if (result_2 === errorObject_1.errorObject) {\n                        self.add(scheduler.schedule(dispatchError, 0, { err: errorObject_1.errorObject.e, subject: subject }));\n                    }\n                    else {\n                        self.add(scheduler.schedule(dispatchNext, 0, { value: result_2, subject: subject }));\n                    }\n                }\n                else {\n                    var value = innerArgs.length === 1 ? innerArgs[0] : innerArgs;\n                    self.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n                }\n            };\n            // use named function to pass values in without closure\n            handler.source = source;\n            var result = tryCatch_1.tryCatch(callbackFunc).apply(this, args.concat(handler));\n            if (result === errorObject_1.errorObject) {\n                subject.error(errorObject_1.errorObject.e);\n            }\n        }\n        self.add(subject.subscribe(subscriber));\n    };\n    return BoundCallbackObservable;\n}(Observable_1.Observable));\nexports.BoundCallbackObservable = BoundCallbackObservable;\nfunction dispatchNext(arg) {\n    var value = arg.value, subject = arg.subject;\n    subject.next(value);\n    subject.complete();\n}\nfunction dispatchError(arg) {\n    var err = arg.err, subject = arg.subject;\n    subject.error(err);\n}\n//# sourceMappingURL=BoundCallbackObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\nvar AsyncSubject_1 = require('../AsyncSubject');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar BoundNodeCallbackObservable = (function (_super) {\n    __extends(BoundNodeCallbackObservable, _super);\n    function BoundNodeCallbackObservable(callbackFunc, selector, args, scheduler) {\n        _super.call(this);\n        this.callbackFunc = callbackFunc;\n        this.selector = selector;\n        this.args = args;\n        this.scheduler = scheduler;\n    }\n    /* tslint:enable:max-line-length */\n    /**\n     * Converts a Node.js-style callback API to a function that returns an\n     * Observable.\n     *\n     * <span class=\"informal\">It's just like {@link bindCallback}, but the\n     * callback is expected to be of type `callback(error, result)`.</span>\n     *\n     * `bindNodeCallback` is not an operator because its input and output are not\n     * Observables. The input is a function `func` with some parameters, but the\n     * last parameter must be a callback function that `func` calls when it is\n     * done. The callback function is expected to follow Node.js conventions,\n     * where the first argument to the callback is an error, while remaining\n     * arguments are the callback result. The output of `bindNodeCallback` is a\n     * function that takes the same parameters as `func`, except the last one (the\n     * callback). When the output function is called with arguments, it will\n     * return an Observable where the results will be delivered to.\n     *\n     * @example <caption>Read a file from the filesystem and get the data as an Observable</caption>\n     * import * as fs from 'fs';\n     * var readFileAsObservable = Rx.Observable.bindNodeCallback(fs.readFile);\n     * var result = readFileAsObservable('./roadNames.txt', 'utf8');\n     * result.subscribe(x => console.log(x), e => console.error(e));\n     *\n     * @see {@link bindCallback}\n     * @see {@link from}\n     * @see {@link fromPromise}\n     *\n     * @param {function} func Function with a callback as the last parameter.\n     * @param {function} [selector] A function which takes the arguments from the\n     * callback and maps those a value to emit on the output Observable.\n     * @param {Scheduler} [scheduler] The scheduler on which to schedule the\n     * callbacks.\n     * @return {function(...params: *): Observable} A function which returns the\n     * Observable that delivers the same values the Node.js callback would\n     * deliver.\n     * @static true\n     * @name bindNodeCallback\n     * @owner Observable\n     */\n    BoundNodeCallbackObservable.create = function (func, selector, scheduler) {\n        if (selector === void 0) { selector = undefined; }\n        return function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i - 0] = arguments[_i];\n            }\n            return new BoundNodeCallbackObservable(func, selector, args, scheduler);\n        };\n    };\n    BoundNodeCallbackObservable.prototype._subscribe = function (subscriber) {\n        var callbackFunc = this.callbackFunc;\n        var args = this.args;\n        var scheduler = this.scheduler;\n        var subject = this.subject;\n        if (!scheduler) {\n            if (!subject) {\n                subject = this.subject = new AsyncSubject_1.AsyncSubject();\n                var handler = function handlerFn() {\n                    var innerArgs = [];\n                    for (var _i = 0; _i < arguments.length; _i++) {\n                        innerArgs[_i - 0] = arguments[_i];\n                    }\n                    var source = handlerFn.source;\n                    var selector = source.selector, subject = source.subject;\n                    var err = innerArgs.shift();\n                    if (err) {\n                        subject.error(err);\n                    }\n                    else if (selector) {\n                        var result_1 = tryCatch_1.tryCatch(selector).apply(this, innerArgs);\n                        if (result_1 === errorObject_1.errorObject) {\n                            subject.error(errorObject_1.errorObject.e);\n                        }\n                        else {\n                            subject.next(result_1);\n                            subject.complete();\n                        }\n                    }\n                    else {\n                        subject.next(innerArgs.length === 1 ? innerArgs[0] : innerArgs);\n                        subject.complete();\n                    }\n                };\n                // use named function instance to avoid closure.\n                handler.source = this;\n                var result = tryCatch_1.tryCatch(callbackFunc).apply(this, args.concat(handler));\n                if (result === errorObject_1.errorObject) {\n                    subject.error(errorObject_1.errorObject.e);\n                }\n            }\n            return subject.subscribe(subscriber);\n        }\n        else {\n            return scheduler.schedule(dispatch, 0, { source: this, subscriber: subscriber });\n        }\n    };\n    return BoundNodeCallbackObservable;\n}(Observable_1.Observable));\nexports.BoundNodeCallbackObservable = BoundNodeCallbackObservable;\nfunction dispatch(state) {\n    var self = this;\n    var source = state.source, subscriber = state.subscriber;\n    // XXX: cast to `any` to access to the private field in `source`.\n    var _a = source, callbackFunc = _a.callbackFunc, args = _a.args, scheduler = _a.scheduler;\n    var subject = source.subject;\n    if (!subject) {\n        subject = source.subject = new AsyncSubject_1.AsyncSubject();\n        var handler = function handlerFn() {\n            var innerArgs = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                innerArgs[_i - 0] = arguments[_i];\n            }\n            var source = handlerFn.source;\n            var selector = source.selector, subject = source.subject;\n            var err = innerArgs.shift();\n            if (err) {\n                subject.error(err);\n            }\n            else if (selector) {\n                var result_2 = tryCatch_1.tryCatch(selector).apply(this, innerArgs);\n                if (result_2 === errorObject_1.errorObject) {\n                    self.add(scheduler.schedule(dispatchError, 0, { err: errorObject_1.errorObject.e, subject: subject }));\n                }\n                else {\n                    self.add(scheduler.schedule(dispatchNext, 0, { value: result_2, subject: subject }));\n                }\n            }\n            else {\n                var value = innerArgs.length === 1 ? innerArgs[0] : innerArgs;\n                self.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n            }\n        };\n        // use named function to pass values in without closure\n        handler.source = source;\n        var result = tryCatch_1.tryCatch(callbackFunc).apply(this, args.concat(handler));\n        if (result === errorObject_1.errorObject) {\n            subject.error(errorObject_1.errorObject.e);\n        }\n    }\n    self.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n    var value = arg.value, subject = arg.subject;\n    subject.next(value);\n    subject.complete();\n}\nfunction dispatchError(arg) {\n    var err = arg.err, subject = arg.subject;\n    subject.error(err);\n}\n//# sourceMappingURL=BoundNodeCallbackObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('../Subject');\nvar Observable_1 = require('../Observable');\nvar Subscriber_1 = require('../Subscriber');\nvar Subscription_1 = require('../Subscription');\n/**\n * @class ConnectableObservable<T>\n */\nvar ConnectableObservable = (function (_super) {\n    __extends(ConnectableObservable, _super);\n    function ConnectableObservable(source, subjectFactory) {\n        _super.call(this);\n        this.source = source;\n        this.subjectFactory = subjectFactory;\n        this._refCount = 0;\n    }\n    ConnectableObservable.prototype._subscribe = function (subscriber) {\n        return this.getSubject().subscribe(subscriber);\n    };\n    ConnectableObservable.prototype.getSubject = function () {\n        var subject = this._subject;\n        if (!subject || subject.isStopped) {\n            this._subject = this.subjectFactory();\n        }\n        return this._subject;\n    };\n    ConnectableObservable.prototype.connect = function () {\n        var connection = this._connection;\n        if (!connection) {\n            connection = this._connection = new Subscription_1.Subscription();\n            connection.add(this.source\n                .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n            if (connection.closed) {\n                this._connection = null;\n                connection = Subscription_1.Subscription.EMPTY;\n            }\n            else {\n                this._connection = connection;\n            }\n        }\n        return connection;\n    };\n    ConnectableObservable.prototype.refCount = function () {\n        return this.lift(new RefCountOperator(this));\n    };\n    return ConnectableObservable;\n}(Observable_1.Observable));\nexports.ConnectableObservable = ConnectableObservable;\nexports.connectableObservableDescriptor = {\n    operator: { value: null },\n    _refCount: { value: 0, writable: true },\n    _subscribe: { value: ConnectableObservable.prototype._subscribe },\n    getSubject: { value: ConnectableObservable.prototype.getSubject },\n    connect: { value: ConnectableObservable.prototype.connect },\n    refCount: { value: ConnectableObservable.prototype.refCount }\n};\nvar ConnectableSubscriber = (function (_super) {\n    __extends(ConnectableSubscriber, _super);\n    function ConnectableSubscriber(destination, connectable) {\n        _super.call(this, destination);\n        this.connectable = connectable;\n    }\n    ConnectableSubscriber.prototype._error = function (err) {\n        this._unsubscribe();\n        _super.prototype._error.call(this, err);\n    };\n    ConnectableSubscriber.prototype._complete = function () {\n        this._unsubscribe();\n        _super.prototype._complete.call(this);\n    };\n    ConnectableSubscriber.prototype._unsubscribe = function () {\n        var connectable = this.connectable;\n        if (connectable) {\n            this.connectable = null;\n            var connection = connectable._connection;\n            connectable._refCount = 0;\n            connectable._subject = null;\n            connectable._connection = null;\n            if (connection) {\n                connection.unsubscribe();\n            }\n        }\n    };\n    return ConnectableSubscriber;\n}(Subject_1.SubjectSubscriber));\nvar RefCountOperator = (function () {\n    function RefCountOperator(connectable) {\n        this.connectable = connectable;\n    }\n    RefCountOperator.prototype.call = function (subscriber, source) {\n        var connectable = this.connectable;\n        connectable._refCount++;\n        var refCounter = new RefCountSubscriber(subscriber, connectable);\n        var subscription = source.subscribe(refCounter);\n        if (!refCounter.closed) {\n            refCounter.connection = connectable.connect();\n        }\n        return subscription;\n    };\n    return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n    __extends(RefCountSubscriber, _super);\n    function RefCountSubscriber(destination, connectable) {\n        _super.call(this, destination);\n        this.connectable = connectable;\n    }\n    RefCountSubscriber.prototype._unsubscribe = function () {\n        var connectable = this.connectable;\n        if (!connectable) {\n            this.connection = null;\n            return;\n        }\n        this.connectable = null;\n        var refCount = connectable._refCount;\n        if (refCount <= 0) {\n            this.connection = null;\n            return;\n        }\n        connectable._refCount = refCount - 1;\n        if (refCount > 1) {\n            this.connection = null;\n            return;\n        }\n        ///\n        // Compare the local RefCountSubscriber's connection Subscription to the\n        // connection Subscription on the shared ConnectableObservable. In cases\n        // where the ConnectableObservable source synchronously emits values, and\n        // the RefCountSubscriber's downstream Observers synchronously unsubscribe,\n        // execution continues to here before the RefCountOperator has a chance to\n        // supply the RefCountSubscriber with the shared connection Subscription.\n        // For example:\n        // ```\n        // Observable.range(0, 10)\n        //   .publish()\n        //   .refCount()\n        //   .take(5)\n        //   .subscribe();\n        // ```\n        // In order to account for this case, RefCountSubscriber should only dispose\n        // the ConnectableObservable's shared connection Subscription if the\n        // connection Subscription exists, *and* either:\n        //   a. RefCountSubscriber doesn't have a reference to the shared connection\n        //      Subscription yet, or,\n        //   b. RefCountSubscriber's connection Subscription reference is identical\n        //      to the shared connection Subscription\n        ///\n        var connection = this.connection;\n        var sharedConnection = connectable._connection;\n        this.connection = null;\n        if (sharedConnection && (!connection || sharedConnection === connection)) {\n            sharedConnection.unsubscribe();\n        }\n    };\n    return RefCountSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar DeferObservable = (function (_super) {\n    __extends(DeferObservable, _super);\n    function DeferObservable(observableFactory) {\n        _super.call(this);\n        this.observableFactory = observableFactory;\n    }\n    /**\n     * Creates an Observable that, on subscribe, calls an Observable factory to\n     * make an Observable for each new Observer.\n     *\n     * <span class=\"informal\">Creates the Observable lazily, that is, only when it\n     * is subscribed.\n     * </span>\n     *\n     * <img src=\"./img/defer.png\" width=\"100%\">\n     *\n     * `defer` allows you to create the Observable only when the Observer\n     * subscribes, and create a fresh Observable for each Observer. It waits until\n     * an Observer subscribes to it, and then it generates an Observable,\n     * typically with an Observable factory function. It does this afresh for each\n     * subscriber, so although each subscriber may think it is subscribing to the\n     * same Observable, in fact each subscriber gets its own individual\n     * Observable.\n     *\n     * @example <caption>Subscribe to either an Observable of clicks or an Observable of interval, at random</caption>\n     * var clicksOrInterval = Rx.Observable.defer(function () {\n     *   if (Math.random() > 0.5) {\n     *     return Rx.Observable.fromEvent(document, 'click');\n     *   } else {\n     *     return Rx.Observable.interval(1000);\n     *   }\n     * });\n     * clicksOrInterval.subscribe(x => console.log(x));\n     *\n     * // Results in the following behavior:\n     * // If the result of Math.random() is greater than 0.5 it will listen\n     * // for clicks anywhere on the \"document\"; when document is clicked it\n     * // will log a MouseEvent object to the console. If the result is less\n     * // than 0.5 it will emit ascending numbers, one every second(1000ms).\n     *\n     * @see {@link create}\n     *\n     * @param {function(): Observable|Promise} observableFactory The Observable\n     * factory function to invoke for each Observer that subscribes to the output\n     * Observable. May also return a Promise, which will be converted on the fly\n     * to an Observable.\n     * @return {Observable} An Observable whose Observers' subscriptions trigger\n     * an invocation of the given Observable factory function.\n     * @static true\n     * @name defer\n     * @owner Observable\n     */\n    DeferObservable.create = function (observableFactory) {\n        return new DeferObservable(observableFactory);\n    };\n    DeferObservable.prototype._subscribe = function (subscriber) {\n        return new DeferSubscriber(subscriber, this.observableFactory);\n    };\n    return DeferObservable;\n}(Observable_1.Observable));\nexports.DeferObservable = DeferObservable;\nvar DeferSubscriber = (function (_super) {\n    __extends(DeferSubscriber, _super);\n    function DeferSubscriber(destination, factory) {\n        _super.call(this, destination);\n        this.factory = factory;\n        this.tryDefer();\n    }\n    DeferSubscriber.prototype.tryDefer = function () {\n        try {\n            this._callFactory();\n        }\n        catch (err) {\n            this._error(err);\n        }\n    };\n    DeferSubscriber.prototype._callFactory = function () {\n        var result = this.factory();\n        if (result) {\n            this.add(subscribeToResult_1.subscribeToResult(this, result));\n        }\n    };\n    return DeferSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=DeferObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar EmptyObservable = (function (_super) {\n    __extends(EmptyObservable, _super);\n    function EmptyObservable(scheduler) {\n        _super.call(this);\n        this.scheduler = scheduler;\n    }\n    /**\n     * Creates an Observable that emits no items to the Observer and immediately\n     * emits a complete notification.\n     *\n     * <span class=\"informal\">Just emits 'complete', and nothing else.\n     * </span>\n     *\n     * <img src=\"./img/empty.png\" width=\"100%\">\n     *\n     * This static operator is useful for creating a simple Observable that only\n     * emits the complete notification. It can be used for composing with other\n     * Observables, such as in a {@link mergeMap}.\n     *\n     * @example <caption>Emit the number 7, then complete.</caption>\n     * var result = Rx.Observable.empty().startWith(7);\n     * result.subscribe(x => console.log(x));\n     *\n     * @example <caption>Map and flatten only odd numbers to the sequence 'a', 'b', 'c'</caption>\n     * var interval = Rx.Observable.interval(1000);\n     * var result = interval.mergeMap(x =>\n     *   x % 2 === 1 ? Rx.Observable.of('a', 'b', 'c') : Rx.Observable.empty()\n     * );\n     * result.subscribe(x => console.log(x));\n     *\n     * // Results in the following to the console:\n     * // x is equal to the count on the interval eg(0,1,2,3,...)\n     * // x will occur every 1000ms\n     * // if x % 2 is equal to 1 print abc\n     * // if x % 2 is not equal to 1 nothing will be output\n     *\n     * @see {@link create}\n     * @see {@link never}\n     * @see {@link of}\n     * @see {@link throw}\n     *\n     * @param {Scheduler} [scheduler] A {@link Scheduler} to use for scheduling\n     * the emission of the complete notification.\n     * @return {Observable} An \"empty\" Observable: emits only the complete\n     * notification.\n     * @static true\n     * @name empty\n     * @owner Observable\n     */\n    EmptyObservable.create = function (scheduler) {\n        return new EmptyObservable(scheduler);\n    };\n    EmptyObservable.dispatch = function (arg) {\n        var subscriber = arg.subscriber;\n        subscriber.complete();\n    };\n    EmptyObservable.prototype._subscribe = function (subscriber) {\n        var scheduler = this.scheduler;\n        if (scheduler) {\n            return scheduler.schedule(EmptyObservable.dispatch, 0, { subscriber: subscriber });\n        }\n        else {\n            subscriber.complete();\n        }\n    };\n    return EmptyObservable;\n}(Observable_1.Observable));\nexports.EmptyObservable = EmptyObservable;\n//# sourceMappingURL=EmptyObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar ErrorObservable = (function (_super) {\n    __extends(ErrorObservable, _super);\n    function ErrorObservable(error, scheduler) {\n        _super.call(this);\n        this.error = error;\n        this.scheduler = scheduler;\n    }\n    /**\n     * Creates an Observable that emits no items to the Observer and immediately\n     * emits an error notification.\n     *\n     * <span class=\"informal\">Just emits 'error', and nothing else.\n     * </span>\n     *\n     * <img src=\"./img/throw.png\" width=\"100%\">\n     *\n     * This static operator is useful for creating a simple Observable that only\n     * emits the error notification. It can be used for composing with other\n     * Observables, such as in a {@link mergeMap}.\n     *\n     * @example <caption>Emit the number 7, then emit an error.</caption>\n     * var result = Rx.Observable.throw(new Error('oops!')).startWith(7);\n     * result.subscribe(x => console.log(x), e => console.error(e));\n     *\n     * @example <caption>Map and flattens numbers to the sequence 'a', 'b', 'c', but throw an error for 13</caption>\n     * var interval = Rx.Observable.interval(1000);\n     * var result = interval.mergeMap(x =>\n     *   x === 13 ?\n     *     Rx.Observable.throw('Thirteens are bad') :\n     *     Rx.Observable.of('a', 'b', 'c')\n     * );\n     * result.subscribe(x => console.log(x), e => console.error(e));\n     *\n     * @see {@link create}\n     * @see {@link empty}\n     * @see {@link never}\n     * @see {@link of}\n     *\n     * @param {any} error The particular Error to pass to the error notification.\n     * @param {Scheduler} [scheduler] A {@link Scheduler} to use for scheduling\n     * the emission of the error notification.\n     * @return {Observable} An error Observable: emits only the error notification\n     * using the given error argument.\n     * @static true\n     * @name throw\n     * @owner Observable\n     */\n    ErrorObservable.create = function (error, scheduler) {\n        return new ErrorObservable(error, scheduler);\n    };\n    ErrorObservable.dispatch = function (arg) {\n        var error = arg.error, subscriber = arg.subscriber;\n        subscriber.error(error);\n    };\n    ErrorObservable.prototype._subscribe = function (subscriber) {\n        var error = this.error;\n        var scheduler = this.scheduler;\n        if (scheduler) {\n            return scheduler.schedule(ErrorObservable.dispatch, 0, {\n                error: error, subscriber: subscriber\n            });\n        }\n        else {\n            subscriber.error(error);\n        }\n    };\n    return ErrorObservable;\n}(Observable_1.Observable));\nexports.ErrorObservable = ErrorObservable;\n//# sourceMappingURL=ErrorObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar EmptyObservable_1 = require('./EmptyObservable');\nvar isArray_1 = require('../util/isArray');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar ForkJoinObservable = (function (_super) {\n    __extends(ForkJoinObservable, _super);\n    function ForkJoinObservable(sources, resultSelector) {\n        _super.call(this);\n        this.sources = sources;\n        this.resultSelector = resultSelector;\n    }\n    /* tslint:enable:max-line-length */\n    /**\n     * @param sources\n     * @return {any}\n     * @static true\n     * @name forkJoin\n     * @owner Observable\n     */\n    ForkJoinObservable.create = function () {\n        var sources = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            sources[_i - 0] = arguments[_i];\n        }\n        if (sources === null || arguments.length === 0) {\n            return new EmptyObservable_1.EmptyObservable();\n        }\n        var resultSelector = null;\n        if (typeof sources[sources.length - 1] === 'function') {\n            resultSelector = sources.pop();\n        }\n        // if the first and only other argument besides the resultSelector is an array\n        // assume it's been called with `forkJoin([obs1, obs2, obs3], resultSelector)`\n        if (sources.length === 1 && isArray_1.isArray(sources[0])) {\n            sources = sources[0];\n        }\n        if (sources.length === 0) {\n            return new EmptyObservable_1.EmptyObservable();\n        }\n        return new ForkJoinObservable(sources, resultSelector);\n    };\n    ForkJoinObservable.prototype._subscribe = function (subscriber) {\n        return new ForkJoinSubscriber(subscriber, this.sources, this.resultSelector);\n    };\n    return ForkJoinObservable;\n}(Observable_1.Observable));\nexports.ForkJoinObservable = ForkJoinObservable;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ForkJoinSubscriber = (function (_super) {\n    __extends(ForkJoinSubscriber, _super);\n    function ForkJoinSubscriber(destination, sources, resultSelector) {\n        _super.call(this, destination);\n        this.sources = sources;\n        this.resultSelector = resultSelector;\n        this.completed = 0;\n        this.haveValues = 0;\n        var len = sources.length;\n        this.total = len;\n        this.values = new Array(len);\n        for (var i = 0; i < len; i++) {\n            var source = sources[i];\n            var innerSubscription = subscribeToResult_1.subscribeToResult(this, source, null, i);\n            if (innerSubscription) {\n                innerSubscription.outerIndex = i;\n                this.add(innerSubscription);\n            }\n        }\n    }\n    ForkJoinSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.values[outerIndex] = innerValue;\n        if (!innerSub._hasValue) {\n            innerSub._hasValue = true;\n            this.haveValues++;\n        }\n    };\n    ForkJoinSubscriber.prototype.notifyComplete = function (innerSub) {\n        var destination = this.destination;\n        var _a = this, haveValues = _a.haveValues, resultSelector = _a.resultSelector, values = _a.values;\n        var len = values.length;\n        if (!innerSub._hasValue) {\n            destination.complete();\n            return;\n        }\n        this.completed++;\n        if (this.completed !== len) {\n            return;\n        }\n        if (haveValues === len) {\n            var value = resultSelector ? resultSelector.apply(this, values) : values;\n            destination.next(value);\n        }\n        destination.complete();\n    };\n    return ForkJoinSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=ForkJoinObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar tryCatch_1 = require('../util/tryCatch');\nvar isFunction_1 = require('../util/isFunction');\nvar errorObject_1 = require('../util/errorObject');\nvar Subscription_1 = require('../Subscription');\nvar toString = Object.prototype.toString;\nfunction isNodeStyleEventEmmitter(sourceObj) {\n    return !!sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n    return !!sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isNodeList(sourceObj) {\n    return !!sourceObj && toString.call(sourceObj) === '[object NodeList]';\n}\nfunction isHTMLCollection(sourceObj) {\n    return !!sourceObj && toString.call(sourceObj) === '[object HTMLCollection]';\n}\nfunction isEventTarget(sourceObj) {\n    return !!sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar FromEventObservable = (function (_super) {\n    __extends(FromEventObservable, _super);\n    function FromEventObservable(sourceObj, eventName, selector, options) {\n        _super.call(this);\n        this.sourceObj = sourceObj;\n        this.eventName = eventName;\n        this.selector = selector;\n        this.options = options;\n    }\n    /* tslint:enable:max-line-length */\n    /**\n     * Creates an Observable that emits events of a specific type coming from the\n     * given event target.\n     *\n     * <span class=\"informal\">Creates an Observable from DOM events, or Node\n     * EventEmitter events or others.</span>\n     *\n     * <img src=\"./img/fromEvent.png\" width=\"100%\">\n     *\n     * Creates an Observable by attaching an event listener to an \"event target\",\n     * which may be an object with `addEventListener` and `removeEventListener`,\n     * a Node.js EventEmitter, a jQuery style EventEmitter, a NodeList from the\n     * DOM, or an HTMLCollection from the DOM. The event handler is attached when\n     * the output Observable is subscribed, and removed when the Subscription is\n     * unsubscribed.\n     *\n     * @example <caption>Emits clicks happening on the DOM document</caption>\n     * var clicks = Rx.Observable.fromEvent(document, 'click');\n     * clicks.subscribe(x => console.log(x));\n     *\n     * // Results in:\n     * // MouseEvent object logged to console everytime a click\n     * // occurs on the document.\n     *\n     * @see {@link from}\n     * @see {@link fromEventPattern}\n     *\n     * @param {EventTargetLike} target The DOMElement, event target, Node.js\n     * EventEmitter, NodeList or HTMLCollection to attach the event handler to.\n     * @param {string} eventName The event name of interest, being emitted by the\n     * `target`.\n     * @param {EventListenerOptions} [options] Options to pass through to addEventListener\n     * @param {SelectorMethodSignature<T>} [selector] An optional function to\n     * post-process results. It takes the arguments from the event handler and\n     * should return a single value.\n     * @return {Observable<T>}\n     * @static true\n     * @name fromEvent\n     * @owner Observable\n     */\n    FromEventObservable.create = function (target, eventName, options, selector) {\n        if (isFunction_1.isFunction(options)) {\n            selector = options;\n            options = undefined;\n        }\n        return new FromEventObservable(target, eventName, selector, options);\n    };\n    FromEventObservable.setupSubscription = function (sourceObj, eventName, handler, subscriber, options) {\n        var unsubscribe;\n        if (isNodeList(sourceObj) || isHTMLCollection(sourceObj)) {\n            for (var i = 0, len = sourceObj.length; i < len; i++) {\n                FromEventObservable.setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n            }\n        }\n        else if (isEventTarget(sourceObj)) {\n            var source_1 = sourceObj;\n            sourceObj.addEventListener(eventName, handler, options);\n            unsubscribe = function () { return source_1.removeEventListener(eventName, handler); };\n        }\n        else if (isJQueryStyleEventEmitter(sourceObj)) {\n            var source_2 = sourceObj;\n            sourceObj.on(eventName, handler);\n            unsubscribe = function () { return source_2.off(eventName, handler); };\n        }\n        else if (isNodeStyleEventEmmitter(sourceObj)) {\n            var source_3 = sourceObj;\n            sourceObj.addListener(eventName, handler);\n            unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n        }\n        else {\n            throw new TypeError('Invalid event target');\n        }\n        subscriber.add(new Subscription_1.Subscription(unsubscribe));\n    };\n    FromEventObservable.prototype._subscribe = function (subscriber) {\n        var sourceObj = this.sourceObj;\n        var eventName = this.eventName;\n        var options = this.options;\n        var selector = this.selector;\n        var handler = selector ? function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i - 0] = arguments[_i];\n            }\n            var result = tryCatch_1.tryCatch(selector).apply(void 0, args);\n            if (result === errorObject_1.errorObject) {\n                subscriber.error(errorObject_1.errorObject.e);\n            }\n            else {\n                subscriber.next(result);\n            }\n        } : function (e) { return subscriber.next(e); };\n        FromEventObservable.setupSubscription(sourceObj, eventName, handler, subscriber, options);\n    };\n    return FromEventObservable;\n}(Observable_1.Observable));\nexports.FromEventObservable = FromEventObservable;\n//# sourceMappingURL=FromEventObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar Subscription_1 = require('../Subscription');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar FromEventPatternObservable = (function (_super) {\n    __extends(FromEventPatternObservable, _super);\n    function FromEventPatternObservable(addHandler, removeHandler, selector) {\n        _super.call(this);\n        this.addHandler = addHandler;\n        this.removeHandler = removeHandler;\n        this.selector = selector;\n    }\n    /**\n     * Creates an Observable from an API based on addHandler/removeHandler\n     * functions.\n     *\n     * <span class=\"informal\">Converts any addHandler/removeHandler API to an\n     * Observable.</span>\n     *\n     * <img src=\"./img/fromEventPattern.png\" width=\"100%\">\n     *\n     * Creates an Observable by using the `addHandler` and `removeHandler`\n     * functions to add and remove the handlers, with an optional selector\n     * function to project the event arguments to a result. The `addHandler` is\n     * called when the output Observable is subscribed, and `removeHandler` is\n     * called when the Subscription is unsubscribed.\n     *\n     * @example <caption>Emits clicks happening on the DOM document</caption>\n     * function addClickHandler(handler) {\n     *   document.addEventListener('click', handler);\n     * }\n     *\n     * function removeClickHandler(handler) {\n     *   document.removeEventListener('click', handler);\n     * }\n     *\n     * var clicks = Rx.Observable.fromEventPattern(\n     *   addClickHandler,\n     *   removeClickHandler\n     * );\n     * clicks.subscribe(x => console.log(x));\n     *\n     * @see {@link from}\n     * @see {@link fromEvent}\n     *\n     * @param {function(handler: Function): any} addHandler A function that takes\n     * a `handler` function as argument and attaches it somehow to the actual\n     * source of events.\n     * @param {function(handler: Function): void} removeHandler A function that\n     * takes a `handler` function as argument and removes it in case it was\n     * previously attached using `addHandler`.\n     * @param {function(...args: any): T} [selector] An optional function to\n     * post-process results. It takes the arguments from the event handler and\n     * should return a single value.\n     * @return {Observable<T>}\n     * @static true\n     * @name fromEventPattern\n     * @owner Observable\n     */\n    FromEventPatternObservable.create = function (addHandler, removeHandler, selector) {\n        return new FromEventPatternObservable(addHandler, removeHandler, selector);\n    };\n    FromEventPatternObservable.prototype._subscribe = function (subscriber) {\n        var _this = this;\n        var removeHandler = this.removeHandler;\n        var handler = !!this.selector ? function () {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i - 0] = arguments[_i];\n            }\n            _this._callSelector(subscriber, args);\n        } : function (e) { subscriber.next(e); };\n        this._callAddHandler(handler, subscriber);\n        subscriber.add(new Subscription_1.Subscription(function () {\n            //TODO: determine whether or not to forward to error handler\n            removeHandler(handler);\n        }));\n    };\n    FromEventPatternObservable.prototype._callSelector = function (subscriber, args) {\n        try {\n            var result = this.selector.apply(this, args);\n            subscriber.next(result);\n        }\n        catch (e) {\n            subscriber.error(e);\n        }\n    };\n    FromEventPatternObservable.prototype._callAddHandler = function (handler, errorSubscriber) {\n        try {\n            this.addHandler(handler);\n        }\n        catch (e) {\n            errorSubscriber.error(e);\n        }\n    };\n    return FromEventPatternObservable;\n}(Observable_1.Observable));\nexports.FromEventPatternObservable = FromEventPatternObservable;\n//# sourceMappingURL=FromEventPatternObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar isArray_1 = require('../util/isArray');\nvar isPromise_1 = require('../util/isPromise');\nvar PromiseObservable_1 = require('./PromiseObservable');\nvar IteratorObservable_1 = require('./IteratorObservable');\nvar ArrayObservable_1 = require('./ArrayObservable');\nvar ArrayLikeObservable_1 = require('./ArrayLikeObservable');\nvar iterator_1 = require('../symbol/iterator');\nvar Observable_1 = require('../Observable');\nvar observeOn_1 = require('../operator/observeOn');\nvar observable_1 = require('../symbol/observable');\nvar isArrayLike = (function (x) { return x && typeof x.length === 'number'; });\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar FromObservable = (function (_super) {\n    __extends(FromObservable, _super);\n    function FromObservable(ish, scheduler) {\n        _super.call(this, null);\n        this.ish = ish;\n        this.scheduler = scheduler;\n    }\n    /**\n     * Creates an Observable from an Array, an array-like object, a Promise, an\n     * iterable object, or an Observable-like object.\n     *\n     * <span class=\"informal\">Converts almost anything to an Observable.</span>\n     *\n     * <img src=\"./img/from.png\" width=\"100%\">\n     *\n     * Convert various other objects and data types into Observables. `from`\n     * converts a Promise or an array-like or an\n     * [iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#iterable)\n     * object into an Observable that emits the items in that promise or array or\n     * iterable. A String, in this context, is treated as an array of characters.\n     * Observable-like objects (contains a function named with the ES2015 Symbol\n     * for Observable) can also be converted through this operator.\n     *\n     * @example <caption>Converts an array to an Observable</caption>\n     * var array = [10, 20, 30];\n     * var result = Rx.Observable.from(array);\n     * result.subscribe(x => console.log(x));\n     *\n     * // Results in the following:\n     * // 10 20 30\n     *\n     * @example <caption>Convert an infinite iterable (from a generator) to an Observable</caption>\n     * function* generateDoubles(seed) {\n     *   var i = seed;\n     *   while (true) {\n     *     yield i;\n     *     i = 2 * i; // double it\n     *   }\n     * }\n     *\n     * var iterator = generateDoubles(3);\n     * var result = Rx.Observable.from(iterator).take(10);\n     * result.subscribe(x => console.log(x));\n     *\n     * // Results in the following:\n     * // 3 6 12 24 48 96 192 384 768 1536\n     *\n     * @see {@link create}\n     * @see {@link fromEvent}\n     * @see {@link fromEventPattern}\n     * @see {@link fromPromise}\n     *\n     * @param {ObservableInput<T>} ish A subscribable object, a Promise, an\n     * Observable-like, an Array, an iterable or an array-like object to be\n     * converted.\n     * @param {Scheduler} [scheduler] The scheduler on which to schedule the\n     * emissions of values.\n     * @return {Observable<T>} The Observable whose values are originally from the\n     * input object that was converted.\n     * @static true\n     * @name from\n     * @owner Observable\n     */\n    FromObservable.create = function (ish, scheduler) {\n        if (ish != null) {\n            if (typeof ish[observable_1.$$observable] === 'function') {\n                if (ish instanceof Observable_1.Observable && !scheduler) {\n                    return ish;\n                }\n                return new FromObservable(ish, scheduler);\n            }\n            else if (isArray_1.isArray(ish)) {\n                return new ArrayObservable_1.ArrayObservable(ish, scheduler);\n            }\n            else if (isPromise_1.isPromise(ish)) {\n                return new PromiseObservable_1.PromiseObservable(ish, scheduler);\n            }\n            else if (typeof ish[iterator_1.$$iterator] === 'function' || typeof ish === 'string') {\n                return new IteratorObservable_1.IteratorObservable(ish, scheduler);\n            }\n            else if (isArrayLike(ish)) {\n                return new ArrayLikeObservable_1.ArrayLikeObservable(ish, scheduler);\n            }\n        }\n        throw new TypeError((ish !== null && typeof ish || ish) + ' is not observable');\n    };\n    FromObservable.prototype._subscribe = function (subscriber) {\n        var ish = this.ish;\n        var scheduler = this.scheduler;\n        if (scheduler == null) {\n            return ish[observable_1.$$observable]().subscribe(subscriber);\n        }\n        else {\n            return ish[observable_1.$$observable]().subscribe(new observeOn_1.ObserveOnSubscriber(subscriber, scheduler, 0));\n        }\n    };\n    return FromObservable;\n}(Observable_1.Observable));\nexports.FromObservable = FromObservable;\n//# sourceMappingURL=FromObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar isScheduler_1 = require('../util/isScheduler');\nvar selfSelector = function (value) { return value; };\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar GenerateObservable = (function (_super) {\n    __extends(GenerateObservable, _super);\n    function GenerateObservable(initialState, condition, iterate, resultSelector, scheduler) {\n        _super.call(this);\n        this.initialState = initialState;\n        this.condition = condition;\n        this.iterate = iterate;\n        this.resultSelector = resultSelector;\n        this.scheduler = scheduler;\n    }\n    GenerateObservable.create = function (initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {\n        if (arguments.length == 1) {\n            return new GenerateObservable(initialStateOrOptions.initialState, initialStateOrOptions.condition, initialStateOrOptions.iterate, initialStateOrOptions.resultSelector || selfSelector, initialStateOrOptions.scheduler);\n        }\n        if (resultSelectorOrObservable === undefined || isScheduler_1.isScheduler(resultSelectorOrObservable)) {\n            return new GenerateObservable(initialStateOrOptions, condition, iterate, selfSelector, resultSelectorOrObservable);\n        }\n        return new GenerateObservable(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler);\n    };\n    GenerateObservable.prototype._subscribe = function (subscriber) {\n        var state = this.initialState;\n        if (this.scheduler) {\n            return this.scheduler.schedule(GenerateObservable.dispatch, 0, {\n                subscriber: subscriber,\n                iterate: this.iterate,\n                condition: this.condition,\n                resultSelector: this.resultSelector,\n                state: state });\n        }\n        var _a = this, condition = _a.condition, resultSelector = _a.resultSelector, iterate = _a.iterate;\n        do {\n            if (condition) {\n                var conditionResult = void 0;\n                try {\n                    conditionResult = condition(state);\n                }\n                catch (err) {\n                    subscriber.error(err);\n                    return;\n                }\n                if (!conditionResult) {\n                    subscriber.complete();\n                    break;\n                }\n            }\n            var value = void 0;\n            try {\n                value = resultSelector(state);\n            }\n            catch (err) {\n                subscriber.error(err);\n                return;\n            }\n            subscriber.next(value);\n            if (subscriber.closed) {\n                break;\n            }\n            try {\n                state = iterate(state);\n            }\n            catch (err) {\n                subscriber.error(err);\n                return;\n            }\n        } while (true);\n    };\n    GenerateObservable.dispatch = function (state) {\n        var subscriber = state.subscriber, condition = state.condition;\n        if (subscriber.closed) {\n            return;\n        }\n        if (state.needIterate) {\n            try {\n                state.state = state.iterate(state.state);\n            }\n            catch (err) {\n                subscriber.error(err);\n                return;\n            }\n        }\n        else {\n            state.needIterate = true;\n        }\n        if (condition) {\n            var conditionResult = void 0;\n            try {\n                conditionResult = condition(state.state);\n            }\n            catch (err) {\n                subscriber.error(err);\n                return;\n            }\n            if (!conditionResult) {\n                subscriber.complete();\n                return;\n            }\n            if (subscriber.closed) {\n                return;\n            }\n        }\n        var value;\n        try {\n            value = state.resultSelector(state.state);\n        }\n        catch (err) {\n            subscriber.error(err);\n            return;\n        }\n        if (subscriber.closed) {\n            return;\n        }\n        subscriber.next(value);\n        if (subscriber.closed) {\n            return;\n        }\n        return this.schedule(state);\n    };\n    return GenerateObservable;\n}(Observable_1.Observable));\nexports.GenerateObservable = GenerateObservable;\n//# sourceMappingURL=GenerateObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar IfObservable = (function (_super) {\n    __extends(IfObservable, _super);\n    function IfObservable(condition, thenSource, elseSource) {\n        _super.call(this);\n        this.condition = condition;\n        this.thenSource = thenSource;\n        this.elseSource = elseSource;\n    }\n    IfObservable.create = function (condition, thenSource, elseSource) {\n        return new IfObservable(condition, thenSource, elseSource);\n    };\n    IfObservable.prototype._subscribe = function (subscriber) {\n        var _a = this, condition = _a.condition, thenSource = _a.thenSource, elseSource = _a.elseSource;\n        return new IfSubscriber(subscriber, condition, thenSource, elseSource);\n    };\n    return IfObservable;\n}(Observable_1.Observable));\nexports.IfObservable = IfObservable;\nvar IfSubscriber = (function (_super) {\n    __extends(IfSubscriber, _super);\n    function IfSubscriber(destination, condition, thenSource, elseSource) {\n        _super.call(this, destination);\n        this.condition = condition;\n        this.thenSource = thenSource;\n        this.elseSource = elseSource;\n        this.tryIf();\n    }\n    IfSubscriber.prototype.tryIf = function () {\n        var _a = this, condition = _a.condition, thenSource = _a.thenSource, elseSource = _a.elseSource;\n        var result;\n        try {\n            result = condition();\n            var source = result ? thenSource : elseSource;\n            if (source) {\n                this.add(subscribeToResult_1.subscribeToResult(this, source));\n            }\n            else {\n                this._complete();\n            }\n        }\n        catch (err) {\n            this._error(err);\n        }\n    };\n    return IfSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=IfObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar isNumeric_1 = require('../util/isNumeric');\nvar Observable_1 = require('../Observable');\nvar async_1 = require('../scheduler/async');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar IntervalObservable = (function (_super) {\n    __extends(IntervalObservable, _super);\n    function IntervalObservable(period, scheduler) {\n        if (period === void 0) { period = 0; }\n        if (scheduler === void 0) { scheduler = async_1.async; }\n        _super.call(this);\n        this.period = period;\n        this.scheduler = scheduler;\n        if (!isNumeric_1.isNumeric(period) || period < 0) {\n            this.period = 0;\n        }\n        if (!scheduler || typeof scheduler.schedule !== 'function') {\n            this.scheduler = async_1.async;\n        }\n    }\n    /**\n     * Creates an Observable that emits sequential numbers every specified\n     * interval of time, on a specified Scheduler.\n     *\n     * <span class=\"informal\">Emits incremental numbers periodically in time.\n     * </span>\n     *\n     * <img src=\"./img/interval.png\" width=\"100%\">\n     *\n     * `interval` returns an Observable that emits an infinite sequence of\n     * ascending integers, with a constant interval of time of your choosing\n     * between those emissions. The first emission is not sent immediately, but\n     * only after the first period has passed. By default, this operator uses the\n     * `async` Scheduler to provide a notion of time, but you may pass any\n     * Scheduler to it.\n     *\n     * @example <caption>Emits ascending numbers, one every second (1000ms)</caption>\n     * var numbers = Rx.Observable.interval(1000);\n     * numbers.subscribe(x => console.log(x));\n     *\n     * @see {@link timer}\n     * @see {@link delay}\n     *\n     * @param {number} [period=0] The interval size in milliseconds (by default)\n     * or the time unit determined by the scheduler's clock.\n     * @param {Scheduler} [scheduler=async] The Scheduler to use for scheduling\n     * the emission of values, and providing a notion of \"time\".\n     * @return {Observable} An Observable that emits a sequential number each time\n     * interval.\n     * @static true\n     * @name interval\n     * @owner Observable\n     */\n    IntervalObservable.create = function (period, scheduler) {\n        if (period === void 0) { period = 0; }\n        if (scheduler === void 0) { scheduler = async_1.async; }\n        return new IntervalObservable(period, scheduler);\n    };\n    IntervalObservable.dispatch = function (state) {\n        var index = state.index, subscriber = state.subscriber, period = state.period;\n        subscriber.next(index);\n        if (subscriber.closed) {\n            return;\n        }\n        state.index += 1;\n        this.schedule(state, period);\n    };\n    IntervalObservable.prototype._subscribe = function (subscriber) {\n        var index = 0;\n        var period = this.period;\n        var scheduler = this.scheduler;\n        subscriber.add(scheduler.schedule(IntervalObservable.dispatch, period, {\n            index: index, subscriber: subscriber, period: period\n        }));\n    };\n    return IntervalObservable;\n}(Observable_1.Observable));\nexports.IntervalObservable = IntervalObservable;\n//# sourceMappingURL=IntervalObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar root_1 = require('../util/root');\nvar Observable_1 = require('../Observable');\nvar iterator_1 = require('../symbol/iterator');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar IteratorObservable = (function (_super) {\n    __extends(IteratorObservable, _super);\n    function IteratorObservable(iterator, scheduler) {\n        _super.call(this);\n        this.scheduler = scheduler;\n        if (iterator == null) {\n            throw new Error('iterator cannot be null.');\n        }\n        this.iterator = getIterator(iterator);\n    }\n    IteratorObservable.create = function (iterator, scheduler) {\n        return new IteratorObservable(iterator, scheduler);\n    };\n    IteratorObservable.dispatch = function (state) {\n        var index = state.index, hasError = state.hasError, iterator = state.iterator, subscriber = state.subscriber;\n        if (hasError) {\n            subscriber.error(state.error);\n            return;\n        }\n        var result = iterator.next();\n        if (result.done) {\n            subscriber.complete();\n            return;\n        }\n        subscriber.next(result.value);\n        state.index = index + 1;\n        if (subscriber.closed) {\n            if (typeof iterator.return === 'function') {\n                iterator.return();\n            }\n            return;\n        }\n        this.schedule(state);\n    };\n    IteratorObservable.prototype._subscribe = function (subscriber) {\n        var index = 0;\n        var _a = this, iterator = _a.iterator, scheduler = _a.scheduler;\n        if (scheduler) {\n            return scheduler.schedule(IteratorObservable.dispatch, 0, {\n                index: index, iterator: iterator, subscriber: subscriber\n            });\n        }\n        else {\n            do {\n                var result = iterator.next();\n                if (result.done) {\n                    subscriber.complete();\n                    break;\n                }\n                else {\n                    subscriber.next(result.value);\n                }\n                if (subscriber.closed) {\n                    if (typeof iterator.return === 'function') {\n                        iterator.return();\n                    }\n                    break;\n                }\n            } while (true);\n        }\n    };\n    return IteratorObservable;\n}(Observable_1.Observable));\nexports.IteratorObservable = IteratorObservable;\nvar StringIterator = (function () {\n    function StringIterator(str, idx, len) {\n        if (idx === void 0) { idx = 0; }\n        if (len === void 0) { len = str.length; }\n        this.str = str;\n        this.idx = idx;\n        this.len = len;\n    }\n    StringIterator.prototype[iterator_1.$$iterator] = function () { return (this); };\n    StringIterator.prototype.next = function () {\n        return this.idx < this.len ? {\n            done: false,\n            value: this.str.charAt(this.idx++)\n        } : {\n            done: true,\n            value: undefined\n        };\n    };\n    return StringIterator;\n}());\nvar ArrayIterator = (function () {\n    function ArrayIterator(arr, idx, len) {\n        if (idx === void 0) { idx = 0; }\n        if (len === void 0) { len = toLength(arr); }\n        this.arr = arr;\n        this.idx = idx;\n        this.len = len;\n    }\n    ArrayIterator.prototype[iterator_1.$$iterator] = function () { return this; };\n    ArrayIterator.prototype.next = function () {\n        return this.idx < this.len ? {\n            done: false,\n            value: this.arr[this.idx++]\n        } : {\n            done: true,\n            value: undefined\n        };\n    };\n    return ArrayIterator;\n}());\nfunction getIterator(obj) {\n    var i = obj[iterator_1.$$iterator];\n    if (!i && typeof obj === 'string') {\n        return new StringIterator(obj);\n    }\n    if (!i && obj.length !== undefined) {\n        return new ArrayIterator(obj);\n    }\n    if (!i) {\n        throw new TypeError('object is not iterable');\n    }\n    return obj[iterator_1.$$iterator]();\n}\nvar maxSafeInteger = Math.pow(2, 53) - 1;\nfunction toLength(o) {\n    var len = +o.length;\n    if (isNaN(len)) {\n        return 0;\n    }\n    if (len === 0 || !numberIsFinite(len)) {\n        return len;\n    }\n    len = sign(len) * Math.floor(Math.abs(len));\n    if (len <= 0) {\n        return 0;\n    }\n    if (len > maxSafeInteger) {\n        return maxSafeInteger;\n    }\n    return len;\n}\nfunction numberIsFinite(value) {\n    return typeof value === 'number' && root_1.root.isFinite(value);\n}\nfunction sign(value) {\n    var valueAsNumber = +value;\n    if (valueAsNumber === 0) {\n        return valueAsNumber;\n    }\n    if (isNaN(valueAsNumber)) {\n        return valueAsNumber;\n    }\n    return valueAsNumber < 0 ? -1 : 1;\n}\n//# sourceMappingURL=IteratorObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar noop_1 = require('../util/noop');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar NeverObservable = (function (_super) {\n    __extends(NeverObservable, _super);\n    function NeverObservable() {\n        _super.call(this);\n    }\n    /**\n     * Creates an Observable that emits no items to the Observer.\n     *\n     * <span class=\"informal\">An Observable that never emits anything.</span>\n     *\n     * <img src=\"./img/never.png\" width=\"100%\">\n     *\n     * This static operator is useful for creating a simple Observable that emits\n     * neither values nor errors nor the completion notification. It can be used\n     * for testing purposes or for composing with other Observables. Please not\n     * that by never emitting a complete notification, this Observable keeps the\n     * subscription from being disposed automatically. Subscriptions need to be\n     * manually disposed.\n     *\n     * @example <caption>Emit the number 7, then never emit anything else (not even complete).</caption>\n     * function info() {\n     *   console.log('Will not be called');\n     * }\n     * var result = Rx.Observable.never().startWith(7);\n     * result.subscribe(x => console.log(x), info, info);\n     *\n     * @see {@link create}\n     * @see {@link empty}\n     * @see {@link of}\n     * @see {@link throw}\n     *\n     * @return {Observable} A \"never\" Observable: never emits anything.\n     * @static true\n     * @name never\n     * @owner Observable\n     */\n    NeverObservable.create = function () {\n        return new NeverObservable();\n    };\n    NeverObservable.prototype._subscribe = function (subscriber) {\n        noop_1.noop();\n    };\n    return NeverObservable;\n}(Observable_1.Observable));\nexports.NeverObservable = NeverObservable;\n//# sourceMappingURL=NeverObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nfunction dispatch(state) {\n    var obj = state.obj, keys = state.keys, length = state.length, index = state.index, subscriber = state.subscriber;\n    if (index === length) {\n        subscriber.complete();\n        return;\n    }\n    var key = keys[index];\n    subscriber.next([key, obj[key]]);\n    state.index = index + 1;\n    this.schedule(state);\n}\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar PairsObservable = (function (_super) {\n    __extends(PairsObservable, _super);\n    function PairsObservable(obj, scheduler) {\n        _super.call(this);\n        this.obj = obj;\n        this.scheduler = scheduler;\n        this.keys = Object.keys(obj);\n    }\n    /**\n     * Convert an object into an observable sequence of [key, value] pairs\n     * using an optional Scheduler to enumerate the object.\n     *\n     * @example <caption>Converts a javascript object to an Observable</caption>\n     * var obj = {\n     *   foo: 42,\n     *   bar: 56,\n     *   baz: 78\n     * };\n     *\n     * var source = Rx.Observable.pairs(obj);\n     *\n     * var subscription = source.subscribe(\n     *   function (x) {\n     *     console.log('Next: %s', x);\n     *   },\n     *   function (err) {\n     *     console.log('Error: %s', err);\n     *   },\n     *   function () {\n     *     console.log('Completed');\n     *   });\n     *\n     * @param {Object} obj The object to inspect and turn into an\n     * Observable sequence.\n     * @param {Scheduler} [scheduler] An optional Scheduler to run the\n     * enumeration of the input sequence on.\n     * @returns {(Observable<Array<string | T>>)} An observable sequence of\n     * [key, value] pairs from the object.\n     */\n    PairsObservable.create = function (obj, scheduler) {\n        return new PairsObservable(obj, scheduler);\n    };\n    PairsObservable.prototype._subscribe = function (subscriber) {\n        var _a = this, keys = _a.keys, scheduler = _a.scheduler;\n        var length = keys.length;\n        if (scheduler) {\n            return scheduler.schedule(dispatch, 0, {\n                obj: this.obj, keys: keys, length: length, index: 0, subscriber: subscriber\n            });\n        }\n        else {\n            for (var idx = 0; idx < length; idx++) {\n                var key = keys[idx];\n                subscriber.next([key, this.obj[key]]);\n            }\n            subscriber.complete();\n        }\n    };\n    return PairsObservable;\n}(Observable_1.Observable));\nexports.PairsObservable = PairsObservable;\n//# sourceMappingURL=PairsObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar root_1 = require('../util/root');\nvar Observable_1 = require('../Observable');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar PromiseObservable = (function (_super) {\n    __extends(PromiseObservable, _super);\n    function PromiseObservable(promise, scheduler) {\n        _super.call(this);\n        this.promise = promise;\n        this.scheduler = scheduler;\n    }\n    /**\n     * Converts a Promise to an Observable.\n     *\n     * <span class=\"informal\">Returns an Observable that just emits the Promise's\n     * resolved value, then completes.</span>\n     *\n     * Converts an ES2015 Promise or a Promises/A+ spec compliant Promise to an\n     * Observable. If the Promise resolves with a value, the output Observable\n     * emits that resolved value as a `next`, and then completes. If the Promise\n     * is rejected, then the output Observable emits the corresponding Error.\n     *\n     * @example <caption>Convert the Promise returned by Fetch to an Observable</caption>\n     * var result = Rx.Observable.fromPromise(fetch('http://myserver.com/'));\n     * result.subscribe(x => console.log(x), e => console.error(e));\n     *\n     * @see {@link bindCallback}\n     * @see {@link from}\n     *\n     * @param {Promise<T>} promise The promise to be converted.\n     * @param {Scheduler} [scheduler] An optional Scheduler to use for scheduling\n     * the delivery of the resolved value (or the rejection).\n     * @return {Observable<T>} An Observable which wraps the Promise.\n     * @static true\n     * @name fromPromise\n     * @owner Observable\n     */\n    PromiseObservable.create = function (promise, scheduler) {\n        return new PromiseObservable(promise, scheduler);\n    };\n    PromiseObservable.prototype._subscribe = function (subscriber) {\n        var _this = this;\n        var promise = this.promise;\n        var scheduler = this.scheduler;\n        if (scheduler == null) {\n            if (this._isScalar) {\n                if (!subscriber.closed) {\n                    subscriber.next(this.value);\n                    subscriber.complete();\n                }\n            }\n            else {\n                promise.then(function (value) {\n                    _this.value = value;\n                    _this._isScalar = true;\n                    if (!subscriber.closed) {\n                        subscriber.next(value);\n                        subscriber.complete();\n                    }\n                }, function (err) {\n                    if (!subscriber.closed) {\n                        subscriber.error(err);\n                    }\n                })\n                    .then(null, function (err) {\n                    // escape the promise trap, throw unhandled errors\n                    root_1.root.setTimeout(function () { throw err; });\n                });\n            }\n        }\n        else {\n            if (this._isScalar) {\n                if (!subscriber.closed) {\n                    return scheduler.schedule(dispatchNext, 0, { value: this.value, subscriber: subscriber });\n                }\n            }\n            else {\n                promise.then(function (value) {\n                    _this.value = value;\n                    _this._isScalar = true;\n                    if (!subscriber.closed) {\n                        subscriber.add(scheduler.schedule(dispatchNext, 0, { value: value, subscriber: subscriber }));\n                    }\n                }, function (err) {\n                    if (!subscriber.closed) {\n                        subscriber.add(scheduler.schedule(dispatchError, 0, { err: err, subscriber: subscriber }));\n                    }\n                })\n                    .then(null, function (err) {\n                    // escape the promise trap, throw unhandled errors\n                    root_1.root.setTimeout(function () { throw err; });\n                });\n            }\n        }\n    };\n    return PromiseObservable;\n}(Observable_1.Observable));\nexports.PromiseObservable = PromiseObservable;\nfunction dispatchNext(arg) {\n    var value = arg.value, subscriber = arg.subscriber;\n    if (!subscriber.closed) {\n        subscriber.next(value);\n        subscriber.complete();\n    }\n}\nfunction dispatchError(arg) {\n    var err = arg.err, subscriber = arg.subscriber;\n    if (!subscriber.closed) {\n        subscriber.error(err);\n    }\n}\n//# sourceMappingURL=PromiseObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar RangeObservable = (function (_super) {\n    __extends(RangeObservable, _super);\n    function RangeObservable(start, count, scheduler) {\n        _super.call(this);\n        this.start = start;\n        this._count = count;\n        this.scheduler = scheduler;\n    }\n    /**\n     * Creates an Observable that emits a sequence of numbers within a specified\n     * range.\n     *\n     * <span class=\"informal\">Emits a sequence of numbers in a range.</span>\n     *\n     * <img src=\"./img/range.png\" width=\"100%\">\n     *\n     * `range` operator emits a range of sequential integers, in order, where you\n     * select the `start` of the range and its `length`. By default, uses no\n     * Scheduler and just delivers the notifications synchronously, but may use\n     * an optional Scheduler to regulate those deliveries.\n     *\n     * @example <caption>Emits the numbers 1 to 10</caption>\n     * var numbers = Rx.Observable.range(1, 10);\n     * numbers.subscribe(x => console.log(x));\n     *\n     * @see {@link timer}\n     * @see {@link interval}\n     *\n     * @param {number} [start=0] The value of the first integer in the sequence.\n     * @param {number} [count=0] The number of sequential integers to generate.\n     * @param {Scheduler} [scheduler] A {@link Scheduler} to use for scheduling\n     * the emissions of the notifications.\n     * @return {Observable} An Observable of numbers that emits a finite range of\n     * sequential integers.\n     * @static true\n     * @name range\n     * @owner Observable\n     */\n    RangeObservable.create = function (start, count, scheduler) {\n        if (start === void 0) { start = 0; }\n        if (count === void 0) { count = 0; }\n        return new RangeObservable(start, count, scheduler);\n    };\n    RangeObservable.dispatch = function (state) {\n        var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n        if (index >= count) {\n            subscriber.complete();\n            return;\n        }\n        subscriber.next(start);\n        if (subscriber.closed) {\n            return;\n        }\n        state.index = index + 1;\n        state.start = start + 1;\n        this.schedule(state);\n    };\n    RangeObservable.prototype._subscribe = function (subscriber) {\n        var index = 0;\n        var start = this.start;\n        var count = this._count;\n        var scheduler = this.scheduler;\n        if (scheduler) {\n            return scheduler.schedule(RangeObservable.dispatch, 0, {\n                index: index, count: count, start: start, subscriber: subscriber\n            });\n        }\n        else {\n            do {\n                if (index++ >= count) {\n                    subscriber.complete();\n                    break;\n                }\n                subscriber.next(start++);\n                if (subscriber.closed) {\n                    break;\n                }\n            } while (true);\n        }\n    };\n    return RangeObservable;\n}(Observable_1.Observable));\nexports.RangeObservable = RangeObservable;\n//# sourceMappingURL=RangeObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar ScalarObservable = (function (_super) {\n    __extends(ScalarObservable, _super);\n    function ScalarObservable(value, scheduler) {\n        _super.call(this);\n        this.value = value;\n        this.scheduler = scheduler;\n        this._isScalar = true;\n        if (scheduler) {\n            this._isScalar = false;\n        }\n    }\n    ScalarObservable.create = function (value, scheduler) {\n        return new ScalarObservable(value, scheduler);\n    };\n    ScalarObservable.dispatch = function (state) {\n        var done = state.done, value = state.value, subscriber = state.subscriber;\n        if (done) {\n            subscriber.complete();\n            return;\n        }\n        subscriber.next(value);\n        if (subscriber.closed) {\n            return;\n        }\n        state.done = true;\n        this.schedule(state);\n    };\n    ScalarObservable.prototype._subscribe = function (subscriber) {\n        var value = this.value;\n        var scheduler = this.scheduler;\n        if (scheduler) {\n            return scheduler.schedule(ScalarObservable.dispatch, 0, {\n                done: false, value: value, subscriber: subscriber\n            });\n        }\n        else {\n            subscriber.next(value);\n            if (!subscriber.closed) {\n                subscriber.complete();\n            }\n        }\n    };\n    return ScalarObservable;\n}(Observable_1.Observable));\nexports.ScalarObservable = ScalarObservable;\n//# sourceMappingURL=ScalarObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar asap_1 = require('../scheduler/asap');\nvar isNumeric_1 = require('../util/isNumeric');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar SubscribeOnObservable = (function (_super) {\n    __extends(SubscribeOnObservable, _super);\n    function SubscribeOnObservable(source, delayTime, scheduler) {\n        if (delayTime === void 0) { delayTime = 0; }\n        if (scheduler === void 0) { scheduler = asap_1.asap; }\n        _super.call(this);\n        this.source = source;\n        this.delayTime = delayTime;\n        this.scheduler = scheduler;\n        if (!isNumeric_1.isNumeric(delayTime) || delayTime < 0) {\n            this.delayTime = 0;\n        }\n        if (!scheduler || typeof scheduler.schedule !== 'function') {\n            this.scheduler = asap_1.asap;\n        }\n    }\n    SubscribeOnObservable.create = function (source, delay, scheduler) {\n        if (delay === void 0) { delay = 0; }\n        if (scheduler === void 0) { scheduler = asap_1.asap; }\n        return new SubscribeOnObservable(source, delay, scheduler);\n    };\n    SubscribeOnObservable.dispatch = function (arg) {\n        var source = arg.source, subscriber = arg.subscriber;\n        return this.add(source.subscribe(subscriber));\n    };\n    SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n        var delay = this.delayTime;\n        var source = this.source;\n        var scheduler = this.scheduler;\n        return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n            source: source, subscriber: subscriber\n        });\n    };\n    return SubscribeOnObservable;\n}(Observable_1.Observable));\nexports.SubscribeOnObservable = SubscribeOnObservable;\n//# sourceMappingURL=SubscribeOnObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar isNumeric_1 = require('../util/isNumeric');\nvar Observable_1 = require('../Observable');\nvar async_1 = require('../scheduler/async');\nvar isScheduler_1 = require('../util/isScheduler');\nvar isDate_1 = require('../util/isDate');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar TimerObservable = (function (_super) {\n    __extends(TimerObservable, _super);\n    function TimerObservable(dueTime, period, scheduler) {\n        if (dueTime === void 0) { dueTime = 0; }\n        _super.call(this);\n        this.period = -1;\n        this.dueTime = 0;\n        if (isNumeric_1.isNumeric(period)) {\n            this.period = Number(period) < 1 && 1 || Number(period);\n        }\n        else if (isScheduler_1.isScheduler(period)) {\n            scheduler = period;\n        }\n        if (!isScheduler_1.isScheduler(scheduler)) {\n            scheduler = async_1.async;\n        }\n        this.scheduler = scheduler;\n        this.dueTime = isDate_1.isDate(dueTime) ?\n            (+dueTime - this.scheduler.now()) :\n            dueTime;\n    }\n    /**\n     * Creates an Observable that starts emitting after an `initialDelay` and\n     * emits ever increasing numbers after each `period` of time thereafter.\n     *\n     * <span class=\"informal\">Its like {@link interval}, but you can specify when\n     * should the emissions start.</span>\n     *\n     * <img src=\"./img/timer.png\" width=\"100%\">\n     *\n     * `timer` returns an Observable that emits an infinite sequence of ascending\n     * integers, with a constant interval of time, `period` of your choosing\n     * between those emissions. The first emission happens after the specified\n     * `initialDelay`. The initial delay may be a {@link Date}. By default, this\n     * operator uses the `async` Scheduler to provide a notion of time, but you\n     * may pass any Scheduler to it. If `period` is not specified, the output\n     * Observable emits only one value, `0`. Otherwise, it emits an infinite\n     * sequence.\n     *\n     * @example <caption>Emits ascending numbers, one every second (1000ms), starting after 3 seconds</caption>\n     * var numbers = Rx.Observable.timer(3000, 1000);\n     * numbers.subscribe(x => console.log(x));\n     *\n     * @example <caption>Emits one number after five seconds</caption>\n     * var numbers = Rx.Observable.timer(5000);\n     * numbers.subscribe(x => console.log(x));\n     *\n     * @see {@link interval}\n     * @see {@link delay}\n     *\n     * @param {number|Date} initialDelay The initial delay time to wait before\n     * emitting the first value of `0`.\n     * @param {number} [period] The period of time between emissions of the\n     * subsequent numbers.\n     * @param {Scheduler} [scheduler=async] The Scheduler to use for scheduling\n     * the emission of values, and providing a notion of \"time\".\n     * @return {Observable} An Observable that emits a `0` after the\n     * `initialDelay` and ever increasing numbers after each `period` of time\n     * thereafter.\n     * @static true\n     * @name timer\n     * @owner Observable\n     */\n    TimerObservable.create = function (initialDelay, period, scheduler) {\n        if (initialDelay === void 0) { initialDelay = 0; }\n        return new TimerObservable(initialDelay, period, scheduler);\n    };\n    TimerObservable.dispatch = function (state) {\n        var index = state.index, period = state.period, subscriber = state.subscriber;\n        var action = this;\n        subscriber.next(index);\n        if (subscriber.closed) {\n            return;\n        }\n        else if (period === -1) {\n            return subscriber.complete();\n        }\n        state.index = index + 1;\n        action.schedule(state, period);\n    };\n    TimerObservable.prototype._subscribe = function (subscriber) {\n        var index = 0;\n        var _a = this, period = _a.period, dueTime = _a.dueTime, scheduler = _a.scheduler;\n        return scheduler.schedule(TimerObservable.dispatch, dueTime, {\n            index: index, period: period, subscriber: subscriber\n        });\n    };\n    return TimerObservable;\n}(Observable_1.Observable));\nexports.TimerObservable = TimerObservable;\n//# sourceMappingURL=TimerObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar UsingObservable = (function (_super) {\n    __extends(UsingObservable, _super);\n    function UsingObservable(resourceFactory, observableFactory) {\n        _super.call(this);\n        this.resourceFactory = resourceFactory;\n        this.observableFactory = observableFactory;\n    }\n    UsingObservable.create = function (resourceFactory, observableFactory) {\n        return new UsingObservable(resourceFactory, observableFactory);\n    };\n    UsingObservable.prototype._subscribe = function (subscriber) {\n        var _a = this, resourceFactory = _a.resourceFactory, observableFactory = _a.observableFactory;\n        var resource;\n        try {\n            resource = resourceFactory();\n            return new UsingSubscriber(subscriber, resource, observableFactory);\n        }\n        catch (err) {\n            subscriber.error(err);\n        }\n    };\n    return UsingObservable;\n}(Observable_1.Observable));\nexports.UsingObservable = UsingObservable;\nvar UsingSubscriber = (function (_super) {\n    __extends(UsingSubscriber, _super);\n    function UsingSubscriber(destination, resource, observableFactory) {\n        _super.call(this, destination);\n        this.resource = resource;\n        this.observableFactory = observableFactory;\n        destination.add(resource);\n        this.tryUse();\n    }\n    UsingSubscriber.prototype.tryUse = function () {\n        try {\n            var source = this.observableFactory.call(this, this.resource);\n            if (source) {\n                this.add(subscribeToResult_1.subscribeToResult(this, source));\n            }\n        }\n        catch (err) {\n            this._error(err);\n        }\n    };\n    return UsingSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=UsingObservable.js.map",
    "\"use strict\";\nvar BoundCallbackObservable_1 = require('./BoundCallbackObservable');\nexports.bindCallback = BoundCallbackObservable_1.BoundCallbackObservable.create;\n//# sourceMappingURL=bindCallback.js.map",
    "\"use strict\";\nvar BoundNodeCallbackObservable_1 = require('./BoundNodeCallbackObservable');\nexports.bindNodeCallback = BoundNodeCallbackObservable_1.BoundNodeCallbackObservable.create;\n//# sourceMappingURL=bindNodeCallback.js.map",
    "\"use strict\";\nvar isScheduler_1 = require('../util/isScheduler');\nvar isArray_1 = require('../util/isArray');\nvar ArrayObservable_1 = require('./ArrayObservable');\nvar combineLatest_1 = require('../operator/combineLatest');\n/* tslint:enable:max-line-length */\n/**\n * Combines multiple Observables to create an Observable whose values are\n * calculated from the latest values of each of its input Observables.\n *\n * <span class=\"informal\">Whenever any input Observable emits a value, it\n * computes a formula using the latest values from all the inputs, then emits\n * the output of that formula.</span>\n *\n * <img src=\"./img/combineLatest.png\" width=\"100%\">\n *\n * `combineLatest` combines the values from all the Observables passed as\n * arguments. This is done by subscribing to each Observable, in order, and\n * collecting an array of each of the most recent values any time any of the\n * input Observables emits, then either taking that array and passing it as\n * arguments to an optional `project` function and emitting the return value of\n * that, or just emitting the array of recent values directly if there is no\n * `project` function.\n *\n * @example <caption>Dynamically calculate the Body-Mass Index from an Observable of weight and one for height</caption>\n * var weight = Rx.Observable.of(70, 72, 76, 79, 75);\n * var height = Rx.Observable.of(1.76, 1.77, 1.78);\n * var bmi = Rx.Observable.combineLatest(weight, height, (w, h) => w / (h * h));\n * bmi.subscribe(x => console.log('BMI is ' + x));\n *\n * // With output to console:\n * // BMI is 24.212293388429753\n * // BMI is 23.93948099205209\n * // BMI is 23.671253629592222\n *\n * @see {@link combineAll}\n * @see {@link merge}\n * @see {@link withLatestFrom}\n *\n * @param {Observable} observable1 An input Observable to combine with the\n * source Observable.\n * @param {Observable} observable2 An input Observable to combine with the\n * source Observable. More than one input Observables may be given as argument.\n * @param {function} [project] An optional function to project the values from\n * the combined latest values into a new value on the output Observable.\n * @param {Scheduler} [scheduler=null] The Scheduler to use for subscribing to\n * each input Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n * @static true\n * @name combineLatest\n * @owner Observable\n */\nfunction combineLatest() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i - 0] = arguments[_i];\n    }\n    var project = null;\n    var scheduler = null;\n    if (isScheduler_1.isScheduler(observables[observables.length - 1])) {\n        scheduler = observables.pop();\n    }\n    if (typeof observables[observables.length - 1] === 'function') {\n        project = observables.pop();\n    }\n    // if the first and only other argument besides the resultSelector is an array\n    // assume it's been called with `combineLatest([obs1, obs2, obs3], project)`\n    if (observables.length === 1 && isArray_1.isArray(observables[0])) {\n        observables = observables[0];\n    }\n    return new ArrayObservable_1.ArrayObservable(observables, scheduler).lift(new combineLatest_1.CombineLatestOperator(project));\n}\nexports.combineLatest = combineLatest;\n//# sourceMappingURL=combineLatest.js.map",
    "\"use strict\";\nvar concat_1 = require('../operator/concat');\nexports.concat = concat_1.concatStatic;\n//# sourceMappingURL=concat.js.map",
    "\"use strict\";\nvar DeferObservable_1 = require('./DeferObservable');\nexports.defer = DeferObservable_1.DeferObservable.create;\n//# sourceMappingURL=defer.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar root_1 = require('../../util/root');\nvar tryCatch_1 = require('../../util/tryCatch');\nvar errorObject_1 = require('../../util/errorObject');\nvar Observable_1 = require('../../Observable');\nvar Subscriber_1 = require('../../Subscriber');\nvar map_1 = require('../../operator/map');\nfunction getCORSRequest() {\n    if (root_1.root.XMLHttpRequest) {\n        var xhr = new root_1.root.XMLHttpRequest();\n        if ('withCredentials' in xhr) {\n            xhr.withCredentials = !!this.withCredentials;\n        }\n        return xhr;\n    }\n    else if (!!root_1.root.XDomainRequest) {\n        return new root_1.root.XDomainRequest();\n    }\n    else {\n        throw new Error('CORS is not supported by your browser');\n    }\n}\nfunction getXMLHttpRequest() {\n    if (root_1.root.XMLHttpRequest) {\n        return new root_1.root.XMLHttpRequest();\n    }\n    else {\n        var progId = void 0;\n        try {\n            var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n            for (var i = 0; i < 3; i++) {\n                try {\n                    progId = progIds[i];\n                    if (new root_1.root.ActiveXObject(progId)) {\n                        break;\n                    }\n                }\n                catch (e) {\n                }\n            }\n            return new root_1.root.ActiveXObject(progId);\n        }\n        catch (e) {\n            throw new Error('XMLHttpRequest is not supported by your browser');\n        }\n    }\n}\nfunction ajaxGet(url, headers) {\n    if (headers === void 0) { headers = null; }\n    return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexports.ajaxGet = ajaxGet;\n;\nfunction ajaxPost(url, body, headers) {\n    return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexports.ajaxPost = ajaxPost;\n;\nfunction ajaxDelete(url, headers) {\n    return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexports.ajaxDelete = ajaxDelete;\n;\nfunction ajaxPut(url, body, headers) {\n    return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexports.ajaxPut = ajaxPut;\n;\nfunction ajaxGetJSON(url, headers) {\n    return new AjaxObservable({ method: 'GET', url: url, responseType: 'json', headers: headers })\n        .lift(new map_1.MapOperator(function (x, index) { return x.response; }, null));\n}\nexports.ajaxGetJSON = ajaxGetJSON;\n;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar AjaxObservable = (function (_super) {\n    __extends(AjaxObservable, _super);\n    function AjaxObservable(urlOrRequest) {\n        _super.call(this);\n        var request = {\n            async: true,\n            createXHR: function () {\n                return this.crossDomain ? getCORSRequest.call(this) : getXMLHttpRequest();\n            },\n            crossDomain: false,\n            withCredentials: false,\n            headers: {},\n            method: 'GET',\n            responseType: 'json',\n            timeout: 0\n        };\n        if (typeof urlOrRequest === 'string') {\n            request.url = urlOrRequest;\n        }\n        else {\n            for (var prop in urlOrRequest) {\n                if (urlOrRequest.hasOwnProperty(prop)) {\n                    request[prop] = urlOrRequest[prop];\n                }\n            }\n        }\n        this.request = request;\n    }\n    AjaxObservable.prototype._subscribe = function (subscriber) {\n        return new AjaxSubscriber(subscriber, this.request);\n    };\n    /**\n     * Creates an observable for an Ajax request with either a request object with\n     * url, headers, etc or a string for a URL.\n     *\n     * @example\n     * source = Rx.Observable.ajax('/products');\n     * source = Rx.Observable.ajax({ url: 'products', method: 'GET' });\n     *\n     * @param {string|Object} request Can be one of the following:\n     *   A string of the URL to make the Ajax call.\n     *   An object with the following properties\n     *   - url: URL of the request\n     *   - body: The body of the request\n     *   - method: Method of the request, such as GET, POST, PUT, PATCH, DELETE\n     *   - async: Whether the request is async\n     *   - headers: Optional headers\n     *   - crossDomain: true if a cross domain request, else false\n     *   - createXHR: a function to override if you need to use an alternate\n     *   XMLHttpRequest implementation.\n     *   - resultSelector: a function to use to alter the output value type of\n     *   the Observable. Gets {@link AjaxResponse} as an argument.\n     * @return {Observable} An observable sequence containing the XMLHttpRequest.\n     * @static true\n     * @name ajax\n     * @owner Observable\n    */\n    AjaxObservable.create = (function () {\n        var create = function (urlOrRequest) {\n            return new AjaxObservable(urlOrRequest);\n        };\n        create.get = ajaxGet;\n        create.post = ajaxPost;\n        create.delete = ajaxDelete;\n        create.put = ajaxPut;\n        create.getJSON = ajaxGetJSON;\n        return create;\n    })();\n    return AjaxObservable;\n}(Observable_1.Observable));\nexports.AjaxObservable = AjaxObservable;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar AjaxSubscriber = (function (_super) {\n    __extends(AjaxSubscriber, _super);\n    function AjaxSubscriber(destination, request) {\n        _super.call(this, destination);\n        this.request = request;\n        this.done = false;\n        var headers = request.headers = request.headers || {};\n        // force CORS if requested\n        if (!request.crossDomain && !headers['X-Requested-With']) {\n            headers['X-Requested-With'] = 'XMLHttpRequest';\n        }\n        // ensure content type is set\n        if (!('Content-Type' in headers) && !(root_1.root.FormData && request.body instanceof root_1.root.FormData) && typeof request.body !== 'undefined') {\n            headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n        }\n        // properly serialize body\n        request.body = this.serializeBody(request.body, request.headers['Content-Type']);\n        this.send();\n    }\n    AjaxSubscriber.prototype.next = function (e) {\n        this.done = true;\n        var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n        var response = new AjaxResponse(e, xhr, request);\n        destination.next(response);\n    };\n    AjaxSubscriber.prototype.send = function () {\n        var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n        var createXHR = request.createXHR;\n        var xhr = tryCatch_1.tryCatch(createXHR).call(request);\n        if (xhr === errorObject_1.errorObject) {\n            this.error(errorObject_1.errorObject.e);\n        }\n        else {\n            this.xhr = xhr;\n            // set up the events before open XHR\n            // https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest\n            // You need to add the event listeners before calling open() on the request.\n            // Otherwise the progress events will not fire.\n            this.setupEvents(xhr, request);\n            // open XHR\n            var result = void 0;\n            if (user) {\n                result = tryCatch_1.tryCatch(xhr.open).call(xhr, method, url, async, user, password);\n            }\n            else {\n                result = tryCatch_1.tryCatch(xhr.open).call(xhr, method, url, async);\n            }\n            if (result === errorObject_1.errorObject) {\n                this.error(errorObject_1.errorObject.e);\n                return null;\n            }\n            // timeout and responseType can be set once the XHR is open\n            xhr.timeout = request.timeout;\n            xhr.responseType = request.responseType;\n            // set headers\n            this.setHeaders(xhr, headers);\n            // finally send the request\n            result = body ? tryCatch_1.tryCatch(xhr.send).call(xhr, body) : tryCatch_1.tryCatch(xhr.send).call(xhr);\n            if (result === errorObject_1.errorObject) {\n                this.error(errorObject_1.errorObject.e);\n                return null;\n            }\n        }\n        return xhr;\n    };\n    AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n        if (!body || typeof body === 'string') {\n            return body;\n        }\n        else if (root_1.root.FormData && body instanceof root_1.root.FormData) {\n            return body;\n        }\n        if (contentType) {\n            var splitIndex = contentType.indexOf(';');\n            if (splitIndex !== -1) {\n                contentType = contentType.substring(0, splitIndex);\n            }\n        }\n        switch (contentType) {\n            case 'application/x-www-form-urlencoded':\n                return Object.keys(body).map(function (key) { return (encodeURI(key) + \"=\" + encodeURI(body[key])); }).join('&');\n            case 'application/json':\n                return JSON.stringify(body);\n            default:\n                return body;\n        }\n    };\n    AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n        for (var key in headers) {\n            if (headers.hasOwnProperty(key)) {\n                xhr.setRequestHeader(key, headers[key]);\n            }\n        }\n    };\n    AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n        var progressSubscriber = request.progressSubscriber;\n        function xhrTimeout(e) {\n            var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n            if (progressSubscriber) {\n                progressSubscriber.error(e);\n            }\n            subscriber.error(new AjaxTimeoutError(this, request)); //TODO: Make betterer.\n        }\n        ;\n        xhr.ontimeout = xhrTimeout;\n        xhrTimeout.request = request;\n        xhrTimeout.subscriber = this;\n        xhrTimeout.progressSubscriber = progressSubscriber;\n        if (xhr.upload && 'withCredentials' in xhr) {\n            if (progressSubscriber) {\n                var xhrProgress_1;\n                xhrProgress_1 = function (e) {\n                    var progressSubscriber = xhrProgress_1.progressSubscriber;\n                    progressSubscriber.next(e);\n                };\n                if (root_1.root.XDomainRequest) {\n                    xhr.onprogress = xhrProgress_1;\n                }\n                else {\n                    xhr.upload.onprogress = xhrProgress_1;\n                }\n                xhrProgress_1.progressSubscriber = progressSubscriber;\n            }\n            var xhrError_1;\n            xhrError_1 = function (e) {\n                var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n                if (progressSubscriber) {\n                    progressSubscriber.error(e);\n                }\n                subscriber.error(new AjaxError('ajax error', this, request));\n            };\n            xhr.onerror = xhrError_1;\n            xhrError_1.request = request;\n            xhrError_1.subscriber = this;\n            xhrError_1.progressSubscriber = progressSubscriber;\n        }\n        function xhrReadyStateChange(e) {\n            var _a = xhrReadyStateChange, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n            if (this.readyState === 4) {\n                // normalize IE9 bug (http://bugs.jquery.com/ticket/1450)\n                var status_1 = this.status === 1223 ? 204 : this.status;\n                var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n                // fix status code when it is 0 (0 status is undocumented).\n                // Occurs when accessing file resources or on Android 4.1 stock browser\n                // while retrieving files from application cache.\n                if (status_1 === 0) {\n                    status_1 = response ? 200 : 0;\n                }\n                if (200 <= status_1 && status_1 < 300) {\n                    if (progressSubscriber) {\n                        progressSubscriber.complete();\n                    }\n                    subscriber.next(e);\n                    subscriber.complete();\n                }\n                else {\n                    if (progressSubscriber) {\n                        progressSubscriber.error(e);\n                    }\n                    subscriber.error(new AjaxError('ajax error ' + status_1, this, request));\n                }\n            }\n        }\n        ;\n        xhr.onreadystatechange = xhrReadyStateChange;\n        xhrReadyStateChange.subscriber = this;\n        xhrReadyStateChange.progressSubscriber = progressSubscriber;\n        xhrReadyStateChange.request = request;\n    };\n    AjaxSubscriber.prototype.unsubscribe = function () {\n        var _a = this, done = _a.done, xhr = _a.xhr;\n        if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n            xhr.abort();\n        }\n        _super.prototype.unsubscribe.call(this);\n    };\n    return AjaxSubscriber;\n}(Subscriber_1.Subscriber));\nexports.AjaxSubscriber = AjaxSubscriber;\n/**\n * A normalized AJAX response.\n *\n * @see {@link ajax}\n *\n * @class AjaxResponse\n */\nvar AjaxResponse = (function () {\n    function AjaxResponse(originalEvent, xhr, request) {\n        this.originalEvent = originalEvent;\n        this.xhr = xhr;\n        this.request = request;\n        this.status = xhr.status;\n        this.responseType = xhr.responseType || request.responseType;\n        switch (this.responseType) {\n            case 'json':\n                if ('response' in xhr) {\n                    //IE does not support json as responseType, parse it internally\n                    this.response = xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n                }\n                else {\n                    this.response = JSON.parse(xhr.responseText || 'null');\n                }\n                break;\n            case 'xml':\n                this.response = xhr.responseXML;\n                break;\n            case 'text':\n            default:\n                this.response = ('response' in xhr) ? xhr.response : xhr.responseText;\n                break;\n        }\n    }\n    return AjaxResponse;\n}());\nexports.AjaxResponse = AjaxResponse;\n/**\n * A normalized AJAX error.\n *\n * @see {@link ajax}\n *\n * @class AjaxError\n */\nvar AjaxError = (function (_super) {\n    __extends(AjaxError, _super);\n    function AjaxError(message, xhr, request) {\n        _super.call(this, message);\n        this.message = message;\n        this.xhr = xhr;\n        this.request = request;\n        this.status = xhr.status;\n    }\n    return AjaxError;\n}(Error));\nexports.AjaxError = AjaxError;\n/**\n * @see {@link ajax}\n *\n * @class AjaxTimeoutError\n */\nvar AjaxTimeoutError = (function (_super) {\n    __extends(AjaxTimeoutError, _super);\n    function AjaxTimeoutError(xhr, request) {\n        _super.call(this, 'ajax timeout', xhr, request);\n    }\n    return AjaxTimeoutError;\n}(AjaxError));\nexports.AjaxTimeoutError = AjaxTimeoutError;\n//# sourceMappingURL=AjaxObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('../../Subject');\nvar Subscriber_1 = require('../../Subscriber');\nvar Observable_1 = require('../../Observable');\nvar Subscription_1 = require('../../Subscription');\nvar root_1 = require('../../util/root');\nvar ReplaySubject_1 = require('../../ReplaySubject');\nvar tryCatch_1 = require('../../util/tryCatch');\nvar errorObject_1 = require('../../util/errorObject');\nvar assign_1 = require('../../util/assign');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @extends {Ignored}\n * @hide true\n */\nvar WebSocketSubject = (function (_super) {\n    __extends(WebSocketSubject, _super);\n    function WebSocketSubject(urlConfigOrSource, destination) {\n        if (urlConfigOrSource instanceof Observable_1.Observable) {\n            _super.call(this, destination, urlConfigOrSource);\n        }\n        else {\n            _super.call(this);\n            this.WebSocketCtor = root_1.root.WebSocket;\n            this._output = new Subject_1.Subject();\n            if (typeof urlConfigOrSource === 'string') {\n                this.url = urlConfigOrSource;\n            }\n            else {\n                // WARNING: config object could override important members here.\n                assign_1.assign(this, urlConfigOrSource);\n            }\n            if (!this.WebSocketCtor) {\n                throw new Error('no WebSocket constructor can be found');\n            }\n            this.destination = new ReplaySubject_1.ReplaySubject();\n        }\n    }\n    WebSocketSubject.prototype.resultSelector = function (e) {\n        return JSON.parse(e.data);\n    };\n    /**\n     * @param urlConfigOrSource\n     * @return {WebSocketSubject}\n     * @static true\n     * @name webSocket\n     * @owner Observable\n     */\n    WebSocketSubject.create = function (urlConfigOrSource) {\n        return new WebSocketSubject(urlConfigOrSource);\n    };\n    WebSocketSubject.prototype.lift = function (operator) {\n        var sock = new WebSocketSubject(this, this.destination);\n        sock.operator = operator;\n        return sock;\n    };\n    WebSocketSubject.prototype._resetState = function () {\n        this.socket = null;\n        if (!this.source) {\n            this.destination = new ReplaySubject_1.ReplaySubject();\n        }\n        this._output = new Subject_1.Subject();\n    };\n    // TODO: factor this out to be a proper Operator/Subscriber implementation and eliminate closures\n    WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) {\n        var self = this;\n        return new Observable_1.Observable(function (observer) {\n            var result = tryCatch_1.tryCatch(subMsg)();\n            if (result === errorObject_1.errorObject) {\n                observer.error(errorObject_1.errorObject.e);\n            }\n            else {\n                self.next(result);\n            }\n            var subscription = self.subscribe(function (x) {\n                var result = tryCatch_1.tryCatch(messageFilter)(x);\n                if (result === errorObject_1.errorObject) {\n                    observer.error(errorObject_1.errorObject.e);\n                }\n                else if (result) {\n                    observer.next(x);\n                }\n            }, function (err) { return observer.error(err); }, function () { return observer.complete(); });\n            return function () {\n                var result = tryCatch_1.tryCatch(unsubMsg)();\n                if (result === errorObject_1.errorObject) {\n                    observer.error(errorObject_1.errorObject.e);\n                }\n                else {\n                    self.next(result);\n                }\n                subscription.unsubscribe();\n            };\n        });\n    };\n    WebSocketSubject.prototype._connectSocket = function () {\n        var _this = this;\n        var WebSocketCtor = this.WebSocketCtor;\n        var observer = this._output;\n        var socket = null;\n        try {\n            socket = this.protocol ?\n                new WebSocketCtor(this.url, this.protocol) :\n                new WebSocketCtor(this.url);\n            this.socket = socket;\n        }\n        catch (e) {\n            observer.error(e);\n            return;\n        }\n        var subscription = new Subscription_1.Subscription(function () {\n            _this.socket = null;\n            if (socket && socket.readyState === 1) {\n                socket.close();\n            }\n        });\n        socket.onopen = function (e) {\n            var openObserver = _this.openObserver;\n            if (openObserver) {\n                openObserver.next(e);\n            }\n            var queue = _this.destination;\n            _this.destination = Subscriber_1.Subscriber.create(function (x) { return socket.readyState === 1 && socket.send(x); }, function (e) {\n                var closingObserver = _this.closingObserver;\n                if (closingObserver) {\n                    closingObserver.next(undefined);\n                }\n                if (e && e.code) {\n                    socket.close(e.code, e.reason);\n                }\n                else {\n                    observer.error(new TypeError('WebSocketSubject.error must be called with an object with an error code, ' +\n                        'and an optional reason: { code: number, reason: string }'));\n                }\n                _this._resetState();\n            }, function () {\n                var closingObserver = _this.closingObserver;\n                if (closingObserver) {\n                    closingObserver.next(undefined);\n                }\n                socket.close();\n                _this._resetState();\n            });\n            if (queue && queue instanceof ReplaySubject_1.ReplaySubject) {\n                subscription.add(queue.subscribe(_this.destination));\n            }\n        };\n        socket.onerror = function (e) {\n            _this._resetState();\n            observer.error(e);\n        };\n        socket.onclose = function (e) {\n            _this._resetState();\n            var closeObserver = _this.closeObserver;\n            if (closeObserver) {\n                closeObserver.next(e);\n            }\n            if (e.wasClean) {\n                observer.complete();\n            }\n            else {\n                observer.error(e);\n            }\n        };\n        socket.onmessage = function (e) {\n            var result = tryCatch_1.tryCatch(_this.resultSelector)(e);\n            if (result === errorObject_1.errorObject) {\n                observer.error(errorObject_1.errorObject.e);\n            }\n            else {\n                observer.next(result);\n            }\n        };\n    };\n    WebSocketSubject.prototype._subscribe = function (subscriber) {\n        var _this = this;\n        var source = this.source;\n        if (source) {\n            return source.subscribe(subscriber);\n        }\n        if (!this.socket) {\n            this._connectSocket();\n        }\n        var subscription = new Subscription_1.Subscription();\n        subscription.add(this._output.subscribe(subscriber));\n        subscription.add(function () {\n            var socket = _this.socket;\n            if (_this._output.observers.length === 0) {\n                if (socket && socket.readyState === 1) {\n                    socket.close();\n                }\n                _this._resetState();\n            }\n        });\n        return subscription;\n    };\n    WebSocketSubject.prototype.unsubscribe = function () {\n        var _a = this, source = _a.source, socket = _a.socket;\n        if (socket && socket.readyState === 1) {\n            socket.close();\n            this._resetState();\n        }\n        _super.prototype.unsubscribe.call(this);\n        if (!source) {\n            this.destination = new ReplaySubject_1.ReplaySubject();\n        }\n    };\n    return WebSocketSubject;\n}(Subject_1.AnonymousSubject));\nexports.WebSocketSubject = WebSocketSubject;\n//# sourceMappingURL=WebSocketSubject.js.map",
    "\"use strict\";\nvar AjaxObservable_1 = require('./AjaxObservable');\nexports.ajax = AjaxObservable_1.AjaxObservable.create;\n//# sourceMappingURL=ajax.js.map",
    "\"use strict\";\nvar WebSocketSubject_1 = require('./WebSocketSubject');\nexports.webSocket = WebSocketSubject_1.WebSocketSubject.create;\n//# sourceMappingURL=webSocket.js.map",
    "\"use strict\";\nvar EmptyObservable_1 = require('./EmptyObservable');\nexports.empty = EmptyObservable_1.EmptyObservable.create;\n//# sourceMappingURL=empty.js.map",
    "\"use strict\";\nvar ForkJoinObservable_1 = require('./ForkJoinObservable');\nexports.forkJoin = ForkJoinObservable_1.ForkJoinObservable.create;\n//# sourceMappingURL=forkJoin.js.map",
    "\"use strict\";\nvar FromObservable_1 = require('./FromObservable');\nexports.from = FromObservable_1.FromObservable.create;\n//# sourceMappingURL=from.js.map",
    "\"use strict\";\nvar FromEventObservable_1 = require('./FromEventObservable');\nexports.fromEvent = FromEventObservable_1.FromEventObservable.create;\n//# sourceMappingURL=fromEvent.js.map",
    "\"use strict\";\nvar FromEventPatternObservable_1 = require('./FromEventPatternObservable');\nexports.fromEventPattern = FromEventPatternObservable_1.FromEventPatternObservable.create;\n//# sourceMappingURL=fromEventPattern.js.map",
    "\"use strict\";\nvar PromiseObservable_1 = require('./PromiseObservable');\nexports.fromPromise = PromiseObservable_1.PromiseObservable.create;\n//# sourceMappingURL=fromPromise.js.map",
    "\"use strict\";\nvar IfObservable_1 = require('./IfObservable');\nexports._if = IfObservable_1.IfObservable.create;\n//# sourceMappingURL=if.js.map",
    "\"use strict\";\nvar IntervalObservable_1 = require('./IntervalObservable');\nexports.interval = IntervalObservable_1.IntervalObservable.create;\n//# sourceMappingURL=interval.js.map",
    "\"use strict\";\nvar merge_1 = require('../operator/merge');\nexports.merge = merge_1.mergeStatic;\n//# sourceMappingURL=merge.js.map",
    "\"use strict\";\nvar NeverObservable_1 = require('./NeverObservable');\nexports.never = NeverObservable_1.NeverObservable.create;\n//# sourceMappingURL=never.js.map",
    "\"use strict\";\nvar ArrayObservable_1 = require('./ArrayObservable');\nexports.of = ArrayObservable_1.ArrayObservable.of;\n//# sourceMappingURL=of.js.map",
    "\"use strict\";\nvar PairsObservable_1 = require('./PairsObservable');\nexports.pairs = PairsObservable_1.PairsObservable.create;\n//# sourceMappingURL=pairs.js.map",
    "\"use strict\";\nvar RangeObservable_1 = require('./RangeObservable');\nexports.range = RangeObservable_1.RangeObservable.create;\n//# sourceMappingURL=range.js.map",
    "\"use strict\";\nvar ErrorObservable_1 = require('./ErrorObservable');\nexports._throw = ErrorObservable_1.ErrorObservable.create;\n//# sourceMappingURL=throw.js.map",
    "\"use strict\";\nvar TimerObservable_1 = require('./TimerObservable');\nexports.timer = TimerObservable_1.TimerObservable.create;\n//# sourceMappingURL=timer.js.map",
    "\"use strict\";\nvar UsingObservable_1 = require('./UsingObservable');\nexports.using = UsingObservable_1.UsingObservable.create;\n//# sourceMappingURL=using.js.map",
    "\"use strict\";\nvar zip_1 = require('../operator/zip');\nexports.zip = zip_1.zipStatic;\n//# sourceMappingURL=zip.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Ignores source values for a duration determined by another Observable, then\n * emits the most recent value from the source Observable, then repeats this\n * process.\n *\n * <span class=\"informal\">It's like {@link auditTime}, but the silencing\n * duration is determined by a second Observable.</span>\n *\n * <img src=\"./img/audit.png\" width=\"100%\">\n *\n * `audit` is similar to `throttle`, but emits the last value from the silenced\n * time window, instead of the first value. `audit` emits the most recent value\n * from the source Observable on the output Observable as soon as its internal\n * timer becomes disabled, and ignores source values while the timer is enabled.\n * Initially, the timer is disabled. As soon as the first source value arrives,\n * the timer is enabled by calling the `durationSelector` function with the\n * source value, which returns the \"duration\" Observable. When the duration\n * Observable emits a value or completes, the timer is disabled, then the most\n * recent source value is emitted on the output Observable, and this process\n * repeats for the next source value.\n *\n * @example <caption>Emit clicks at a rate of at most one click per second</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.audit(ev => Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link auditTime}\n * @see {@link debounce}\n * @see {@link delayWhen}\n * @see {@link sample}\n * @see {@link throttle}\n *\n * @param {function(value: T): Observable|Promise} durationSelector A function\n * that receives a value from the source Observable, for computing the silencing\n * duration, returned as an Observable or a Promise.\n * @return {Observable<T>} An Observable that performs rate-limiting of\n * emissions from the source Observable.\n * @method audit\n * @owner Observable\n */\nfunction audit(durationSelector) {\n    return this.lift(new AuditOperator(durationSelector));\n}\nexports.audit = audit;\nvar AuditOperator = (function () {\n    function AuditOperator(durationSelector) {\n        this.durationSelector = durationSelector;\n    }\n    AuditOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n    };\n    return AuditOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar AuditSubscriber = (function (_super) {\n    __extends(AuditSubscriber, _super);\n    function AuditSubscriber(destination, durationSelector) {\n        _super.call(this, destination);\n        this.durationSelector = durationSelector;\n        this.hasValue = false;\n    }\n    AuditSubscriber.prototype._next = function (value) {\n        this.value = value;\n        this.hasValue = true;\n        if (!this.throttled) {\n            var duration = tryCatch_1.tryCatch(this.durationSelector)(value);\n            if (duration === errorObject_1.errorObject) {\n                this.destination.error(errorObject_1.errorObject.e);\n            }\n            else {\n                this.add(this.throttled = subscribeToResult_1.subscribeToResult(this, duration));\n            }\n        }\n    };\n    AuditSubscriber.prototype.clearThrottle = function () {\n        var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n        if (throttled) {\n            this.remove(throttled);\n            this.throttled = null;\n            throttled.unsubscribe();\n        }\n        if (hasValue) {\n            this.value = null;\n            this.hasValue = false;\n            this.destination.next(value);\n        }\n    };\n    AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n        this.clearThrottle();\n    };\n    AuditSubscriber.prototype.notifyComplete = function () {\n        this.clearThrottle();\n    };\n    return AuditSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=audit.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar async_1 = require('../scheduler/async');\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Ignores source values for `duration` milliseconds, then emits the most recent\n * value from the source Observable, then repeats this process.\n *\n * <span class=\"informal\">When it sees a source values, it ignores that plus\n * the next ones for `duration` milliseconds, and then it emits the most recent\n * value from the source.</span>\n *\n * <img src=\"./img/auditTime.png\" width=\"100%\">\n *\n * `auditTime` is similar to `throttleTime`, but emits the last value from the\n * silenced time window, instead of the first value. `auditTime` emits the most\n * recent value from the source Observable on the output Observable as soon as\n * its internal timer becomes disabled, and ignores source values while the\n * timer is enabled. Initially, the timer is disabled. As soon as the first\n * source value arrives, the timer is enabled. After `duration` milliseconds (or\n * the time unit determined internally by the optional `scheduler`) has passed,\n * the timer is disabled, then the most recent source value is emitted on the\n * output Observable, and this process repeats for the next source value.\n * Optionally takes a {@link Scheduler} for managing timers.\n *\n * @example <caption>Emit clicks at a rate of at most one click per second</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.auditTime(1000);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link audit}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttleTime}\n *\n * @param {number} duration Time to wait before emitting the most recent source\n * value, measured in milliseconds or the time unit determined internally\n * by the optional `scheduler`.\n * @param {Scheduler} [scheduler=async] The {@link Scheduler} to use for\n * managing the timers that handle the rate-limiting behavior.\n * @return {Observable<T>} An Observable that performs rate-limiting of\n * emissions from the source Observable.\n * @method auditTime\n * @owner Observable\n */\nfunction auditTime(duration, scheduler) {\n    if (scheduler === void 0) { scheduler = async_1.async; }\n    return this.lift(new AuditTimeOperator(duration, scheduler));\n}\nexports.auditTime = auditTime;\nvar AuditTimeOperator = (function () {\n    function AuditTimeOperator(duration, scheduler) {\n        this.duration = duration;\n        this.scheduler = scheduler;\n    }\n    AuditTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new AuditTimeSubscriber(subscriber, this.duration, this.scheduler));\n    };\n    return AuditTimeOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar AuditTimeSubscriber = (function (_super) {\n    __extends(AuditTimeSubscriber, _super);\n    function AuditTimeSubscriber(destination, duration, scheduler) {\n        _super.call(this, destination);\n        this.duration = duration;\n        this.scheduler = scheduler;\n        this.hasValue = false;\n    }\n    AuditTimeSubscriber.prototype._next = function (value) {\n        this.value = value;\n        this.hasValue = true;\n        if (!this.throttled) {\n            this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, this));\n        }\n    };\n    AuditTimeSubscriber.prototype.clearThrottle = function () {\n        var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n        if (throttled) {\n            this.remove(throttled);\n            this.throttled = null;\n            throttled.unsubscribe();\n        }\n        if (hasValue) {\n            this.value = null;\n            this.hasValue = false;\n            this.destination.next(value);\n        }\n    };\n    return AuditTimeSubscriber;\n}(Subscriber_1.Subscriber));\nfunction dispatchNext(subscriber) {\n    subscriber.clearThrottle();\n}\n//# sourceMappingURL=auditTime.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Buffers the source Observable values until `closingNotifier` emits.\n *\n * <span class=\"informal\">Collects values from the past as an array, and emits\n * that array only when another Observable emits.</span>\n *\n * <img src=\"./img/buffer.png\" width=\"100%\">\n *\n * Buffers the incoming Observable values until the given `closingNotifier`\n * Observable emits a value, at which point it emits the buffer on the output\n * Observable and starts a new buffer internally, awaiting the next time\n * `closingNotifier` emits.\n *\n * @example <caption>On every click, emit array of most recent interval events</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var interval = Rx.Observable.interval(1000);\n * var buffered = interval.buffer(clicks);\n * buffered.subscribe(x => console.log(x));\n *\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link window}\n *\n * @param {Observable<any>} closingNotifier An Observable that signals the\n * buffer to be emitted on the output Observable.\n * @return {Observable<T[]>} An Observable of buffers, which are arrays of\n * values.\n * @method buffer\n * @owner Observable\n */\nfunction buffer(closingNotifier) {\n    return this.lift(new BufferOperator(closingNotifier));\n}\nexports.buffer = buffer;\nvar BufferOperator = (function () {\n    function BufferOperator(closingNotifier) {\n        this.closingNotifier = closingNotifier;\n    }\n    BufferOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n    };\n    return BufferOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar BufferSubscriber = (function (_super) {\n    __extends(BufferSubscriber, _super);\n    function BufferSubscriber(destination, closingNotifier) {\n        _super.call(this, destination);\n        this.buffer = [];\n        this.add(subscribeToResult_1.subscribeToResult(this, closingNotifier));\n    }\n    BufferSubscriber.prototype._next = function (value) {\n        this.buffer.push(value);\n    };\n    BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var buffer = this.buffer;\n        this.buffer = [];\n        this.destination.next(buffer);\n    };\n    return BufferSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=buffer.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Buffers the source Observable values until the size hits the maximum\n * `bufferSize` given.\n *\n * <span class=\"informal\">Collects values from the past as an array, and emits\n * that array only when its size reaches `bufferSize`.</span>\n *\n * <img src=\"./img/bufferCount.png\" width=\"100%\">\n *\n * Buffers a number of values from the source Observable by `bufferSize` then\n * emits the buffer and clears it, and starts a new buffer each\n * `startBufferEvery` values. If `startBufferEvery` is not provided or is\n * `null`, then new buffers are started immediately at the start of the source\n * and when each buffer closes and is emitted.\n *\n * @example <caption>Emit the last two click events as an array</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var buffered = clicks.bufferCount(2);\n * buffered.subscribe(x => console.log(x));\n *\n * @example <caption>On every click, emit the last two click events as an array</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var buffered = clicks.bufferCount(2, 1);\n * buffered.subscribe(x => console.log(x));\n *\n * @see {@link buffer}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link pairwise}\n * @see {@link windowCount}\n *\n * @param {number} bufferSize The maximum size of the buffer emitted.\n * @param {number} [startBufferEvery] Interval at which to start a new buffer.\n * For example if `startBufferEvery` is `2`, then a new buffer will be started\n * on every other value from the source. A new buffer is started at the\n * beginning of the source by default.\n * @return {Observable<T[]>} An Observable of arrays of buffered values.\n * @method bufferCount\n * @owner Observable\n */\nfunction bufferCount(bufferSize, startBufferEvery) {\n    if (startBufferEvery === void 0) { startBufferEvery = null; }\n    return this.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n}\nexports.bufferCount = bufferCount;\nvar BufferCountOperator = (function () {\n    function BufferCountOperator(bufferSize, startBufferEvery) {\n        this.bufferSize = bufferSize;\n        this.startBufferEvery = startBufferEvery;\n    }\n    BufferCountOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferCountSubscriber(subscriber, this.bufferSize, this.startBufferEvery));\n    };\n    return BufferCountOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar BufferCountSubscriber = (function (_super) {\n    __extends(BufferCountSubscriber, _super);\n    function BufferCountSubscriber(destination, bufferSize, startBufferEvery) {\n        _super.call(this, destination);\n        this.bufferSize = bufferSize;\n        this.startBufferEvery = startBufferEvery;\n        this.buffers = [];\n        this.count = 0;\n    }\n    BufferCountSubscriber.prototype._next = function (value) {\n        var count = this.count++;\n        var _a = this, destination = _a.destination, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers;\n        var startOn = (startBufferEvery == null) ? bufferSize : startBufferEvery;\n        if (count % startOn === 0) {\n            buffers.push([]);\n        }\n        for (var i = buffers.length; i--;) {\n            var buffer = buffers[i];\n            buffer.push(value);\n            if (buffer.length === bufferSize) {\n                buffers.splice(i, 1);\n                destination.next(buffer);\n            }\n        }\n    };\n    BufferCountSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        var buffers = this.buffers;\n        while (buffers.length > 0) {\n            var buffer = buffers.shift();\n            if (buffer.length > 0) {\n                destination.next(buffer);\n            }\n        }\n        _super.prototype._complete.call(this);\n    };\n    return BufferCountSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=bufferCount.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar async_1 = require('../scheduler/async');\nvar Subscriber_1 = require('../Subscriber');\nvar isScheduler_1 = require('../util/isScheduler');\n/* tslint:disable:max-line-length */\n/**\n * Buffers the source Observable values for a specific time period.\n *\n * <span class=\"informal\">Collects values from the past as an array, and emits\n * those arrays periodically in time.</span>\n *\n * <img src=\"./img/bufferTime.png\" width=\"100%\">\n *\n * Buffers values from the source for a specific time duration `bufferTimeSpan`.\n * Unless the optional argument `bufferCreationInterval` is given, it emits and\n * resets the buffer every `bufferTimeSpan` milliseconds. If\n * `bufferCreationInterval` is given, this operator opens the buffer every\n * `bufferCreationInterval` milliseconds and closes (emits and resets) the\n * buffer every `bufferTimeSpan` milliseconds. When the optional argument\n * `maxBufferSize` is specified, the buffer will be closed either after\n * `bufferTimeSpan` milliseconds or when it contains `maxBufferSize` elements.\n *\n * @example <caption>Every second, emit an array of the recent click events</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var buffered = clicks.bufferTime(1000);\n * buffered.subscribe(x => console.log(x));\n *\n * @example <caption>Every 5 seconds, emit the click events from the next 2 seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var buffered = clicks.bufferTime(2000, 5000);\n * buffered.subscribe(x => console.log(x));\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferToggle}\n * @see {@link bufferWhen}\n * @see {@link windowTime}\n *\n * @param {number} bufferTimeSpan The amount of time to fill each buffer array.\n * @param {number} [bufferCreationInterval] The interval at which to start new\n * buffers.\n * @param {number} [maxBufferSize] The maximum buffer size.\n * @param {Scheduler} [scheduler=async] The scheduler on which to schedule the\n * intervals that determine buffer boundaries.\n * @return {Observable<T[]>} An observable of arrays of buffered values.\n * @method bufferTime\n * @owner Observable\n */\nfunction bufferTime(bufferTimeSpan) {\n    var length = arguments.length;\n    var scheduler = async_1.async;\n    if (isScheduler_1.isScheduler(arguments[arguments.length - 1])) {\n        scheduler = arguments[arguments.length - 1];\n        length--;\n    }\n    var bufferCreationInterval = null;\n    if (length >= 2) {\n        bufferCreationInterval = arguments[1];\n    }\n    var maxBufferSize = Number.POSITIVE_INFINITY;\n    if (length >= 3) {\n        maxBufferSize = arguments[2];\n    }\n    return this.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n}\nexports.bufferTime = bufferTime;\nvar BufferTimeOperator = (function () {\n    function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n        this.bufferTimeSpan = bufferTimeSpan;\n        this.bufferCreationInterval = bufferCreationInterval;\n        this.maxBufferSize = maxBufferSize;\n        this.scheduler = scheduler;\n    }\n    BufferTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n    };\n    return BufferTimeOperator;\n}());\nvar Context = (function () {\n    function Context() {\n        this.buffer = [];\n    }\n    return Context;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar BufferTimeSubscriber = (function (_super) {\n    __extends(BufferTimeSubscriber, _super);\n    function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n        _super.call(this, destination);\n        this.bufferTimeSpan = bufferTimeSpan;\n        this.bufferCreationInterval = bufferCreationInterval;\n        this.maxBufferSize = maxBufferSize;\n        this.scheduler = scheduler;\n        this.contexts = [];\n        var context = this.openContext();\n        this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n        if (this.timespanOnly) {\n            var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n            this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n        }\n        else {\n            var closeState = { subscriber: this, context: context };\n            var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: this, scheduler: scheduler };\n            this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n            this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n        }\n    }\n    BufferTimeSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        var len = contexts.length;\n        var filledBufferContext;\n        for (var i = 0; i < len; i++) {\n            var context = contexts[i];\n            var buffer = context.buffer;\n            buffer.push(value);\n            if (buffer.length == this.maxBufferSize) {\n                filledBufferContext = context;\n            }\n        }\n        if (filledBufferContext) {\n            this.onBufferFull(filledBufferContext);\n        }\n    };\n    BufferTimeSubscriber.prototype._error = function (err) {\n        this.contexts.length = 0;\n        _super.prototype._error.call(this, err);\n    };\n    BufferTimeSubscriber.prototype._complete = function () {\n        var _a = this, contexts = _a.contexts, destination = _a.destination;\n        while (contexts.length > 0) {\n            var context = contexts.shift();\n            destination.next(context.buffer);\n        }\n        _super.prototype._complete.call(this);\n    };\n    BufferTimeSubscriber.prototype._unsubscribe = function () {\n        this.contexts = null;\n    };\n    BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n        this.closeContext(context);\n        var closeAction = context.closeAction;\n        closeAction.unsubscribe();\n        this.remove(closeAction);\n        if (!this.closed && this.timespanOnly) {\n            context = this.openContext();\n            var bufferTimeSpan = this.bufferTimeSpan;\n            var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n            this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n        }\n    };\n    BufferTimeSubscriber.prototype.openContext = function () {\n        var context = new Context();\n        this.contexts.push(context);\n        return context;\n    };\n    BufferTimeSubscriber.prototype.closeContext = function (context) {\n        this.destination.next(context.buffer);\n        var contexts = this.contexts;\n        var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n        if (spliceIndex >= 0) {\n            contexts.splice(contexts.indexOf(context), 1);\n        }\n    };\n    return BufferTimeSubscriber;\n}(Subscriber_1.Subscriber));\nfunction dispatchBufferTimeSpanOnly(state) {\n    var subscriber = state.subscriber;\n    var prevContext = state.context;\n    if (prevContext) {\n        subscriber.closeContext(prevContext);\n    }\n    if (!subscriber.closed) {\n        state.context = subscriber.openContext();\n        state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n    }\n}\nfunction dispatchBufferCreation(state) {\n    var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n    var context = subscriber.openContext();\n    var action = this;\n    if (!subscriber.closed) {\n        subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n        action.schedule(state, bufferCreationInterval);\n    }\n}\nfunction dispatchBufferClose(arg) {\n    var subscriber = arg.subscriber, context = arg.context;\n    subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscription_1 = require('../Subscription');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\n/**\n * Buffers the source Observable values starting from an emission from\n * `openings` and ending when the output of `closingSelector` emits.\n *\n * <span class=\"informal\">Collects values from the past as an array. Starts\n * collecting only when `opening` emits, and calls the `closingSelector`\n * function to get an Observable that tells when to close the buffer.</span>\n *\n * <img src=\"./img/bufferToggle.png\" width=\"100%\">\n *\n * Buffers values from the source by opening the buffer via signals from an\n * Observable provided to `openings`, and closing and sending the buffers when\n * a Subscribable or Promise returned by the `closingSelector` function emits.\n *\n * @example <caption>Every other second, emit the click events from the next 500ms</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var openings = Rx.Observable.interval(1000);\n * var buffered = clicks.bufferToggle(openings, i =>\n *   i % 2 ? Rx.Observable.interval(500) : Rx.Observable.empty()\n * );\n * buffered.subscribe(x => console.log(x));\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferWhen}\n * @see {@link windowToggle}\n *\n * @param {SubscribableOrPromise<O>} openings A Subscribable or Promise of notifications to start new\n * buffers.\n * @param {function(value: O): SubscribableOrPromise} closingSelector A function that takes\n * the value emitted by the `openings` observable and returns a Subscribable or Promise,\n * which, when it emits, signals that the associated buffer should be emitted\n * and cleared.\n * @return {Observable<T[]>} An observable of arrays of buffered values.\n * @method bufferToggle\n * @owner Observable\n */\nfunction bufferToggle(openings, closingSelector) {\n    return this.lift(new BufferToggleOperator(openings, closingSelector));\n}\nexports.bufferToggle = bufferToggle;\nvar BufferToggleOperator = (function () {\n    function BufferToggleOperator(openings, closingSelector) {\n        this.openings = openings;\n        this.closingSelector = closingSelector;\n    }\n    BufferToggleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n    };\n    return BufferToggleOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar BufferToggleSubscriber = (function (_super) {\n    __extends(BufferToggleSubscriber, _super);\n    function BufferToggleSubscriber(destination, openings, closingSelector) {\n        _super.call(this, destination);\n        this.openings = openings;\n        this.closingSelector = closingSelector;\n        this.contexts = [];\n        this.add(subscribeToResult_1.subscribeToResult(this, openings));\n    }\n    BufferToggleSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        var len = contexts.length;\n        for (var i = 0; i < len; i++) {\n            contexts[i].buffer.push(value);\n        }\n    };\n    BufferToggleSubscriber.prototype._error = function (err) {\n        var contexts = this.contexts;\n        while (contexts.length > 0) {\n            var context = contexts.shift();\n            context.subscription.unsubscribe();\n            context.buffer = null;\n            context.subscription = null;\n        }\n        this.contexts = null;\n        _super.prototype._error.call(this, err);\n    };\n    BufferToggleSubscriber.prototype._complete = function () {\n        var contexts = this.contexts;\n        while (contexts.length > 0) {\n            var context = contexts.shift();\n            this.destination.next(context.buffer);\n            context.subscription.unsubscribe();\n            context.buffer = null;\n            context.subscription = null;\n        }\n        this.contexts = null;\n        _super.prototype._complete.call(this);\n    };\n    BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n    };\n    BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.closeBuffer(innerSub.context);\n    };\n    BufferToggleSubscriber.prototype.openBuffer = function (value) {\n        try {\n            var closingSelector = this.closingSelector;\n            var closingNotifier = closingSelector.call(this, value);\n            if (closingNotifier) {\n                this.trySubscribe(closingNotifier);\n            }\n        }\n        catch (err) {\n            this._error(err);\n        }\n    };\n    BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n        var contexts = this.contexts;\n        if (contexts && context) {\n            var buffer = context.buffer, subscription = context.subscription;\n            this.destination.next(buffer);\n            contexts.splice(contexts.indexOf(context), 1);\n            this.remove(subscription);\n            subscription.unsubscribe();\n        }\n    };\n    BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n        var contexts = this.contexts;\n        var buffer = [];\n        var subscription = new Subscription_1.Subscription();\n        var context = { buffer: buffer, subscription: subscription };\n        contexts.push(context);\n        var innerSubscription = subscribeToResult_1.subscribeToResult(this, closingNotifier, context);\n        if (!innerSubscription || innerSubscription.closed) {\n            this.closeBuffer(context);\n        }\n        else {\n            innerSubscription.context = context;\n            this.add(innerSubscription);\n            subscription.add(innerSubscription);\n        }\n    };\n    return BufferToggleSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=bufferToggle.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscription_1 = require('../Subscription');\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Buffers the source Observable values, using a factory function of closing\n * Observables to determine when to close, emit, and reset the buffer.\n *\n * <span class=\"informal\">Collects values from the past as an array. When it\n * starts collecting values, it calls a function that returns an Observable that\n * tells when to close the buffer and restart collecting.</span>\n *\n * <img src=\"./img/bufferWhen.png\" width=\"100%\">\n *\n * Opens a buffer immediately, then closes the buffer when the observable\n * returned by calling `closingSelector` function emits a value. When it closes\n * the buffer, it immediately opens a new buffer and repeats the process.\n *\n * @example <caption>Emit an array of the last clicks every [1-5] random seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var buffered = clicks.bufferWhen(() =>\n *   Rx.Observable.interval(1000 + Math.random() * 4000)\n * );\n * buffered.subscribe(x => console.log(x));\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n * @see {@link bufferTime}\n * @see {@link bufferToggle}\n * @see {@link windowWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals buffer closure.\n * @return {Observable<T[]>} An observable of arrays of buffered values.\n * @method bufferWhen\n * @owner Observable\n */\nfunction bufferWhen(closingSelector) {\n    return this.lift(new BufferWhenOperator(closingSelector));\n}\nexports.bufferWhen = bufferWhen;\nvar BufferWhenOperator = (function () {\n    function BufferWhenOperator(closingSelector) {\n        this.closingSelector = closingSelector;\n    }\n    BufferWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n    };\n    return BufferWhenOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar BufferWhenSubscriber = (function (_super) {\n    __extends(BufferWhenSubscriber, _super);\n    function BufferWhenSubscriber(destination, closingSelector) {\n        _super.call(this, destination);\n        this.closingSelector = closingSelector;\n        this.subscribing = false;\n        this.openBuffer();\n    }\n    BufferWhenSubscriber.prototype._next = function (value) {\n        this.buffer.push(value);\n    };\n    BufferWhenSubscriber.prototype._complete = function () {\n        var buffer = this.buffer;\n        if (buffer) {\n            this.destination.next(buffer);\n        }\n        _super.prototype._complete.call(this);\n    };\n    BufferWhenSubscriber.prototype._unsubscribe = function () {\n        this.buffer = null;\n        this.subscribing = false;\n    };\n    BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openBuffer();\n    };\n    BufferWhenSubscriber.prototype.notifyComplete = function () {\n        if (this.subscribing) {\n            this.complete();\n        }\n        else {\n            this.openBuffer();\n        }\n    };\n    BufferWhenSubscriber.prototype.openBuffer = function () {\n        var closingSubscription = this.closingSubscription;\n        if (closingSubscription) {\n            this.remove(closingSubscription);\n            closingSubscription.unsubscribe();\n        }\n        var buffer = this.buffer;\n        if (this.buffer) {\n            this.destination.next(buffer);\n        }\n        this.buffer = [];\n        var closingNotifier = tryCatch_1.tryCatch(this.closingSelector)();\n        if (closingNotifier === errorObject_1.errorObject) {\n            this.error(errorObject_1.errorObject.e);\n        }\n        else {\n            closingSubscription = new Subscription_1.Subscription();\n            this.closingSubscription = closingSubscription;\n            this.add(closingSubscription);\n            this.subscribing = true;\n            closingSubscription.add(subscribeToResult_1.subscribeToResult(this, closingNotifier));\n            this.subscribing = false;\n        }\n    };\n    return BufferWhenSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=bufferWhen.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Catches errors on the observable to be handled by returning a new observable or throwing an error.\n * @param {function} selector a function that takes as arguments `err`, which is the error, and `caught`, which\n *  is the source observable, in case you'd like to \"retry\" that observable by returning it again. Whatever observable\n *  is returned by the `selector` will be used to continue the observable chain.\n * @return {Observable} an observable that originates from either the source or the observable returned by the\n *  catch `selector` function.\n * @method catch\n * @name catch\n * @owner Observable\n */\nfunction _catch(selector) {\n    var operator = new CatchOperator(selector);\n    var caught = this.lift(operator);\n    return (operator.caught = caught);\n}\nexports._catch = _catch;\nvar CatchOperator = (function () {\n    function CatchOperator(selector) {\n        this.selector = selector;\n    }\n    CatchOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n    };\n    return CatchOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar CatchSubscriber = (function (_super) {\n    __extends(CatchSubscriber, _super);\n    function CatchSubscriber(destination, selector, caught) {\n        _super.call(this, destination);\n        this.selector = selector;\n        this.caught = caught;\n    }\n    // NOTE: overriding `error` instead of `_error` because we don't want\n    // to have this flag this subscriber as `isStopped`.\n    CatchSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var result = void 0;\n            try {\n                result = this.selector(err, this.caught);\n            }\n            catch (err) {\n                this.destination.error(err);\n                return;\n            }\n            this.unsubscribe();\n            this.destination.remove(this);\n            subscribeToResult_1.subscribeToResult(this, result);\n        }\n    };\n    return CatchSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=catch.js.map",
    "\"use strict\";\nvar combineLatest_1 = require('./combineLatest');\n/**\n * Converts a higher-order Observable into a first-order Observable by waiting\n * for the outer Observable to complete, then applying {@link combineLatest}.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables by applying\n * {@link combineLatest} when the Observable-of-Observables completes.</span>\n *\n * <img src=\"./img/combineAll.png\" width=\"100%\">\n *\n * Takes an Observable of Observables, and collects all Observables from it.\n * Once the outer Observable completes, it subscribes to all collected\n * Observables and combines their values using the {@link combineLatest}\n * strategy, such that:\n * - Every time an inner Observable emits, the output Observable emits.\n * - When the returned observable emits, it emits all of the latest values by:\n *   - If a `project` function is provided, it is called with each recent value\n *     from each inner Observable in whatever order they arrived, and the result\n *     of the `project` function is what is emitted by the output Observable.\n *   - If there is no `project` function, an array of all of the most recent\n *     values is emitted by the output Observable.\n *\n * @example <caption>Map two click events to a finite interval Observable, then apply combineAll</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var higherOrder = clicks.map(ev =>\n *   Rx.Observable.interval(Math.random()*2000).take(3)\n * ).take(2);\n * var result = higherOrder.combineAll();\n * result.subscribe(x => console.log(x));\n *\n * @see {@link combineLatest}\n * @see {@link mergeAll}\n *\n * @param {function} [project] An optional function to map the most recent\n * values from each inner Observable into a new result. Takes each of the most\n * recent values from each collected inner Observable as arguments, in order.\n * @return {Observable} An Observable of projected results or arrays of recent\n * values.\n * @method combineAll\n * @owner Observable\n */\nfunction combineAll(project) {\n    return this.lift(new combineLatest_1.CombineLatestOperator(project));\n}\nexports.combineAll = combineAll;\n//# sourceMappingURL=combineAll.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar ArrayObservable_1 = require('../observable/ArrayObservable');\nvar isArray_1 = require('../util/isArray');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\nvar none = {};\n/* tslint:disable:max-line-length */\n/**\n * Combines multiple Observables to create an Observable whose values are\n * calculated from the latest values of each of its input Observables.\n *\n * <span class=\"informal\">Whenever any input Observable emits a value, it\n * computes a formula using the latest values from all the inputs, then emits\n * the output of that formula.</span>\n *\n * <img src=\"./img/combineLatest.png\" width=\"100%\">\n *\n * `combineLatest` combines the values from this Observable with values from\n * Observables passed as arguments. This is done by subscribing to each\n * Observable, in order, and collecting an array of each of the most recent\n * values any time any of the input Observables emits, then either taking that\n * array and passing it as arguments to an optional `project` function and\n * emitting the return value of that, or just emitting the array of recent\n * values directly if there is no `project` function.\n *\n * @example <caption>Dynamically calculate the Body-Mass Index from an Observable of weight and one for height</caption>\n * var weight = Rx.Observable.of(70, 72, 76, 79, 75);\n * var height = Rx.Observable.of(1.76, 1.77, 1.78);\n * var bmi = weight.combineLatest(height, (w, h) => w / (h * h));\n * bmi.subscribe(x => console.log('BMI is ' + x));\n *\n * // With output to console:\n * // BMI is 24.212293388429753\n * // BMI is 23.93948099205209\n * // BMI is 23.671253629592222\n *\n * @see {@link combineAll}\n * @see {@link merge}\n * @see {@link withLatestFrom}\n *\n * @param {Observable} other An input Observable to combine with the source\n * Observable. More than one input Observables may be given as argument.\n * @param {function} [project] An optional function to project the values from\n * the combined latest values into a new value on the output Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n * @method combineLatest\n * @owner Observable\n */\nfunction combineLatest() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i - 0] = arguments[_i];\n    }\n    var project = null;\n    if (typeof observables[observables.length - 1] === 'function') {\n        project = observables.pop();\n    }\n    // if the first and only other argument besides the resultSelector is an array\n    // assume it's been called with `combineLatest([obs1, obs2, obs3], project)`\n    if (observables.length === 1 && isArray_1.isArray(observables[0])) {\n        observables = observables[0];\n    }\n    observables.unshift(this);\n    return this.lift.call(new ArrayObservable_1.ArrayObservable(observables), new CombineLatestOperator(project));\n}\nexports.combineLatest = combineLatest;\nvar CombineLatestOperator = (function () {\n    function CombineLatestOperator(project) {\n        this.project = project;\n    }\n    CombineLatestOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new CombineLatestSubscriber(subscriber, this.project));\n    };\n    return CombineLatestOperator;\n}());\nexports.CombineLatestOperator = CombineLatestOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar CombineLatestSubscriber = (function (_super) {\n    __extends(CombineLatestSubscriber, _super);\n    function CombineLatestSubscriber(destination, project) {\n        _super.call(this, destination);\n        this.project = project;\n        this.active = 0;\n        this.values = [];\n        this.observables = [];\n    }\n    CombineLatestSubscriber.prototype._next = function (observable) {\n        this.values.push(none);\n        this.observables.push(observable);\n    };\n    CombineLatestSubscriber.prototype._complete = function () {\n        var observables = this.observables;\n        var len = observables.length;\n        if (len === 0) {\n            this.destination.complete();\n        }\n        else {\n            this.active = len;\n            this.toRespond = len;\n            for (var i = 0; i < len; i++) {\n                var observable = observables[i];\n                this.add(subscribeToResult_1.subscribeToResult(this, observable, observable, i));\n            }\n        }\n    };\n    CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n        if ((this.active -= 1) === 0) {\n            this.destination.complete();\n        }\n    };\n    CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var values = this.values;\n        var oldVal = values[outerIndex];\n        var toRespond = !this.toRespond\n            ? 0\n            : oldVal === none ? --this.toRespond : this.toRespond;\n        values[outerIndex] = innerValue;\n        if (toRespond === 0) {\n            if (this.project) {\n                this._tryProject(values);\n            }\n            else {\n                this.destination.next(values.slice());\n            }\n        }\n    };\n    CombineLatestSubscriber.prototype._tryProject = function (values) {\n        var result;\n        try {\n            result = this.project.apply(this, values);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return CombineLatestSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\nexports.CombineLatestSubscriber = CombineLatestSubscriber;\n//# sourceMappingURL=combineLatest.js.map",
    "\"use strict\";\nvar isScheduler_1 = require('../util/isScheduler');\nvar ArrayObservable_1 = require('../observable/ArrayObservable');\nvar mergeAll_1 = require('./mergeAll');\n/* tslint:disable:max-line-length */\n/**\n * Creates an output Observable which sequentially emits all values from every\n * given input Observable after the current Observable.\n *\n * <span class=\"informal\">Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.</span>\n *\n * <img src=\"./img/concat.png\" width=\"100%\">\n *\n * Joins this Observable with multiple other Observables by subscribing to them\n * one at a time, starting with the source, and merging their results into the\n * output Observable. Will wait for each Observable to complete before moving\n * on to the next.\n *\n * @example <caption>Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10</caption>\n * var timer = Rx.Observable.interval(1000).take(4);\n * var sequence = Rx.Observable.range(1, 10);\n * var result = timer.concat(sequence);\n * result.subscribe(x => console.log(x));\n *\n * // results in:\n * // 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10\n *\n * @example <caption>Concatenate 3 Observables</caption>\n * var timer1 = Rx.Observable.interval(1000).take(10);\n * var timer2 = Rx.Observable.interval(2000).take(6);\n * var timer3 = Rx.Observable.interval(500).take(10);\n * var result = timer1.concat(timer2, timer3);\n * result.subscribe(x => console.log(x));\n *\n * // results in the following:\n * // (Prints to console sequentially)\n * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9\n * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5\n * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9\n *\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n *\n * @param {Observable} other An input Observable to concatenate after the source\n * Observable. More than one input Observables may be given as argument.\n * @param {Scheduler} [scheduler=null] An optional Scheduler to schedule each\n * Observable subscription on.\n * @return {Observable} All values of each passed Observable merged into a\n * single Observable, in order, in serial fashion.\n * @method concat\n * @owner Observable\n */\nfunction concat() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i - 0] = arguments[_i];\n    }\n    return this.lift.call(concatStatic.apply(void 0, [this].concat(observables)));\n}\nexports.concat = concat;\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which sequentially emits all values from every\n * given input Observable after the current Observable.\n *\n * <span class=\"informal\">Concatenates multiple Observables together by\n * sequentially emitting their values, one Observable after the other.</span>\n *\n * <img src=\"./img/concat.png\" width=\"100%\">\n *\n * Joins multiple Observables together by subscribing to them one at a time and\n * merging their results into the output Observable. Will wait for each\n * Observable to complete before moving on to the next.\n *\n * @example <caption>Concatenate a timer counting from 0 to 3 with a synchronous sequence from 1 to 10</caption>\n * var timer = Rx.Observable.interval(1000).take(4);\n * var sequence = Rx.Observable.range(1, 10);\n * var result = Rx.Observable.concat(timer, sequence);\n * result.subscribe(x => console.log(x));\n *\n * // results in:\n * // 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3 -immediate-> 1 ... 10\n *\n * @example <caption>Concatenate 3 Observables</caption>\n * var timer1 = Rx.Observable.interval(1000).take(10);\n * var timer2 = Rx.Observable.interval(2000).take(6);\n * var timer3 = Rx.Observable.interval(500).take(10);\n * var result = Rx.Observable.concat(timer1, timer2, timer3);\n * result.subscribe(x => console.log(x));\n *\n * // results in the following:\n * // (Prints to console sequentially)\n * // -1000ms-> 0 -1000ms-> 1 -1000ms-> ... 9\n * // -2000ms-> 0 -2000ms-> 1 -2000ms-> ... 5\n * // -500ms-> 0 -500ms-> 1 -500ms-> ... 9\n *\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n *\n * @param {Observable} input1 An input Observable to concatenate with others.\n * @param {Observable} input2 An input Observable to concatenate with others.\n * More than one input Observables may be given as argument.\n * @param {Scheduler} [scheduler=null] An optional Scheduler to schedule each\n * Observable subscription on.\n * @return {Observable} All values of each passed Observable merged into a\n * single Observable, in order, in serial fashion.\n * @static true\n * @name concat\n * @owner Observable\n */\nfunction concatStatic() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i - 0] = arguments[_i];\n    }\n    var scheduler = null;\n    var args = observables;\n    if (isScheduler_1.isScheduler(args[observables.length - 1])) {\n        scheduler = args.pop();\n    }\n    if (scheduler === null && observables.length === 1) {\n        return observables[0];\n    }\n    return new ArrayObservable_1.ArrayObservable(observables, scheduler).lift(new mergeAll_1.MergeAllOperator(1));\n}\nexports.concatStatic = concatStatic;\n//# sourceMappingURL=concat.js.map",
    "\"use strict\";\nvar mergeAll_1 = require('./mergeAll');\n/* tslint:disable:max-line-length */\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * concatenating the inner Observables in order.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables by putting one\n * inner Observable after the other.</span>\n *\n * <img src=\"./img/concatAll.png\" width=\"100%\">\n *\n * Joins every Observable emitted by the source (a higher-order Observable), in\n * a serial fashion. It subscribes to each inner Observable only after the\n * previous inner Observable has completed, and merges all of their values into\n * the returned observable.\n *\n * __Warning:__ If the source Observable emits Observables quickly and\n * endlessly, and the inner Observables it emits generally complete slower than\n * the source emits, you can run into memory issues as the incoming Observables\n * collect in an unbounded buffer.\n *\n * Note: `concatAll` is equivalent to `mergeAll` with concurrency parameter set\n * to `1`.\n *\n * @example <caption>For each click event, tick every second from 0 to 3, with no concurrency</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var higherOrder = clicks.map(ev => Rx.Observable.interval(1000).take(4));\n * var firstOrder = higherOrder.concatAll();\n * firstOrder.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n *\n * @see {@link combineAll}\n * @see {@link concat}\n * @see {@link concatMap}\n * @see {@link concatMapTo}\n * @see {@link exhaust}\n * @see {@link mergeAll}\n * @see {@link switch}\n * @see {@link zipAll}\n *\n * @return {Observable} An Observable emitting values from all the inner\n * Observables concatenated.\n * @method concatAll\n * @owner Observable\n */\nfunction concatAll() {\n    return this.lift(new mergeAll_1.MergeAllOperator(1));\n}\nexports.concatAll = concatAll;\n//# sourceMappingURL=concatAll.js.map",
    "\"use strict\";\nvar mergeMap_1 = require('./mergeMap');\n/* tslint:disable:max-line-length */\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, in a serialized fashion waiting for each one to complete before\n * merging the next.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link concatAll}.</span>\n *\n * <img src=\"./img/concatMap.png\" width=\"100%\">\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each new inner Observable is\n * concatenated with the previous inner Observable.\n *\n * __Warning:__ if source values arrive endlessly and faster than their\n * corresponding inner Observables can complete, it will result in memory issues\n * as inner Observables amass in an unbounded buffer waiting for their turn to\n * be subscribed to.\n *\n * Note: `concatMap` is equivalent to `mergeMap` with concurrency parameter set\n * to `1`.\n *\n * @example <caption>For each click event, tick every second from 0 to 3, with no concurrency</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.concatMap(ev => Rx.Observable.interval(1000).take(4));\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n *\n * @see {@link concat}\n * @see {@link concatAll}\n * @see {@link concatMapTo}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): Observable} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @return {Observable} an observable of values merged from the projected\n * Observables as they were subscribed to, one at a time. Optionally, these\n * values may have been projected from a passed `projectResult` argument.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and taking values from each projected inner\n * Observable sequentially.\n * @method concatMap\n * @owner Observable\n */\nfunction concatMap(project, resultSelector) {\n    return this.lift(new mergeMap_1.MergeMapOperator(project, resultSelector, 1));\n}\nexports.concatMap = concatMap;\n//# sourceMappingURL=concatMap.js.map",
    "\"use strict\";\nvar mergeMapTo_1 = require('./mergeMapTo');\n/* tslint:disable:max-line-length */\n/**\n * Projects each source value to the same Observable which is merged multiple\n * times in a serialized fashion on the output Observable.\n *\n * <span class=\"informal\">It's like {@link concatMap}, but maps each value\n * always to the same inner Observable.</span>\n *\n * <img src=\"./img/concatMapTo.png\" width=\"100%\">\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then flattens those resulting Observables into one\n * single Observable, which is the output Observable. Each new `innerObservable`\n * instance emitted on the output Observable is concatenated with the previous\n * `innerObservable` instance.\n *\n * __Warning:__ if source values arrive endlessly and faster than their\n * corresponding inner Observables can complete, it will result in memory issues\n * as inner Observables amass in an unbounded buffer waiting for their turn to\n * be subscribed to.\n *\n * Note: `concatMapTo` is equivalent to `mergeMapTo` with concurrency parameter\n * set to `1`.\n *\n * @example <caption>For each click event, tick every second from 0 to 3, with no concurrency</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.concatMapTo(Rx.Observable.interval(1000).take(4));\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // (results are not concurrent)\n * // For every click on the \"document\" it will emit values 0 to 3 spaced\n * // on a 1000ms interval\n * // one click = 1000ms-> 0 -1000ms-> 1 -1000ms-> 2 -1000ms-> 3\n *\n * @see {@link concat}\n * @see {@link concatAll}\n * @see {@link concatMap}\n * @see {@link mergeMapTo}\n * @see {@link switchMapTo}\n *\n * @param {Observable} innerObservable An Observable to replace each value from\n * the source Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @return {Observable} An observable of values merged together by joining the\n * passed observable with itself, one after the other, for each value emitted\n * from the source.\n * @method concatMapTo\n * @owner Observable\n */\nfunction concatMapTo(innerObservable, resultSelector) {\n    return this.lift(new mergeMapTo_1.MergeMapToOperator(innerObservable, resultSelector, 1));\n}\nexports.concatMapTo = concatMapTo;\n//# sourceMappingURL=concatMapTo.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Counts the number of emissions on the source and emits that number when the\n * source completes.\n *\n * <span class=\"informal\">Tells how many values were emitted, when the source\n * completes.</span>\n *\n * <img src=\"./img/count.png\" width=\"100%\">\n *\n * `count` transforms an Observable that emits values into an Observable that\n * emits a single value that represents the number of values emitted by the\n * source Observable. If the source Observable terminates with an error, `count`\n * will pass this error notification along without emitting an value first. If\n * the source Observable does not terminate at all, `count` will neither emit\n * a value nor terminate. This operator takes an optional `predicate` function\n * as argument, in which case the output emission will represent the number of\n * source values that matched `true` with the `predicate`.\n *\n * @example <caption>Counts how many seconds have passed before the first click happened</caption>\n * var seconds = Rx.Observable.interval(1000);\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var secondsBeforeClick = seconds.takeUntil(clicks);\n * var result = secondsBeforeClick.count();\n * result.subscribe(x => console.log(x));\n *\n * @example <caption>Counts how many odd numbers are there between 1 and 7</caption>\n * var numbers = Rx.Observable.range(1, 7);\n * var result = numbers.count(i => i % 2 === 1);\n * result.subscribe(x => console.log(x));\n *\n * // Results in:\n * // 4\n *\n * @see {@link max}\n * @see {@link min}\n * @see {@link reduce}\n *\n * @param {function(value: T, i: number, source: Observable<T>): boolean} [predicate] A\n * boolean function to select what values are to be counted. It is provided with\n * arguments of:\n * - `value`: the value from the source Observable.\n * - `index`: the (zero-based) \"index\" of the value from the source Observable.\n * - `source`: the source Observable instance itself.\n * @return {Observable} An Observable of one number that represents the count as\n * described above.\n * @method count\n * @owner Observable\n */\nfunction count(predicate) {\n    return this.lift(new CountOperator(predicate, this));\n}\nexports.count = count;\nvar CountOperator = (function () {\n    function CountOperator(predicate, source) {\n        this.predicate = predicate;\n        this.source = source;\n    }\n    CountOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n    };\n    return CountOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar CountSubscriber = (function (_super) {\n    __extends(CountSubscriber, _super);\n    function CountSubscriber(destination, predicate, source) {\n        _super.call(this, destination);\n        this.predicate = predicate;\n        this.source = source;\n        this.count = 0;\n        this.index = 0;\n    }\n    CountSubscriber.prototype._next = function (value) {\n        if (this.predicate) {\n            this._tryPredicate(value);\n        }\n        else {\n            this.count++;\n        }\n    };\n    CountSubscriber.prototype._tryPredicate = function (value) {\n        var result;\n        try {\n            result = this.predicate(value, this.index++, this.source);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (result) {\n            this.count++;\n        }\n    };\n    CountSubscriber.prototype._complete = function () {\n        this.destination.next(this.count);\n        this.destination.complete();\n    };\n    return CountSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=count.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Emits a value from the source Observable only after a particular time span\n * determined by another Observable has passed without another source emission.\n *\n * <span class=\"informal\">It's like {@link debounceTime}, but the time span of\n * emission silence is determined by a second Observable.</span>\n *\n * <img src=\"./img/debounce.png\" width=\"100%\">\n *\n * `debounce` delays values emitted by the source Observable, but drops previous\n * pending delayed emissions if a new value arrives on the source Observable.\n * This operator keeps track of the most recent value from the source\n * Observable, and spawns a duration Observable by calling the\n * `durationSelector` function. The value is emitted only when the duration\n * Observable emits a value or completes, and if no other value was emitted on\n * the source Observable since the duration Observable was spawned. If a new\n * value appears before the duration Observable emits, the previous value will\n * be dropped and will not be emitted on the output Observable.\n *\n * Like {@link debounceTime}, this is a rate-limiting operator, and also a\n * delay-like operator since output emissions do not necessarily occur at the\n * same time as they did on the source Observable.\n *\n * @example <caption>Emit the most recent click after a burst of clicks</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.debounce(() => Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link audit}\n * @see {@link debounceTime}\n * @see {@link delayWhen}\n * @see {@link throttle}\n *\n * @param {function(value: T): Observable|Promise} durationSelector A function\n * that receives a value from the source Observable, for computing the timeout\n * duration for each source value, returned as an Observable or a Promise.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified duration Observable returned by\n * `durationSelector`, and may drop some values if they occur too frequently.\n * @method debounce\n * @owner Observable\n */\nfunction debounce(durationSelector) {\n    return this.lift(new DebounceOperator(durationSelector));\n}\nexports.debounce = debounce;\nvar DebounceOperator = (function () {\n    function DebounceOperator(durationSelector) {\n        this.durationSelector = durationSelector;\n    }\n    DebounceOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n    };\n    return DebounceOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DebounceSubscriber = (function (_super) {\n    __extends(DebounceSubscriber, _super);\n    function DebounceSubscriber(destination, durationSelector) {\n        _super.call(this, destination);\n        this.durationSelector = durationSelector;\n        this.hasValue = false;\n        this.durationSubscription = null;\n    }\n    DebounceSubscriber.prototype._next = function (value) {\n        try {\n            var result = this.durationSelector.call(this, value);\n            if (result) {\n                this._tryNext(value, result);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    DebounceSubscriber.prototype._complete = function () {\n        this.emitValue();\n        this.destination.complete();\n    };\n    DebounceSubscriber.prototype._tryNext = function (value, duration) {\n        var subscription = this.durationSubscription;\n        this.value = value;\n        this.hasValue = true;\n        if (subscription) {\n            subscription.unsubscribe();\n            this.remove(subscription);\n        }\n        subscription = subscribeToResult_1.subscribeToResult(this, duration);\n        if (!subscription.closed) {\n            this.add(this.durationSubscription = subscription);\n        }\n    };\n    DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.emitValue();\n    };\n    DebounceSubscriber.prototype.notifyComplete = function () {\n        this.emitValue();\n    };\n    DebounceSubscriber.prototype.emitValue = function () {\n        if (this.hasValue) {\n            var value = this.value;\n            var subscription = this.durationSubscription;\n            if (subscription) {\n                this.durationSubscription = null;\n                subscription.unsubscribe();\n                this.remove(subscription);\n            }\n            this.value = null;\n            this.hasValue = false;\n            _super.prototype._next.call(this, value);\n        }\n    };\n    return DebounceSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=debounce.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar async_1 = require('../scheduler/async');\n/**\n * Emits a value from the source Observable only after a particular time span\n * has passed without another source emission.\n *\n * <span class=\"informal\">It's like {@link delay}, but passes only the most\n * recent value from each burst of emissions.</span>\n *\n * <img src=\"./img/debounceTime.png\" width=\"100%\">\n *\n * `debounceTime` delays values emitted by the source Observable, but drops\n * previous pending delayed emissions if a new value arrives on the source\n * Observable. This operator keeps track of the most recent value from the\n * source Observable, and emits that only when `dueTime` enough time has passed\n * without any other value appearing on the source Observable. If a new value\n * appears before `dueTime` silence occurs, the previous value will be dropped\n * and will not be emitted on the output Observable.\n *\n * This is a rate-limiting operator, because it is impossible for more than one\n * value to be emitted in any time window of duration `dueTime`, but it is also\n * a delay-like operator since output emissions do not occur at the same time as\n * they did on the source Observable. Optionally takes a {@link Scheduler} for\n * managing timers.\n *\n * @example <caption>Emit the most recent click after a burst of clicks</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.debounceTime(1000);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link auditTime}\n * @see {@link debounce}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttleTime}\n *\n * @param {number} dueTime The timeout duration in milliseconds (or the time\n * unit determined internally by the optional `scheduler`) for the window of\n * time required to wait for emission silence before emitting the most recent\n * source value.\n * @param {Scheduler} [scheduler=async] The {@link Scheduler} to use for\n * managing the timers that handle the timeout for each value.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified `dueTime`, and may drop some values if they occur\n * too frequently.\n * @method debounceTime\n * @owner Observable\n */\nfunction debounceTime(dueTime, scheduler) {\n    if (scheduler === void 0) { scheduler = async_1.async; }\n    return this.lift(new DebounceTimeOperator(dueTime, scheduler));\n}\nexports.debounceTime = debounceTime;\nvar DebounceTimeOperator = (function () {\n    function DebounceTimeOperator(dueTime, scheduler) {\n        this.dueTime = dueTime;\n        this.scheduler = scheduler;\n    }\n    DebounceTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n    };\n    return DebounceTimeOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DebounceTimeSubscriber = (function (_super) {\n    __extends(DebounceTimeSubscriber, _super);\n    function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n        _super.call(this, destination);\n        this.dueTime = dueTime;\n        this.scheduler = scheduler;\n        this.debouncedSubscription = null;\n        this.lastValue = null;\n        this.hasValue = false;\n    }\n    DebounceTimeSubscriber.prototype._next = function (value) {\n        this.clearDebounce();\n        this.lastValue = value;\n        this.hasValue = true;\n        this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n    };\n    DebounceTimeSubscriber.prototype._complete = function () {\n        this.debouncedNext();\n        this.destination.complete();\n    };\n    DebounceTimeSubscriber.prototype.debouncedNext = function () {\n        this.clearDebounce();\n        if (this.hasValue) {\n            this.destination.next(this.lastValue);\n            this.lastValue = null;\n            this.hasValue = false;\n        }\n    };\n    DebounceTimeSubscriber.prototype.clearDebounce = function () {\n        var debouncedSubscription = this.debouncedSubscription;\n        if (debouncedSubscription !== null) {\n            this.remove(debouncedSubscription);\n            debouncedSubscription.unsubscribe();\n            this.debouncedSubscription = null;\n        }\n    };\n    return DebounceTimeSubscriber;\n}(Subscriber_1.Subscriber));\nfunction dispatchNext(subscriber) {\n    subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/* tslint:disable:max-line-length */\n/**\n * Emits a given value if the source Observable completes without emitting any\n * `next` value, otherwise mirrors the source Observable.\n *\n * <span class=\"informal\">If the source Observable turns out to be empty, then\n * this operator will emit a default value.</span>\n *\n * <img src=\"./img/defaultIfEmpty.png\" width=\"100%\">\n *\n * `defaultIfEmpty` emits the values emitted by the source Observable or a\n * specified default value if the source Observable is empty (completes without\n * having emitted any `next` value).\n *\n * @example <caption>If no clicks happen in 5 seconds, then emit \"no clicks\"</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var clicksBeforeFive = clicks.takeUntil(Rx.Observable.interval(5000));\n * var result = clicksBeforeFive.defaultIfEmpty('no clicks');\n * result.subscribe(x => console.log(x));\n *\n * @see {@link empty}\n * @see {@link last}\n *\n * @param {any} [defaultValue=null] The default value used if the source\n * Observable is empty.\n * @return {Observable} An Observable that emits either the specified\n * `defaultValue` if the source Observable emits no items, or the values emitted\n * by the source Observable.\n * @method defaultIfEmpty\n * @owner Observable\n */\nfunction defaultIfEmpty(defaultValue) {\n    if (defaultValue === void 0) { defaultValue = null; }\n    return this.lift(new DefaultIfEmptyOperator(defaultValue));\n}\nexports.defaultIfEmpty = defaultIfEmpty;\nvar DefaultIfEmptyOperator = (function () {\n    function DefaultIfEmptyOperator(defaultValue) {\n        this.defaultValue = defaultValue;\n    }\n    DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n    };\n    return DefaultIfEmptyOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DefaultIfEmptySubscriber = (function (_super) {\n    __extends(DefaultIfEmptySubscriber, _super);\n    function DefaultIfEmptySubscriber(destination, defaultValue) {\n        _super.call(this, destination);\n        this.defaultValue = defaultValue;\n        this.isEmpty = true;\n    }\n    DefaultIfEmptySubscriber.prototype._next = function (value) {\n        this.isEmpty = false;\n        this.destination.next(value);\n    };\n    DefaultIfEmptySubscriber.prototype._complete = function () {\n        if (this.isEmpty) {\n            this.destination.next(this.defaultValue);\n        }\n        this.destination.complete();\n    };\n    return DefaultIfEmptySubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=defaultIfEmpty.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar async_1 = require('../scheduler/async');\nvar isDate_1 = require('../util/isDate');\nvar Subscriber_1 = require('../Subscriber');\nvar Notification_1 = require('../Notification');\n/**\n * Delays the emission of items from the source Observable by a given timeout or\n * until a given Date.\n *\n * <span class=\"informal\">Time shifts each item by some specified amount of\n * milliseconds.</span>\n *\n * <img src=\"./img/delay.png\" width=\"100%\">\n *\n * If the delay argument is a Number, this operator time shifts the source\n * Observable by that amount of time expressed in milliseconds. The relative\n * time intervals between the values are preserved.\n *\n * If the delay argument is a Date, this operator time shifts the start of the\n * Observable execution until the given date occurs.\n *\n * @example <caption>Delay each click by one second</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var delayedClicks = clicks.delay(1000); // each click emitted after 1 second\n * delayedClicks.subscribe(x => console.log(x));\n *\n * @example <caption>Delay all clicks until a future date happens</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var date = new Date('March 15, 2050 12:00:00'); // in the future\n * var delayedClicks = clicks.delay(date); // click emitted only after that date\n * delayedClicks.subscribe(x => console.log(x));\n *\n * @see {@link debounceTime}\n * @see {@link delayWhen}\n *\n * @param {number|Date} delay The delay duration in milliseconds (a `number`) or\n * a `Date` until which the emission of the source items is delayed.\n * @param {Scheduler} [scheduler=async] The Scheduler to use for\n * managing the timers that handle the time-shift for each item.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by the specified timeout or Date.\n * @method delay\n * @owner Observable\n */\nfunction delay(delay, scheduler) {\n    if (scheduler === void 0) { scheduler = async_1.async; }\n    var absoluteDelay = isDate_1.isDate(delay);\n    var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n    return this.lift(new DelayOperator(delayFor, scheduler));\n}\nexports.delay = delay;\nvar DelayOperator = (function () {\n    function DelayOperator(delay, scheduler) {\n        this.delay = delay;\n        this.scheduler = scheduler;\n    }\n    DelayOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n    };\n    return DelayOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DelaySubscriber = (function (_super) {\n    __extends(DelaySubscriber, _super);\n    function DelaySubscriber(destination, delay, scheduler) {\n        _super.call(this, destination);\n        this.delay = delay;\n        this.scheduler = scheduler;\n        this.queue = [];\n        this.active = false;\n        this.errored = false;\n    }\n    DelaySubscriber.dispatch = function (state) {\n        var source = state.source;\n        var queue = source.queue;\n        var scheduler = state.scheduler;\n        var destination = state.destination;\n        while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n            queue.shift().notification.observe(destination);\n        }\n        if (queue.length > 0) {\n            var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n            this.schedule(state, delay_1);\n        }\n        else {\n            source.active = false;\n        }\n    };\n    DelaySubscriber.prototype._schedule = function (scheduler) {\n        this.active = true;\n        this.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n            source: this, destination: this.destination, scheduler: scheduler\n        }));\n    };\n    DelaySubscriber.prototype.scheduleNotification = function (notification) {\n        if (this.errored === true) {\n            return;\n        }\n        var scheduler = this.scheduler;\n        var message = new DelayMessage(scheduler.now() + this.delay, notification);\n        this.queue.push(message);\n        if (this.active === false) {\n            this._schedule(scheduler);\n        }\n    };\n    DelaySubscriber.prototype._next = function (value) {\n        this.scheduleNotification(Notification_1.Notification.createNext(value));\n    };\n    DelaySubscriber.prototype._error = function (err) {\n        this.errored = true;\n        this.queue = [];\n        this.destination.error(err);\n    };\n    DelaySubscriber.prototype._complete = function () {\n        this.scheduleNotification(Notification_1.Notification.createComplete());\n    };\n    return DelaySubscriber;\n}(Subscriber_1.Subscriber));\nvar DelayMessage = (function () {\n    function DelayMessage(time, notification) {\n        this.time = time;\n        this.notification = notification;\n    }\n    return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar Observable_1 = require('../Observable');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Delays the emission of items from the source Observable by a given time span\n * determined by the emissions of another Observable.\n *\n * <span class=\"informal\">It's like {@link delay}, but the time span of the\n * delay duration is determined by a second Observable.</span>\n *\n * <img src=\"./img/delayWhen.png\" width=\"100%\">\n *\n * `delayWhen` time shifts each emitted value from the source Observable by a\n * time span determined by another Observable. When the source emits a value,\n * the `delayDurationSelector` function is called with the source value as\n * argument, and should return an Observable, called the \"duration\" Observable.\n * The source value is emitted on the output Observable only when the duration\n * Observable emits a value or completes.\n *\n * Optionally, `delayWhen` takes a second argument, `subscriptionDelay`, which\n * is an Observable. When `subscriptionDelay` emits its first value or\n * completes, the source Observable is subscribed to and starts behaving like\n * described in the previous paragraph. If `subscriptionDelay` is not provided,\n * `delayWhen` will subscribe to the source Observable as soon as the output\n * Observable is subscribed.\n *\n * @example <caption>Delay each click by a random amount of time, between 0 and 5 seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var delayedClicks = clicks.delayWhen(event =>\n *   Rx.Observable.interval(Math.random() * 5000)\n * );\n * delayedClicks.subscribe(x => console.log(x));\n *\n * @see {@link debounce}\n * @see {@link delay}\n *\n * @param {function(value: T): Observable} delayDurationSelector A function that\n * returns an Observable for each value emitted by the source Observable, which\n * is then used to delay the emission of that item on the output Observable\n * until the Observable returned from this function emits a value.\n * @param {Observable} subscriptionDelay An Observable that triggers the\n * subscription to the source Observable once it emits any value.\n * @return {Observable} An Observable that delays the emissions of the source\n * Observable by an amount of time specified by the Observable returned by\n * `delayDurationSelector`.\n * @method delayWhen\n * @owner Observable\n */\nfunction delayWhen(delayDurationSelector, subscriptionDelay) {\n    if (subscriptionDelay) {\n        return new SubscriptionDelayObservable(this, subscriptionDelay)\n            .lift(new DelayWhenOperator(delayDurationSelector));\n    }\n    return this.lift(new DelayWhenOperator(delayDurationSelector));\n}\nexports.delayWhen = delayWhen;\nvar DelayWhenOperator = (function () {\n    function DelayWhenOperator(delayDurationSelector) {\n        this.delayDurationSelector = delayDurationSelector;\n    }\n    DelayWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n    };\n    return DelayWhenOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DelayWhenSubscriber = (function (_super) {\n    __extends(DelayWhenSubscriber, _super);\n    function DelayWhenSubscriber(destination, delayDurationSelector) {\n        _super.call(this, destination);\n        this.delayDurationSelector = delayDurationSelector;\n        this.completed = false;\n        this.delayNotifierSubscriptions = [];\n        this.values = [];\n    }\n    DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(outerValue);\n        this.removeSubscription(innerSub);\n        this.tryComplete();\n    };\n    DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n        var value = this.removeSubscription(innerSub);\n        if (value) {\n            this.destination.next(value);\n        }\n        this.tryComplete();\n    };\n    DelayWhenSubscriber.prototype._next = function (value) {\n        try {\n            var delayNotifier = this.delayDurationSelector(value);\n            if (delayNotifier) {\n                this.tryDelay(delayNotifier, value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    DelayWhenSubscriber.prototype._complete = function () {\n        this.completed = true;\n        this.tryComplete();\n    };\n    DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n        subscription.unsubscribe();\n        var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n        var value = null;\n        if (subscriptionIdx !== -1) {\n            value = this.values[subscriptionIdx];\n            this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n            this.values.splice(subscriptionIdx, 1);\n        }\n        return value;\n    };\n    DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n        var notifierSubscription = subscribeToResult_1.subscribeToResult(this, delayNotifier, value);\n        this.add(notifierSubscription);\n        this.delayNotifierSubscriptions.push(notifierSubscription);\n        this.values.push(value);\n    };\n    DelayWhenSubscriber.prototype.tryComplete = function () {\n        if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n            this.destination.complete();\n        }\n    };\n    return DelayWhenSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SubscriptionDelayObservable = (function (_super) {\n    __extends(SubscriptionDelayObservable, _super);\n    function SubscriptionDelayObservable(source, subscriptionDelay) {\n        _super.call(this);\n        this.source = source;\n        this.subscriptionDelay = subscriptionDelay;\n    }\n    SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n        this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n    };\n    return SubscriptionDelayObservable;\n}(Observable_1.Observable));\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SubscriptionDelaySubscriber = (function (_super) {\n    __extends(SubscriptionDelaySubscriber, _super);\n    function SubscriptionDelaySubscriber(parent, source) {\n        _super.call(this);\n        this.parent = parent;\n        this.source = source;\n        this.sourceSubscribed = false;\n    }\n    SubscriptionDelaySubscriber.prototype._next = function (unused) {\n        this.subscribeToSource();\n    };\n    SubscriptionDelaySubscriber.prototype._error = function (err) {\n        this.unsubscribe();\n        this.parent.error(err);\n    };\n    SubscriptionDelaySubscriber.prototype._complete = function () {\n        this.subscribeToSource();\n    };\n    SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n        if (!this.sourceSubscribed) {\n            this.sourceSubscribed = true;\n            this.unsubscribe();\n            this.source.subscribe(this.parent);\n        }\n    };\n    return SubscriptionDelaySubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=delayWhen.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Converts an Observable of {@link Notification} objects into the emissions\n * that they represent.\n *\n * <span class=\"informal\">Unwraps {@link Notification} objects as actual `next`,\n * `error` and `complete` emissions. The opposite of {@link materialize}.</span>\n *\n * <img src=\"./img/dematerialize.png\" width=\"100%\">\n *\n * `dematerialize` is assumed to operate an Observable that only emits\n * {@link Notification} objects as `next` emissions, and does not emit any\n * `error`. Such Observable is the output of a `materialize` operation. Those\n * notifications are then unwrapped using the metadata they contain, and emitted\n * as `next`, `error`, and `complete` on the output Observable.\n *\n * Use this operator in conjunction with {@link materialize}.\n *\n * @example <caption>Convert an Observable of Notifications to an actual Observable</caption>\n * var notifA = new Rx.Notification('N', 'A');\n * var notifB = new Rx.Notification('N', 'B');\n * var notifE = new Rx.Notification('E', void 0,\n *   new TypeError('x.toUpperCase is not a function')\n * );\n * var materialized = Rx.Observable.of(notifA, notifB, notifE);\n * var upperCase = materialized.dematerialize();\n * upperCase.subscribe(x => console.log(x), e => console.error(e));\n *\n * // Results in:\n * // A\n * // B\n * // TypeError: x.toUpperCase is not a function\n *\n * @see {@link Notification}\n * @see {@link materialize}\n *\n * @return {Observable} An Observable that emits items and notifications\n * embedded in Notification objects emitted by the source Observable.\n * @method dematerialize\n * @owner Observable\n */\nfunction dematerialize() {\n    return this.lift(new DeMaterializeOperator());\n}\nexports.dematerialize = dematerialize;\nvar DeMaterializeOperator = (function () {\n    function DeMaterializeOperator() {\n    }\n    DeMaterializeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DeMaterializeSubscriber(subscriber));\n    };\n    return DeMaterializeOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DeMaterializeSubscriber = (function (_super) {\n    __extends(DeMaterializeSubscriber, _super);\n    function DeMaterializeSubscriber(destination) {\n        _super.call(this, destination);\n    }\n    DeMaterializeSubscriber.prototype._next = function (value) {\n        value.observe(this.destination);\n    };\n    return DeMaterializeSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=dematerialize.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\nvar Set_1 = require('../util/Set');\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from previous items.\n * If a keySelector function is provided, then it will project each value from the source observable into a new value that it will\n * check for equality with previously projected values. If a keySelector function is not provided, it will use each value from the\n * source observable directly with an equality check against previous values.\n * In JavaScript runtimes that support `Set`, this operator will use a `Set` to improve performance of the distinct value checking.\n * In other runtimes, this operator will use a minimal implementation of `Set` that relies on an `Array` and `indexOf` under the\n * hood, so performance will degrade as more values are checked for distinction. Even in newer browsers, a long-running `distinct`\n * use might result in memory leaks. To help alleviate this in some scenarios, an optional `flushes` parameter is also provided so\n * that the internal `Set` can be \"flushed\", basically clearing it of values.\n * @param {function} [keySelector] optional function to select which value you want to check as distinct.\n * @param {Observable} [flushes] optional Observable for flushing the internal HashSet of the operator.\n * @return {Observable} an Observable that emits items from the source Observable with distinct values.\n * @method distinct\n * @owner Observable\n */\nfunction distinct(keySelector, flushes) {\n    return this.lift(new DistinctOperator(keySelector, flushes));\n}\nexports.distinct = distinct;\nvar DistinctOperator = (function () {\n    function DistinctOperator(keySelector, flushes) {\n        this.keySelector = keySelector;\n        this.flushes = flushes;\n    }\n    DistinctOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n    };\n    return DistinctOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DistinctSubscriber = (function (_super) {\n    __extends(DistinctSubscriber, _super);\n    function DistinctSubscriber(destination, keySelector, flushes) {\n        _super.call(this, destination);\n        this.keySelector = keySelector;\n        this.values = new Set_1.Set();\n        if (flushes) {\n            this.add(subscribeToResult_1.subscribeToResult(this, flushes));\n        }\n    }\n    DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.values.clear();\n    };\n    DistinctSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    DistinctSubscriber.prototype._next = function (value) {\n        if (this.keySelector) {\n            this._useKeySelector(value);\n        }\n        else {\n            this._finalizeNext(value, value);\n        }\n    };\n    DistinctSubscriber.prototype._useKeySelector = function (value) {\n        var key;\n        var destination = this.destination;\n        try {\n            key = this.keySelector(value);\n        }\n        catch (err) {\n            destination.error(err);\n            return;\n        }\n        this._finalizeNext(key, value);\n    };\n    DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n        var values = this.values;\n        if (!values.has(key)) {\n            values.add(key);\n            this.destination.next(value);\n        }\n    };\n    return DistinctSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\nexports.DistinctSubscriber = DistinctSubscriber;\n//# sourceMappingURL=distinct.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\n/* tslint:disable:max-line-length */\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item.\n * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.\n * If a comparator function is not provided, an equality check is used by default.\n * @param {function} [compare] optional comparison function called to test if an item is distinct from the previous item in the source.\n * @return {Observable} an Observable that emits items from the source Observable with distinct values.\n * @method distinctUntilChanged\n * @owner Observable\n */\nfunction distinctUntilChanged(compare, keySelector) {\n    return this.lift(new DistinctUntilChangedOperator(compare, keySelector));\n}\nexports.distinctUntilChanged = distinctUntilChanged;\nvar DistinctUntilChangedOperator = (function () {\n    function DistinctUntilChangedOperator(compare, keySelector) {\n        this.compare = compare;\n        this.keySelector = keySelector;\n    }\n    DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n    };\n    return DistinctUntilChangedOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DistinctUntilChangedSubscriber = (function (_super) {\n    __extends(DistinctUntilChangedSubscriber, _super);\n    function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n        _super.call(this, destination);\n        this.keySelector = keySelector;\n        this.hasKey = false;\n        if (typeof compare === 'function') {\n            this.compare = compare;\n        }\n    }\n    DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n        return x === y;\n    };\n    DistinctUntilChangedSubscriber.prototype._next = function (value) {\n        var keySelector = this.keySelector;\n        var key = value;\n        if (keySelector) {\n            key = tryCatch_1.tryCatch(this.keySelector)(value);\n            if (key === errorObject_1.errorObject) {\n                return this.destination.error(errorObject_1.errorObject.e);\n            }\n        }\n        var result = false;\n        if (this.hasKey) {\n            result = tryCatch_1.tryCatch(this.compare)(this.key, key);\n            if (result === errorObject_1.errorObject) {\n                return this.destination.error(errorObject_1.errorObject.e);\n            }\n        }\n        else {\n            this.hasKey = true;\n        }\n        if (Boolean(result) === false) {\n            this.key = key;\n            this.destination.next(value);\n        }\n    };\n    return DistinctUntilChangedSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map",
    "\"use strict\";\nvar distinctUntilChanged_1 = require('./distinctUntilChanged');\n/* tslint:disable:max-line-length */\n/**\n * Returns an Observable that emits all items emitted by the source Observable that are distinct by comparison from the previous item,\n * using a property accessed by using the key provided to check if the two items are distinct.\n * If a comparator function is provided, then it will be called for each item to test for whether or not that value should be emitted.\n * If a comparator function is not provided, an equality check is used by default.\n * @param {string} key string key for object property lookup on each item.\n * @param {function} [compare] optional comparison function called to test if an item is distinct from the previous item in the source.\n * @return {Observable} an Observable that emits items from the source Observable with distinct values based on the key specified.\n * @method distinctUntilKeyChanged\n * @owner Observable\n */\nfunction distinctUntilKeyChanged(key, compare) {\n    return distinctUntilChanged_1.distinctUntilChanged.call(this, function (x, y) {\n        if (compare) {\n            return compare(x[key], y[key]);\n        }\n        return x[key] === y[key];\n    });\n}\nexports.distinctUntilKeyChanged = distinctUntilKeyChanged;\n//# sourceMappingURL=distinctUntilKeyChanged.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/* tslint:disable:max-line-length */\n/**\n * Perform a side effect for every emission on the source Observable, but return\n * an Observable that is identical to the source.\n *\n * <span class=\"informal\">Intercepts each emission on the source and runs a\n * function, but returns an output which is identical to the source.</span>\n *\n * <img src=\"./img/do.png\" width=\"100%\">\n *\n * Returns a mirrored Observable of the source Observable, but modified so that\n * the provided Observer is called to perform a side effect for every value,\n * error, and completion emitted by the source. Any errors that are thrown in\n * the aforementioned Observer or handlers are safely sent down the error path\n * of the output Observable.\n *\n * This operator is useful for debugging your Observables for the correct values\n * or performing other side effects.\n *\n * Note: this is different to a `subscribe` on the Observable. If the Observable\n * returned by `do` is not subscribed, the side effects specified by the\n * Observer will never happen. `do` therefore simply spies on existing\n * execution, it does not trigger an execution to happen like `subscribe` does.\n *\n * @example <caption>Map every every click to the clientX position of that click, while also logging the click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var positions = clicks\n *   .do(ev => console.log(ev))\n *   .map(ev => ev.clientX);\n * positions.subscribe(x => console.log(x));\n *\n * @see {@link map}\n * @see {@link subscribe}\n *\n * @param {Observer|function} [nextOrObserver] A normal Observer object or a\n * callback for `next`.\n * @param {function} [error] Callback for errors in the source.\n * @param {function} [complete] Callback for the completion of the source.\n * @return {Observable} An Observable identical to the source, but runs the\n * specified Observer or callback(s) for each item.\n * @method do\n * @name do\n * @owner Observable\n */\nfunction _do(nextOrObserver, error, complete) {\n    return this.lift(new DoOperator(nextOrObserver, error, complete));\n}\nexports._do = _do;\nvar DoOperator = (function () {\n    function DoOperator(nextOrObserver, error, complete) {\n        this.nextOrObserver = nextOrObserver;\n        this.error = error;\n        this.complete = complete;\n    }\n    DoOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new DoSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n    };\n    return DoOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar DoSubscriber = (function (_super) {\n    __extends(DoSubscriber, _super);\n    function DoSubscriber(destination, nextOrObserver, error, complete) {\n        _super.call(this, destination);\n        var safeSubscriber = new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n        safeSubscriber.syncErrorThrowable = true;\n        this.add(safeSubscriber);\n        this.safeSubscriber = safeSubscriber;\n    }\n    DoSubscriber.prototype._next = function (value) {\n        var safeSubscriber = this.safeSubscriber;\n        safeSubscriber.next(value);\n        if (safeSubscriber.syncErrorThrown) {\n            this.destination.error(safeSubscriber.syncErrorValue);\n        }\n        else {\n            this.destination.next(value);\n        }\n    };\n    DoSubscriber.prototype._error = function (err) {\n        var safeSubscriber = this.safeSubscriber;\n        safeSubscriber.error(err);\n        if (safeSubscriber.syncErrorThrown) {\n            this.destination.error(safeSubscriber.syncErrorValue);\n        }\n        else {\n            this.destination.error(err);\n        }\n    };\n    DoSubscriber.prototype._complete = function () {\n        var safeSubscriber = this.safeSubscriber;\n        safeSubscriber.complete();\n        if (safeSubscriber.syncErrorThrown) {\n            this.destination.error(safeSubscriber.syncErrorValue);\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    return DoSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=do.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar ArgumentOutOfRangeError_1 = require('../util/ArgumentOutOfRangeError');\n/**\n * Emits the single value at the specified `index` in a sequence of emissions\n * from the source Observable.\n *\n * <span class=\"informal\">Emits only the i-th value, then completes.</span>\n *\n * <img src=\"./img/elementAt.png\" width=\"100%\">\n *\n * `elementAt` returns an Observable that emits the item at the specified\n * `index` in the source Observable, or a default value if that `index` is out\n * of range and the `default` argument is provided. If the `default` argument is\n * not given and the `index` is out of range, the output Observable will emit an\n * `ArgumentOutOfRangeError` error.\n *\n * @example <caption>Emit only the third click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.elementAt(2);\n * result.subscribe(x => console.log(x));\n *\n * // Results in:\n * // click 1 = nothing\n * // click 2 = nothing\n * // click 3 = MouseEvent object logged to console\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link skip}\n * @see {@link single}\n * @see {@link take}\n *\n * @throws {ArgumentOutOfRangeError} When using `elementAt(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0` or the\n * Observable has completed before emitting the i-th `next` notification.\n *\n * @param {number} index Is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {T} [defaultValue] The default value returned for missing indices.\n * @return {Observable} An Observable that emits a single item, if it is found.\n * Otherwise, will emit the default value if given. If not, then emits an error.\n * @method elementAt\n * @owner Observable\n */\nfunction elementAt(index, defaultValue) {\n    return this.lift(new ElementAtOperator(index, defaultValue));\n}\nexports.elementAt = elementAt;\nvar ElementAtOperator = (function () {\n    function ElementAtOperator(index, defaultValue) {\n        this.index = index;\n        this.defaultValue = defaultValue;\n        if (index < 0) {\n            throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;\n        }\n    }\n    ElementAtOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ElementAtSubscriber(subscriber, this.index, this.defaultValue));\n    };\n    return ElementAtOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ElementAtSubscriber = (function (_super) {\n    __extends(ElementAtSubscriber, _super);\n    function ElementAtSubscriber(destination, index, defaultValue) {\n        _super.call(this, destination);\n        this.index = index;\n        this.defaultValue = defaultValue;\n    }\n    ElementAtSubscriber.prototype._next = function (x) {\n        if (this.index-- === 0) {\n            this.destination.next(x);\n            this.destination.complete();\n        }\n    };\n    ElementAtSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        if (this.index >= 0) {\n            if (typeof this.defaultValue !== 'undefined') {\n                destination.next(this.defaultValue);\n            }\n            else {\n                destination.error(new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError);\n            }\n        }\n        destination.complete();\n    };\n    return ElementAtSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=elementAt.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Returns an Observable that emits whether or not every item of the source satisfies the condition specified.\n * @param {function} predicate a function for determining if an item meets a specified condition.\n * @param {any} [thisArg] optional object to use for `this` in the callback\n * @return {Observable} an Observable of booleans that determines if all items of the source Observable meet the condition specified.\n * @method every\n * @owner Observable\n */\nfunction every(predicate, thisArg) {\n    return this.lift(new EveryOperator(predicate, thisArg, this));\n}\nexports.every = every;\nvar EveryOperator = (function () {\n    function EveryOperator(predicate, thisArg, source) {\n        this.predicate = predicate;\n        this.thisArg = thisArg;\n        this.source = source;\n    }\n    EveryOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n    };\n    return EveryOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar EverySubscriber = (function (_super) {\n    __extends(EverySubscriber, _super);\n    function EverySubscriber(destination, predicate, thisArg, source) {\n        _super.call(this, destination);\n        this.predicate = predicate;\n        this.thisArg = thisArg;\n        this.source = source;\n        this.index = 0;\n        this.thisArg = thisArg || this;\n    }\n    EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n        this.destination.next(everyValueMatch);\n        this.destination.complete();\n    };\n    EverySubscriber.prototype._next = function (value) {\n        var result = false;\n        try {\n            result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (!result) {\n            this.notifyComplete(false);\n        }\n    };\n    EverySubscriber.prototype._complete = function () {\n        this.notifyComplete(true);\n    };\n    return EverySubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=every.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Converts a higher-order Observable into a first-order Observable by dropping\n * inner Observables while the previous inner Observable has not yet completed.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables by dropping the\n * next inner Observables while the current inner is still executing.</span>\n *\n * <img src=\"./img/exhaust.png\" width=\"100%\">\n *\n * `exhaust` subscribes to an Observable that emits Observables, also known as a\n * higher-order Observable. Each time it observes one of these emitted inner\n * Observables, the output Observable begins emitting the items emitted by that\n * inner Observable. So far, it behaves like {@link mergeAll}. However,\n * `exhaust` ignores every new inner Observable if the previous Observable has\n * not yet completed. Once that one completes, it will accept and flatten the\n * next inner Observable and repeat this process.\n *\n * @example <caption>Run a finite timer for each click, only if there is no currently active timer</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000));\n * var result = higherOrder.exhaust();\n * result.subscribe(x => console.log(x));\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link switch}\n * @see {@link mergeAll}\n * @see {@link exhaustMap}\n * @see {@link zipAll}\n *\n * @return {Observable} Returns an Observable that takes a source of Observables\n * and propagates the first observable exclusively until it completes before\n * subscribing to the next.\n * @method exhaust\n * @owner Observable\n */\nfunction exhaust() {\n    return this.lift(new SwitchFirstOperator());\n}\nexports.exhaust = exhaust;\nvar SwitchFirstOperator = (function () {\n    function SwitchFirstOperator() {\n    }\n    SwitchFirstOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SwitchFirstSubscriber(subscriber));\n    };\n    return SwitchFirstOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SwitchFirstSubscriber = (function (_super) {\n    __extends(SwitchFirstSubscriber, _super);\n    function SwitchFirstSubscriber(destination) {\n        _super.call(this, destination);\n        this.hasCompleted = false;\n        this.hasSubscription = false;\n    }\n    SwitchFirstSubscriber.prototype._next = function (value) {\n        if (!this.hasSubscription) {\n            this.hasSubscription = true;\n            this.add(subscribeToResult_1.subscribeToResult(this, value));\n        }\n    };\n    SwitchFirstSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (!this.hasSubscription) {\n            this.destination.complete();\n        }\n    };\n    SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.remove(innerSub);\n        this.hasSubscription = false;\n        if (this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return SwitchFirstSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=exhaust.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:disable:max-line-length */\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable only if the previous projected Observable has completed.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link exhaust}.</span>\n *\n * <img src=\"./img/exhaustMap.png\" width=\"100%\">\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. When it projects a source value to\n * an Observable, the output Observable begins emitting the items emitted by\n * that projected Observable. However, `exhaustMap` ignores every new projected\n * Observable if the previous projected Observable has not yet completed. Once\n * that one completes, it will accept and flatten the next projected Observable\n * and repeat this process.\n *\n * @example <caption>Run a finite timer for each click, only if there is no currently active timer</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.exhaustMap((ev) => Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link concatMap}\n * @see {@link exhaust}\n * @see {@link mergeMap}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): Observable} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @return {Observable} An Observable containing projected Observables\n * of each item of the source, ignoring projected Observables that start before\n * their preceding Observable has completed.\n * @method exhaustMap\n * @owner Observable\n */\nfunction exhaustMap(project, resultSelector) {\n    return this.lift(new SwitchFirstMapOperator(project, resultSelector));\n}\nexports.exhaustMap = exhaustMap;\nvar SwitchFirstMapOperator = (function () {\n    function SwitchFirstMapOperator(project, resultSelector) {\n        this.project = project;\n        this.resultSelector = resultSelector;\n    }\n    SwitchFirstMapOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SwitchFirstMapSubscriber(subscriber, this.project, this.resultSelector));\n    };\n    return SwitchFirstMapOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SwitchFirstMapSubscriber = (function (_super) {\n    __extends(SwitchFirstMapSubscriber, _super);\n    function SwitchFirstMapSubscriber(destination, project, resultSelector) {\n        _super.call(this, destination);\n        this.project = project;\n        this.resultSelector = resultSelector;\n        this.hasSubscription = false;\n        this.hasCompleted = false;\n        this.index = 0;\n    }\n    SwitchFirstMapSubscriber.prototype._next = function (value) {\n        if (!this.hasSubscription) {\n            this.tryNext(value);\n        }\n    };\n    SwitchFirstMapSubscriber.prototype.tryNext = function (value) {\n        var index = this.index++;\n        var destination = this.destination;\n        try {\n            var result = this.project(value, index);\n            this.hasSubscription = true;\n            this.add(subscribeToResult_1.subscribeToResult(this, result, value, index));\n        }\n        catch (err) {\n            destination.error(err);\n        }\n    };\n    SwitchFirstMapSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (!this.hasSubscription) {\n            this.destination.complete();\n        }\n    };\n    SwitchFirstMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var _a = this, resultSelector = _a.resultSelector, destination = _a.destination;\n        if (resultSelector) {\n            this.trySelectResult(outerValue, innerValue, outerIndex, innerIndex);\n        }\n        else {\n            destination.next(innerValue);\n        }\n    };\n    SwitchFirstMapSubscriber.prototype.trySelectResult = function (outerValue, innerValue, outerIndex, innerIndex) {\n        var _a = this, resultSelector = _a.resultSelector, destination = _a.destination;\n        try {\n            var result = resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n            destination.next(result);\n        }\n        catch (err) {\n            destination.error(err);\n        }\n    };\n    SwitchFirstMapSubscriber.prototype.notifyError = function (err) {\n        this.destination.error(err);\n    };\n    SwitchFirstMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.remove(innerSub);\n        this.hasSubscription = false;\n        if (this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return SwitchFirstMapSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=exhaustMap.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:disable:max-line-length */\n/**\n * Recursively projects each source value to an Observable which is merged in\n * the output Observable.\n *\n * <span class=\"informal\">It's similar to {@link mergeMap}, but applies the\n * projection function to every source value as well as every output value.\n * It's recursive.</span>\n *\n * <img src=\"./img/expand.png\" width=\"100%\">\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger. *Expand* will re-emit on the output\n * Observable every source value. Then, each output value is given to the\n * `project` function which returns an inner Observable to be merged on the\n * output Observable. Those output values resulting from the projection are also\n * given to the `project` function to produce new output values. This is how\n * *expand* behaves recursively.\n *\n * @example <caption>Start emitting the powers of two on every click, at most 10 of them</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var powersOfTwo = clicks\n *   .mapTo(1)\n *   .expand(x => Rx.Observable.of(2 * x).delay(1000))\n *   .take(10);\n * powersOfTwo.subscribe(x => console.log(x));\n *\n * @see {@link mergeMap}\n * @see {@link mergeScan}\n *\n * @param {function(value: T, index: number) => Observable} project A function\n * that, when applied to an item emitted by the source or the output Observable,\n * returns an Observable.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {Scheduler} [scheduler=null] The Scheduler to use for subscribing to\n * each projected inner Observable.\n * @return {Observable} An Observable that emits the source values and also\n * result of applying the projection function to each value emitted on the\n * output Observable and and merging the results of the Observables obtained\n * from this transformation.\n * @method expand\n * @owner Observable\n */\nfunction expand(project, concurrent, scheduler) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    if (scheduler === void 0) { scheduler = undefined; }\n    concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n    return this.lift(new ExpandOperator(project, concurrent, scheduler));\n}\nexports.expand = expand;\nvar ExpandOperator = (function () {\n    function ExpandOperator(project, concurrent, scheduler) {\n        this.project = project;\n        this.concurrent = concurrent;\n        this.scheduler = scheduler;\n    }\n    ExpandOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n    };\n    return ExpandOperator;\n}());\nexports.ExpandOperator = ExpandOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ExpandSubscriber = (function (_super) {\n    __extends(ExpandSubscriber, _super);\n    function ExpandSubscriber(destination, project, concurrent, scheduler) {\n        _super.call(this, destination);\n        this.project = project;\n        this.concurrent = concurrent;\n        this.scheduler = scheduler;\n        this.index = 0;\n        this.active = 0;\n        this.hasCompleted = false;\n        if (concurrent < Number.POSITIVE_INFINITY) {\n            this.buffer = [];\n        }\n    }\n    ExpandSubscriber.dispatch = function (arg) {\n        var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n        subscriber.subscribeToProjection(result, value, index);\n    };\n    ExpandSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        if (destination.closed) {\n            this._complete();\n            return;\n        }\n        var index = this.index++;\n        if (this.active < this.concurrent) {\n            destination.next(value);\n            var result = tryCatch_1.tryCatch(this.project)(value, index);\n            if (result === errorObject_1.errorObject) {\n                destination.error(errorObject_1.errorObject.e);\n            }\n            else if (!this.scheduler) {\n                this.subscribeToProjection(result, value, index);\n            }\n            else {\n                var state = { subscriber: this, result: result, value: value, index: index };\n                this.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n            }\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n        this.active++;\n        this.add(subscribeToResult_1.subscribeToResult(this, result, value, index));\n    };\n    ExpandSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.hasCompleted && this.active === 0) {\n            this.destination.complete();\n        }\n    };\n    ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this._next(innerValue);\n    };\n    ExpandSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        this.remove(innerSub);\n        this.active--;\n        if (buffer && buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        if (this.hasCompleted && this.active === 0) {\n            this.destination.complete();\n        }\n    };\n    return ExpandSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\nexports.ExpandSubscriber = ExpandSubscriber;\n//# sourceMappingURL=expand.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/* tslint:disable:max-line-length */\n/**\n * Filter items emitted by the source Observable by only emitting those that\n * satisfy a specified predicate.\n *\n * <span class=\"informal\">Like\n * [Array.prototype.filter()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter),\n * it only emits a value from the source if it passes a criterion function.</span>\n *\n * <img src=\"./img/filter.png\" width=\"100%\">\n *\n * Similar to the well-known `Array.prototype.filter` method, this operator\n * takes values from the source Observable, passes them through a `predicate`\n * function and only emits those values that yielded `true`.\n *\n * @example <caption>Emit only click events whose target was a DIV element</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var clicksOnDivs = clicks.filter(ev => ev.target.tagName === 'DIV');\n * clicksOnDivs.subscribe(x => console.log(x));\n *\n * @see {@link distinct}\n * @see {@link distinctUntilChanged}\n * @see {@link distinctUntilKeyChanged}\n * @see {@link ignoreElements}\n * @see {@link partition}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted, if `false` the value is not passed to the output\n * Observable. The `index` parameter is the number `i` for the i-th source\n * emission that has happened since the subscription, starting from the number\n * `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of values from the source that were\n * allowed by the `predicate` function.\n * @method filter\n * @owner Observable\n */\nfunction filter(predicate, thisArg) {\n    return this.lift(new FilterOperator(predicate, thisArg));\n}\nexports.filter = filter;\nvar FilterOperator = (function () {\n    function FilterOperator(predicate, thisArg) {\n        this.predicate = predicate;\n        this.thisArg = thisArg;\n    }\n    FilterOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n    };\n    return FilterOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar FilterSubscriber = (function (_super) {\n    __extends(FilterSubscriber, _super);\n    function FilterSubscriber(destination, predicate, thisArg) {\n        _super.call(this, destination);\n        this.predicate = predicate;\n        this.thisArg = thisArg;\n        this.count = 0;\n        this.predicate = predicate;\n    }\n    // the try catch block below is left specifically for\n    // optimization and perf reasons. a tryCatcher is not necessary here.\n    FilterSubscriber.prototype._next = function (value) {\n        var result;\n        try {\n            result = this.predicate.call(this.thisArg, value, this.count++);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (result) {\n            this.destination.next(value);\n        }\n    };\n    return FilterSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=filter.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar Subscription_1 = require('../Subscription');\n/**\n * Returns an Observable that mirrors the source Observable, but will call a specified function when\n * the source terminates on complete or error.\n * @param {function} callback function to be called when source terminates.\n * @return {Observable} an Observable that mirrors the source, but will call the specified function on termination.\n * @method finally\n * @owner Observable\n */\nfunction _finally(callback) {\n    return this.lift(new FinallyOperator(callback));\n}\nexports._finally = _finally;\nvar FinallyOperator = (function () {\n    function FinallyOperator(callback) {\n        this.callback = callback;\n    }\n    FinallyOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n    };\n    return FinallyOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar FinallySubscriber = (function (_super) {\n    __extends(FinallySubscriber, _super);\n    function FinallySubscriber(destination, callback) {\n        _super.call(this, destination);\n        this.add(new Subscription_1.Subscription(callback));\n    }\n    return FinallySubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=finally.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/* tslint:disable:max-line-length */\n/**\n * Emits only the first value emitted by the source Observable that meets some\n * condition.\n *\n * <span class=\"informal\">Finds the first value that passes some test and emits\n * that.</span>\n *\n * <img src=\"./img/find.png\" width=\"100%\">\n *\n * `find` searches for the first item in the source Observable that matches the\n * specified condition embodied by the `predicate`, and returns the first\n * occurrence in the source. Unlike {@link first}, the `predicate` is required\n * in `find`, and does not emit an error if a valid value is not found.\n *\n * @example <caption>Find and emit the first click that happens on a DIV element</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.find(ev => ev.target.tagName === 'DIV');\n * result.subscribe(x => console.log(x));\n *\n * @see {@link filter}\n * @see {@link first}\n * @see {@link findIndex}\n * @see {@link take}\n *\n * @param {function(value: T, index: number, source: Observable<T>): boolean} predicate\n * A function called with each item to test for condition matching.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable<T>} An Observable of the first item that matches the\n * condition.\n * @method find\n * @owner Observable\n */\nfunction find(predicate, thisArg) {\n    if (typeof predicate !== 'function') {\n        throw new TypeError('predicate is not a function');\n    }\n    return this.lift(new FindValueOperator(predicate, this, false, thisArg));\n}\nexports.find = find;\nvar FindValueOperator = (function () {\n    function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n        this.predicate = predicate;\n        this.source = source;\n        this.yieldIndex = yieldIndex;\n        this.thisArg = thisArg;\n    }\n    FindValueOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n    };\n    return FindValueOperator;\n}());\nexports.FindValueOperator = FindValueOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar FindValueSubscriber = (function (_super) {\n    __extends(FindValueSubscriber, _super);\n    function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n        _super.call(this, destination);\n        this.predicate = predicate;\n        this.source = source;\n        this.yieldIndex = yieldIndex;\n        this.thisArg = thisArg;\n        this.index = 0;\n    }\n    FindValueSubscriber.prototype.notifyComplete = function (value) {\n        var destination = this.destination;\n        destination.next(value);\n        destination.complete();\n    };\n    FindValueSubscriber.prototype._next = function (value) {\n        var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n        var index = this.index++;\n        try {\n            var result = predicate.call(thisArg || this, value, index, this.source);\n            if (result) {\n                this.notifyComplete(this.yieldIndex ? index : value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    FindValueSubscriber.prototype._complete = function () {\n        this.notifyComplete(this.yieldIndex ? -1 : undefined);\n    };\n    return FindValueSubscriber;\n}(Subscriber_1.Subscriber));\nexports.FindValueSubscriber = FindValueSubscriber;\n//# sourceMappingURL=find.js.map",
    "\"use strict\";\nvar find_1 = require('./find');\n/**\n * Emits only the index of the first value emitted by the source Observable that\n * meets some condition.\n *\n * <span class=\"informal\">It's like {@link find}, but emits the index of the\n * found value, not the value itself.</span>\n *\n * <img src=\"./img/findIndex.png\" width=\"100%\">\n *\n * `findIndex` searches for the first item in the source Observable that matches\n * the specified condition embodied by the `predicate`, and returns the\n * (zero-based) index of the first occurrence in the source. Unlike\n * {@link first}, the `predicate` is required in `findIndex`, and does not emit\n * an error if a valid value is not found.\n *\n * @example <caption>Emit the index of first click that happens on a DIV element</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.findIndex(ev => ev.target.tagName === 'DIV');\n * result.subscribe(x => console.log(x));\n *\n * @see {@link filter}\n * @see {@link find}\n * @see {@link first}\n * @see {@link take}\n *\n * @param {function(value: T, index: number, source: Observable<T>): boolean} predicate\n * A function called with each item to test for condition matching.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {Observable} An Observable of the index of the first item that\n * matches the condition.\n * @method find\n * @owner Observable\n */\nfunction findIndex(predicate, thisArg) {\n    return this.lift(new find_1.FindValueOperator(predicate, this, true, thisArg));\n}\nexports.findIndex = findIndex;\n//# sourceMappingURL=findIndex.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar EmptyError_1 = require('../util/EmptyError');\n/**\n * Emits only the first value (or the first value that meets some condition)\n * emitted by the source Observable.\n *\n * <span class=\"informal\">Emits only the first value. Or emits only the first\n * value that passes some test.</span>\n *\n * <img src=\"./img/first.png\" width=\"100%\">\n *\n * If called with no arguments, `first` emits the first value of the source\n * Observable, then completes. If called with a `predicate` function, `first`\n * emits the first value of the source that matches the specified condition. It\n * may also take a `resultSelector` function to produce the output value from\n * the input value, and a `defaultValue` to emit in case the source completes\n * before it is able to emit a valid value. Throws an error if `defaultValue`\n * was not provided and a matching element is not found.\n *\n * @example <caption>Emit only the first click that happens on the DOM</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.first();\n * result.subscribe(x => console.log(x));\n *\n * @example <caption>Emits the first click that happens on a DIV</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.first(ev => ev.target.tagName === 'DIV');\n * result.subscribe(x => console.log(x));\n *\n * @see {@link filter}\n * @see {@link find}\n * @see {@link take}\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n *\n * @param {function(value: T, index: number, source: Observable<T>): boolean} [predicate]\n * An optional function called with each item to test for condition matching.\n * @param {function(value: T, index: number): R} [resultSelector] A function to\n * produce the value on the output Observable based on the values\n * and the indices of the source Observable. The arguments passed to this\n * function are:\n * - `value`: the value that was emitted on the source.\n * - `index`: the \"index\" of the value from the source.\n * @param {R} [defaultValue] The default value emitted in case no valid value\n * was found on the source.\n * @return {Observable<T|R>} an Observable of the first item that matches the\n * condition.\n * @method first\n * @owner Observable\n */\nfunction first(predicate, resultSelector, defaultValue) {\n    return this.lift(new FirstOperator(predicate, resultSelector, defaultValue, this));\n}\nexports.first = first;\nvar FirstOperator = (function () {\n    function FirstOperator(predicate, resultSelector, defaultValue, source) {\n        this.predicate = predicate;\n        this.resultSelector = resultSelector;\n        this.defaultValue = defaultValue;\n        this.source = source;\n    }\n    FirstOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new FirstSubscriber(observer, this.predicate, this.resultSelector, this.defaultValue, this.source));\n    };\n    return FirstOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar FirstSubscriber = (function (_super) {\n    __extends(FirstSubscriber, _super);\n    function FirstSubscriber(destination, predicate, resultSelector, defaultValue, source) {\n        _super.call(this, destination);\n        this.predicate = predicate;\n        this.resultSelector = resultSelector;\n        this.defaultValue = defaultValue;\n        this.source = source;\n        this.index = 0;\n        this.hasCompleted = false;\n        this._emitted = false;\n    }\n    FirstSubscriber.prototype._next = function (value) {\n        var index = this.index++;\n        if (this.predicate) {\n            this._tryPredicate(value, index);\n        }\n        else {\n            this._emit(value, index);\n        }\n    };\n    FirstSubscriber.prototype._tryPredicate = function (value, index) {\n        var result;\n        try {\n            result = this.predicate(value, index, this.source);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (result) {\n            this._emit(value, index);\n        }\n    };\n    FirstSubscriber.prototype._emit = function (value, index) {\n        if (this.resultSelector) {\n            this._tryResultSelector(value, index);\n            return;\n        }\n        this._emitFinal(value);\n    };\n    FirstSubscriber.prototype._tryResultSelector = function (value, index) {\n        var result;\n        try {\n            result = this.resultSelector(value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this._emitFinal(result);\n    };\n    FirstSubscriber.prototype._emitFinal = function (value) {\n        var destination = this.destination;\n        if (!this._emitted) {\n            this._emitted = true;\n            destination.next(value);\n            destination.complete();\n            this.hasCompleted = true;\n        }\n    };\n    FirstSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        if (!this.hasCompleted && typeof this.defaultValue !== 'undefined') {\n            destination.next(this.defaultValue);\n            destination.complete();\n        }\n        else if (!this.hasCompleted) {\n            destination.error(new EmptyError_1.EmptyError);\n        }\n    };\n    return FirstSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=first.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar Subscription_1 = require('../Subscription');\nvar Observable_1 = require('../Observable');\nvar Subject_1 = require('../Subject');\nvar Map_1 = require('../util/Map');\nvar FastMap_1 = require('../util/FastMap');\n/* tslint:disable:max-line-length */\n/**\n * Groups the items emitted by an Observable according to a specified criterion,\n * and emits these grouped items as `GroupedObservables`, one\n * {@link GroupedObservable} per group.\n *\n * <img src=\"./img/groupBy.png\" width=\"100%\">\n *\n * @param {function(value: T): K} keySelector a function that extracts the key\n * for each item.\n * @param {function(value: T): R} [elementSelector] a function that extracts the\n * return element for each item.\n * @param {function(grouped: GroupedObservable<K,R>): Observable<any>} [durationSelector]\n * a function that returns an Observable to determine how long each group should\n * exist.\n * @return {Observable<GroupedObservable<K,R>>} an Observable that emits\n * GroupedObservables, each of which corresponds to a unique key value and each\n * of which emits those items from the source Observable that share that key\n * value.\n * @method groupBy\n * @owner Observable\n */\nfunction groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n    return this.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n}\nexports.groupBy = groupBy;\nvar GroupByOperator = (function () {\n    function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n        this.keySelector = keySelector;\n        this.elementSelector = elementSelector;\n        this.durationSelector = durationSelector;\n        this.subjectSelector = subjectSelector;\n    }\n    GroupByOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n    };\n    return GroupByOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar GroupBySubscriber = (function (_super) {\n    __extends(GroupBySubscriber, _super);\n    function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n        _super.call(this, destination);\n        this.keySelector = keySelector;\n        this.elementSelector = elementSelector;\n        this.durationSelector = durationSelector;\n        this.subjectSelector = subjectSelector;\n        this.groups = null;\n        this.attemptedToUnsubscribe = false;\n        this.count = 0;\n    }\n    GroupBySubscriber.prototype._next = function (value) {\n        var key;\n        try {\n            key = this.keySelector(value);\n        }\n        catch (err) {\n            this.error(err);\n            return;\n        }\n        this._group(value, key);\n    };\n    GroupBySubscriber.prototype._group = function (value, key) {\n        var groups = this.groups;\n        if (!groups) {\n            groups = this.groups = typeof key === 'string' ? new FastMap_1.FastMap() : new Map_1.Map();\n        }\n        var group = groups.get(key);\n        var element;\n        if (this.elementSelector) {\n            try {\n                element = this.elementSelector(value);\n            }\n            catch (err) {\n                this.error(err);\n            }\n        }\n        else {\n            element = value;\n        }\n        if (!group) {\n            group = this.subjectSelector ? this.subjectSelector() : new Subject_1.Subject();\n            groups.set(key, group);\n            var groupedObservable = new GroupedObservable(key, group, this);\n            this.destination.next(groupedObservable);\n            if (this.durationSelector) {\n                var duration = void 0;\n                try {\n                    duration = this.durationSelector(new GroupedObservable(key, group));\n                }\n                catch (err) {\n                    this.error(err);\n                    return;\n                }\n                this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n            }\n        }\n        if (!group.closed) {\n            group.next(element);\n        }\n    };\n    GroupBySubscriber.prototype._error = function (err) {\n        var groups = this.groups;\n        if (groups) {\n            groups.forEach(function (group, key) {\n                group.error(err);\n            });\n            groups.clear();\n        }\n        this.destination.error(err);\n    };\n    GroupBySubscriber.prototype._complete = function () {\n        var groups = this.groups;\n        if (groups) {\n            groups.forEach(function (group, key) {\n                group.complete();\n            });\n            groups.clear();\n        }\n        this.destination.complete();\n    };\n    GroupBySubscriber.prototype.removeGroup = function (key) {\n        this.groups.delete(key);\n    };\n    GroupBySubscriber.prototype.unsubscribe = function () {\n        if (!this.closed) {\n            this.attemptedToUnsubscribe = true;\n            if (this.count === 0) {\n                _super.prototype.unsubscribe.call(this);\n            }\n        }\n    };\n    return GroupBySubscriber;\n}(Subscriber_1.Subscriber));\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar GroupDurationSubscriber = (function (_super) {\n    __extends(GroupDurationSubscriber, _super);\n    function GroupDurationSubscriber(key, group, parent) {\n        _super.call(this);\n        this.key = key;\n        this.group = group;\n        this.parent = parent;\n    }\n    GroupDurationSubscriber.prototype._next = function (value) {\n        this._complete();\n    };\n    GroupDurationSubscriber.prototype._error = function (err) {\n        var group = this.group;\n        if (!group.closed) {\n            group.error(err);\n        }\n        this.parent.removeGroup(this.key);\n    };\n    GroupDurationSubscriber.prototype._complete = function () {\n        var group = this.group;\n        if (!group.closed) {\n            group.complete();\n        }\n        this.parent.removeGroup(this.key);\n    };\n    return GroupDurationSubscriber;\n}(Subscriber_1.Subscriber));\n/**\n * An Observable representing values belonging to the same group represented by\n * a common key. The values emitted by a GroupedObservable come from the source\n * Observable. The common key is available as the field `key` on a\n * GroupedObservable instance.\n *\n * @class GroupedObservable<K, T>\n */\nvar GroupedObservable = (function (_super) {\n    __extends(GroupedObservable, _super);\n    function GroupedObservable(key, groupSubject, refCountSubscription) {\n        _super.call(this);\n        this.key = key;\n        this.groupSubject = groupSubject;\n        this.refCountSubscription = refCountSubscription;\n    }\n    GroupedObservable.prototype._subscribe = function (subscriber) {\n        var subscription = new Subscription_1.Subscription();\n        var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n        if (refCountSubscription && !refCountSubscription.closed) {\n            subscription.add(new InnerRefCountSubscription(refCountSubscription));\n        }\n        subscription.add(groupSubject.subscribe(subscriber));\n        return subscription;\n    };\n    return GroupedObservable;\n}(Observable_1.Observable));\nexports.GroupedObservable = GroupedObservable;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar InnerRefCountSubscription = (function (_super) {\n    __extends(InnerRefCountSubscription, _super);\n    function InnerRefCountSubscription(parent) {\n        _super.call(this);\n        this.parent = parent;\n        parent.count++;\n    }\n    InnerRefCountSubscription.prototype.unsubscribe = function () {\n        var parent = this.parent;\n        if (!parent.closed && !this.closed) {\n            _super.prototype.unsubscribe.call(this);\n            parent.count -= 1;\n            if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n                parent.unsubscribe();\n            }\n        }\n    };\n    return InnerRefCountSubscription;\n}(Subscription_1.Subscription));\n//# sourceMappingURL=groupBy.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar noop_1 = require('../util/noop');\n/**\n * Ignores all items emitted by the source Observable and only passes calls of `complete` or `error`.\n *\n * <img src=\"./img/ignoreElements.png\" width=\"100%\">\n *\n * @return {Observable} an empty Observable that only calls `complete`\n * or `error`, based on which one is called by the source Observable.\n * @method ignoreElements\n * @owner Observable\n */\nfunction ignoreElements() {\n    return this.lift(new IgnoreElementsOperator());\n}\nexports.ignoreElements = ignoreElements;\n;\nvar IgnoreElementsOperator = (function () {\n    function IgnoreElementsOperator() {\n    }\n    IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n    };\n    return IgnoreElementsOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar IgnoreElementsSubscriber = (function (_super) {\n    __extends(IgnoreElementsSubscriber, _super);\n    function IgnoreElementsSubscriber() {\n        _super.apply(this, arguments);\n    }\n    IgnoreElementsSubscriber.prototype._next = function (unused) {\n        noop_1.noop();\n    };\n    return IgnoreElementsSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=ignoreElements.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * If the source Observable is empty it returns an Observable that emits true, otherwise it emits false.\n *\n * <img src=\"./img/isEmpty.png\" width=\"100%\">\n *\n * @return {Observable} an Observable that emits a Boolean.\n * @method isEmpty\n * @owner Observable\n */\nfunction isEmpty() {\n    return this.lift(new IsEmptyOperator());\n}\nexports.isEmpty = isEmpty;\nvar IsEmptyOperator = (function () {\n    function IsEmptyOperator() {\n    }\n    IsEmptyOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new IsEmptySubscriber(observer));\n    };\n    return IsEmptyOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar IsEmptySubscriber = (function (_super) {\n    __extends(IsEmptySubscriber, _super);\n    function IsEmptySubscriber(destination) {\n        _super.call(this, destination);\n    }\n    IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n        var destination = this.destination;\n        destination.next(isEmpty);\n        destination.complete();\n    };\n    IsEmptySubscriber.prototype._next = function (value) {\n        this.notifyComplete(false);\n    };\n    IsEmptySubscriber.prototype._complete = function () {\n        this.notifyComplete(true);\n    };\n    return IsEmptySubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=isEmpty.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar EmptyError_1 = require('../util/EmptyError');\n/* tslint:disable:max-line-length */\n/**\n * Returns an Observable that emits only the last item emitted by the source Observable.\n * It optionally takes a predicate function as a parameter, in which case, rather than emitting\n * the last item from the source Observable, the resulting Observable will emit the last item\n * from the source Observable that satisfies the predicate.\n *\n * <img src=\"./img/last.png\" width=\"100%\">\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n * @param {function} predicate - the condition any source emitted item has to satisfy.\n * @return {Observable} an Observable that emits only the last item satisfying the given condition\n * from the source, or an NoSuchElementException if no such items are emitted.\n * @throws - Throws if no items that match the predicate are emitted by the source Observable.\n * @method last\n * @owner Observable\n */\nfunction last(predicate, resultSelector, defaultValue) {\n    return this.lift(new LastOperator(predicate, resultSelector, defaultValue, this));\n}\nexports.last = last;\nvar LastOperator = (function () {\n    function LastOperator(predicate, resultSelector, defaultValue, source) {\n        this.predicate = predicate;\n        this.resultSelector = resultSelector;\n        this.defaultValue = defaultValue;\n        this.source = source;\n    }\n    LastOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new LastSubscriber(observer, this.predicate, this.resultSelector, this.defaultValue, this.source));\n    };\n    return LastOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar LastSubscriber = (function (_super) {\n    __extends(LastSubscriber, _super);\n    function LastSubscriber(destination, predicate, resultSelector, defaultValue, source) {\n        _super.call(this, destination);\n        this.predicate = predicate;\n        this.resultSelector = resultSelector;\n        this.defaultValue = defaultValue;\n        this.source = source;\n        this.hasValue = false;\n        this.index = 0;\n        if (typeof defaultValue !== 'undefined') {\n            this.lastValue = defaultValue;\n            this.hasValue = true;\n        }\n    }\n    LastSubscriber.prototype._next = function (value) {\n        var index = this.index++;\n        if (this.predicate) {\n            this._tryPredicate(value, index);\n        }\n        else {\n            if (this.resultSelector) {\n                this._tryResultSelector(value, index);\n                return;\n            }\n            this.lastValue = value;\n            this.hasValue = true;\n        }\n    };\n    LastSubscriber.prototype._tryPredicate = function (value, index) {\n        var result;\n        try {\n            result = this.predicate(value, index, this.source);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        if (result) {\n            if (this.resultSelector) {\n                this._tryResultSelector(value, index);\n                return;\n            }\n            this.lastValue = value;\n            this.hasValue = true;\n        }\n    };\n    LastSubscriber.prototype._tryResultSelector = function (value, index) {\n        var result;\n        try {\n            result = this.resultSelector(value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.lastValue = result;\n        this.hasValue = true;\n    };\n    LastSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        if (this.hasValue) {\n            destination.next(this.lastValue);\n            destination.complete();\n        }\n        else {\n            destination.error(new EmptyError_1.EmptyError);\n        }\n    };\n    return LastSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=last.js.map",
    "\"use strict\";\n/**\n * @param func\n * @return {Observable<R>}\n * @method let\n * @owner Observable\n */\nfunction letProto(func) {\n    return func(this);\n}\nexports.letProto = letProto;\n//# sourceMappingURL=let.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Applies a given `project` function to each value emitted by the source\n * Observable, and emits the resulting values as an Observable.\n *\n * <span class=\"informal\">Like [Array.prototype.map()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map),\n * it passes each source value through a transformation function to get\n * corresponding output values.</span>\n *\n * <img src=\"./img/map.png\" width=\"100%\">\n *\n * Similar to the well known `Array.prototype.map` function, this operator\n * applies a projection to each value and emits that projection in the output\n * Observable.\n *\n * @example <caption>Map every every click to the clientX position of that click</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var positions = clicks.map(ev => ev.clientX);\n * positions.subscribe(x => console.log(x));\n *\n * @see {@link mapTo}\n * @see {@link pluck}\n *\n * @param {function(value: T, index: number): R} project The function to apply\n * to each `value` emitted by the source Observable. The `index` parameter is\n * the number `i` for the i-th emission that has happened since the\n * subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to define what `this` is in the\n * `project` function.\n * @return {Observable<R>} An Observable that emits the values from the source\n * Observable transformed by the given `project` function.\n * @method map\n * @owner Observable\n */\nfunction map(project, thisArg) {\n    if (typeof project !== 'function') {\n        throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n    }\n    return this.lift(new MapOperator(project, thisArg));\n}\nexports.map = map;\nvar MapOperator = (function () {\n    function MapOperator(project, thisArg) {\n        this.project = project;\n        this.thisArg = thisArg;\n    }\n    MapOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n    };\n    return MapOperator;\n}());\nexports.MapOperator = MapOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MapSubscriber = (function (_super) {\n    __extends(MapSubscriber, _super);\n    function MapSubscriber(destination, project, thisArg) {\n        _super.call(this, destination);\n        this.project = project;\n        this.count = 0;\n        this.thisArg = thisArg || this;\n    }\n    // NOTE: This looks unoptimized, but it's actually purposefully NOT\n    // using try/catch optimizations.\n    MapSubscriber.prototype._next = function (value) {\n        var result;\n        try {\n            result = this.project.call(this.thisArg, value, this.count++);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return MapSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=map.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Emits the given constant value on the output Observable every time the source\n * Observable emits a value.\n *\n * <span class=\"informal\">Like {@link map}, but it maps every source value to\n * the same output value every time.</span>\n *\n * <img src=\"./img/mapTo.png\" width=\"100%\">\n *\n * Takes a constant `value` as argument, and emits that whenever the source\n * Observable emits a value. In other words, ignores the actual source value,\n * and simply uses the emission moment to know when to emit the given `value`.\n *\n * @example <caption>Map every every click to the string 'Hi'</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var greetings = clicks.mapTo('Hi');\n * greetings.subscribe(x => console.log(x));\n *\n * @see {@link map}\n *\n * @param {any} value The value to map each source value to.\n * @return {Observable} An Observable that emits the given `value` every time\n * the source Observable emits something.\n * @method mapTo\n * @owner Observable\n */\nfunction mapTo(value) {\n    return this.lift(new MapToOperator(value));\n}\nexports.mapTo = mapTo;\nvar MapToOperator = (function () {\n    function MapToOperator(value) {\n        this.value = value;\n    }\n    MapToOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MapToSubscriber(subscriber, this.value));\n    };\n    return MapToOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MapToSubscriber = (function (_super) {\n    __extends(MapToSubscriber, _super);\n    function MapToSubscriber(destination, value) {\n        _super.call(this, destination);\n        this.value = value;\n    }\n    MapToSubscriber.prototype._next = function (x) {\n        this.destination.next(this.value);\n    };\n    return MapToSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=mapTo.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar Notification_1 = require('../Notification');\n/**\n * Represents all of the notifications from the source Observable as `next`\n * emissions marked with their original types within {@link Notification}\n * objects.\n *\n * <span class=\"informal\">Wraps `next`, `error` and `complete` emissions in\n * {@link Notification} objects, emitted as `next` on the output Observable.\n * </span>\n *\n * <img src=\"./img/materialize.png\" width=\"100%\">\n *\n * `materialize` returns an Observable that emits a `next` notification for each\n * `next`, `error`, or `complete` emission of the source Observable. When the\n * source Observable emits `complete`, the output Observable will emit `next` as\n * a Notification of type \"complete\", and then it will emit `complete` as well.\n * When the source Observable emits `error`, the output will emit `next` as a\n * Notification of type \"error\", and then `complete`.\n *\n * This operator is useful for producing metadata of the source Observable, to\n * be consumed as `next` emissions. Use it in conjunction with\n * {@link dematerialize}.\n *\n * @example <caption>Convert a faulty Observable to an Observable of Notifications</caption>\n * var letters = Rx.Observable.of('a', 'b', 13, 'd');\n * var upperCase = letters.map(x => x.toUpperCase());\n * var materialized = upperCase.materialize();\n * materialized.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - Notification {kind: \"N\", value: \"A\", error: undefined, hasValue: true}\n * // - Notification {kind: \"N\", value: \"B\", error: undefined, hasValue: true}\n * // - Notification {kind: \"E\", value: undefined, error: TypeError:\n * //   x.toUpperCase is not a function at MapSubscriber.letters.map.x\n * //   [as project] (http://1…, hasValue: false}\n *\n * @see {@link Notification}\n * @see {@link dematerialize}\n *\n * @return {Observable<Notification<T>>} An Observable that emits\n * {@link Notification} objects that wrap the original emissions from the source\n * Observable with metadata.\n * @method materialize\n * @owner Observable\n */\nfunction materialize() {\n    return this.lift(new MaterializeOperator());\n}\nexports.materialize = materialize;\nvar MaterializeOperator = (function () {\n    function MaterializeOperator() {\n    }\n    MaterializeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MaterializeSubscriber(subscriber));\n    };\n    return MaterializeOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MaterializeSubscriber = (function (_super) {\n    __extends(MaterializeSubscriber, _super);\n    function MaterializeSubscriber(destination) {\n        _super.call(this, destination);\n    }\n    MaterializeSubscriber.prototype._next = function (value) {\n        this.destination.next(Notification_1.Notification.createNext(value));\n    };\n    MaterializeSubscriber.prototype._error = function (err) {\n        var destination = this.destination;\n        destination.next(Notification_1.Notification.createError(err));\n        destination.complete();\n    };\n    MaterializeSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        destination.next(Notification_1.Notification.createComplete());\n        destination.complete();\n    };\n    return MaterializeSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=materialize.js.map",
    "\"use strict\";\nvar reduce_1 = require('./reduce');\n/**\n * The Max operator operates on an Observable that emits numbers (or items that can be evaluated as numbers),\n * and when source Observable completes it emits a single item: the item with the largest number.\n *\n * <img src=\"./img/max.png\" width=\"100%\">\n *\n * @param {Function} optional comparer function that it will use instead of its default to compare the value of two\n * items.\n * @return {Observable} an Observable that emits item with the largest number.\n * @method max\n * @owner Observable\n */\nfunction max(comparer) {\n    var max = (typeof comparer === 'function')\n        ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n        : function (x, y) { return x > y ? x : y; };\n    return this.lift(new reduce_1.ReduceOperator(max));\n}\nexports.max = max;\n//# sourceMappingURL=max.js.map",
    "\"use strict\";\nvar ArrayObservable_1 = require('../observable/ArrayObservable');\nvar mergeAll_1 = require('./mergeAll');\nvar isScheduler_1 = require('../util/isScheduler');\n/* tslint:disable:max-line-length */\n/**\n * Creates an output Observable which concurrently emits all values from every\n * given input Observable.\n *\n * <span class=\"informal\">Flattens multiple Observables together by blending\n * their values into one Observable.</span>\n *\n * <img src=\"./img/merge.png\" width=\"100%\">\n *\n * `merge` subscribes to each given input Observable (either the source or an\n * Observable given as argument), and simply forwards (without doing any\n * transformation) all the values from all the input Observables to the output\n * Observable. The output Observable only completes once all input Observables\n * have completed. Any error delivered by an input Observable will be immediately\n * emitted on the output Observable.\n *\n * @example <caption>Merge together two Observables: 1s interval and clicks</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var timer = Rx.Observable.interval(1000);\n * var clicksOrTimer = clicks.merge(timer);\n * clicksOrTimer.subscribe(x => console.log(x));\n *\n * @example <caption>Merge together 3 Observables, but only 2 run concurrently</caption>\n * var timer1 = Rx.Observable.interval(1000).take(10);\n * var timer2 = Rx.Observable.interval(2000).take(6);\n * var timer3 = Rx.Observable.interval(500).take(10);\n * var concurrent = 2; // the argument\n * var merged = timer1.merge(timer2, timer3, concurrent);\n * merged.subscribe(x => console.log(x));\n *\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n *\n * @param {Observable} other An input Observable to merge with the source\n * Observable. More than one input Observables may be given as argument.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {Scheduler} [scheduler=null] The Scheduler to use for managing\n * concurrency of input Observables.\n * @return {Observable} an Observable that emits items that are the result of\n * every input Observable.\n * @method merge\n * @owner Observable\n */\nfunction merge() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i - 0] = arguments[_i];\n    }\n    return this.lift.call(mergeStatic.apply(void 0, [this].concat(observables)));\n}\nexports.merge = merge;\n/* tslint:enable:max-line-length */\n/**\n * Creates an output Observable which concurrently emits all values from every\n * given input Observable.\n *\n * <span class=\"informal\">Flattens multiple Observables together by blending\n * their values into one Observable.</span>\n *\n * <img src=\"./img/merge.png\" width=\"100%\">\n *\n * `merge` subscribes to each given input Observable (as arguments), and simply\n * forwards (without doing any transformation) all the values from all the input\n * Observables to the output Observable. The output Observable only completes\n * once all input Observables have completed. Any error delivered by an input\n * Observable will be immediately emitted on the output Observable.\n *\n * @example <caption>Merge together two Observables: 1s interval and clicks</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var timer = Rx.Observable.interval(1000);\n * var clicksOrTimer = Rx.Observable.merge(clicks, timer);\n * clicksOrTimer.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // timer will emit ascending values, one every second(1000ms) to console\n * // clicks logs MouseEvents to console everytime the \"document\" is clicked\n * // Since the two streams are merged you see these happening\n * // as they occur.\n *\n * @example <caption>Merge together 3 Observables, but only 2 run concurrently</caption>\n * var timer1 = Rx.Observable.interval(1000).take(10);\n * var timer2 = Rx.Observable.interval(2000).take(6);\n * var timer3 = Rx.Observable.interval(500).take(10);\n * var concurrent = 2; // the argument\n * var merged = Rx.Observable.merge(timer1, timer2, timer3, concurrent);\n * merged.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // - First timer1 and timer2 will run concurrently\n * // - timer1 will emit a value every 1000ms for 10 iterations\n * // - timer2 will emit a value every 2000ms for 6 iterations\n * // - after timer1 hits it's max iteration, timer2 will\n * //   continue, and timer3 will start to run concurrently with timer2\n * // - when timer2 hits it's max iteration it terminates, and\n * //   timer3 will continue to emit a value every 500ms until it is complete\n *\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n *\n * @param {...Observable} observables Input Observables to merge together.\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @param {Scheduler} [scheduler=null] The Scheduler to use for managing\n * concurrency of input Observables.\n * @return {Observable} an Observable that emits items that are the result of\n * every input Observable.\n * @static true\n * @name merge\n * @owner Observable\n */\nfunction mergeStatic() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i - 0] = arguments[_i];\n    }\n    var concurrent = Number.POSITIVE_INFINITY;\n    var scheduler = null;\n    var last = observables[observables.length - 1];\n    if (isScheduler_1.isScheduler(last)) {\n        scheduler = observables.pop();\n        if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n            concurrent = observables.pop();\n        }\n    }\n    else if (typeof last === 'number') {\n        concurrent = observables.pop();\n    }\n    if (scheduler === null && observables.length === 1) {\n        return observables[0];\n    }\n    return new ArrayObservable_1.ArrayObservable(observables, scheduler).lift(new mergeAll_1.MergeAllOperator(concurrent));\n}\nexports.mergeStatic = mergeStatic;\n//# sourceMappingURL=merge.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Converts a higher-order Observable into a first-order Observable which\n * concurrently delivers all values that are emitted on the inner Observables.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables.</span>\n *\n * <img src=\"./img/mergeAll.png\" width=\"100%\">\n *\n * `mergeAll` subscribes to an Observable that emits Observables, also known as\n * a higher-order Observable. Each time it observes one of these emitted inner\n * Observables, it subscribes to that and delivers all the values from the\n * inner Observable on the output Observable. The output Observable only\n * completes once all inner Observables have completed. Any error delivered by\n * a inner Observable will be immediately emitted on the output Observable.\n *\n * @example <caption>Spawn a new interval Observable for each click event, and blend their outputs as one Observable</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000));\n * var firstOrder = higherOrder.mergeAll();\n * firstOrder.subscribe(x => console.log(x));\n *\n * @example <caption>Count from 0 to 9 every second for each click, but only allow 2 concurrent timers</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000).take(10));\n * var firstOrder = higherOrder.mergeAll(2);\n * firstOrder.subscribe(x => console.log(x));\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link exhaust}\n * @see {@link merge}\n * @see {@link mergeMap}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switch}\n * @see {@link zipAll}\n *\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of inner\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits values coming from all the\n * inner Observables emitted by the source Observable.\n * @method mergeAll\n * @owner Observable\n */\nfunction mergeAll(concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    return this.lift(new MergeAllOperator(concurrent));\n}\nexports.mergeAll = mergeAll;\nvar MergeAllOperator = (function () {\n    function MergeAllOperator(concurrent) {\n        this.concurrent = concurrent;\n    }\n    MergeAllOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new MergeAllSubscriber(observer, this.concurrent));\n    };\n    return MergeAllOperator;\n}());\nexports.MergeAllOperator = MergeAllOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MergeAllSubscriber = (function (_super) {\n    __extends(MergeAllSubscriber, _super);\n    function MergeAllSubscriber(destination, concurrent) {\n        _super.call(this, destination);\n        this.concurrent = concurrent;\n        this.hasCompleted = false;\n        this.buffer = [];\n        this.active = 0;\n    }\n    MergeAllSubscriber.prototype._next = function (observable) {\n        if (this.active < this.concurrent) {\n            this.active++;\n            this.add(subscribeToResult_1.subscribeToResult(this, observable));\n        }\n        else {\n            this.buffer.push(observable);\n        }\n    };\n    MergeAllSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.active === 0 && this.buffer.length === 0) {\n            this.destination.complete();\n        }\n    };\n    MergeAllSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        this.remove(innerSub);\n        this.active--;\n        if (buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        else if (this.active === 0 && this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return MergeAllSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\nexports.MergeAllSubscriber = MergeAllSubscriber;\n//# sourceMappingURL=mergeAll.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar subscribeToResult_1 = require('../util/subscribeToResult');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\n/* tslint:disable:max-line-length */\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link mergeAll}.</span>\n *\n * <img src=\"./img/mergeMap.png\" width=\"100%\">\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an Observable, and then merging those resulting Observables and\n * emitting the results of this merger.\n *\n * @example <caption>Map and flatten each letter to an Observable ticking every 1 second</caption>\n * var letters = Rx.Observable.of('a', 'b', 'c');\n * var result = letters.mergeMap(x =>\n *   Rx.Observable.interval(1000).map(i => x+i)\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following:\n * // a0\n * // b0\n * // c0\n * // a1\n * // b1\n * // c1\n * // continues to list a,b,c with respective ascending integers\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMapTo}\n * @see {@link mergeScan}\n * @see {@link switchMap}\n *\n * @param {function(value: T, ?index: number): Observable} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and merging the results of the Observables obtained\n * from this transformation.\n * @method mergeMap\n * @owner Observable\n */\nfunction mergeMap(project, resultSelector, concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    if (typeof resultSelector === 'number') {\n        concurrent = resultSelector;\n        resultSelector = null;\n    }\n    return this.lift(new MergeMapOperator(project, resultSelector, concurrent));\n}\nexports.mergeMap = mergeMap;\nvar MergeMapOperator = (function () {\n    function MergeMapOperator(project, resultSelector, concurrent) {\n        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n        this.project = project;\n        this.resultSelector = resultSelector;\n        this.concurrent = concurrent;\n    }\n    MergeMapOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new MergeMapSubscriber(observer, this.project, this.resultSelector, this.concurrent));\n    };\n    return MergeMapOperator;\n}());\nexports.MergeMapOperator = MergeMapOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MergeMapSubscriber = (function (_super) {\n    __extends(MergeMapSubscriber, _super);\n    function MergeMapSubscriber(destination, project, resultSelector, concurrent) {\n        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n        _super.call(this, destination);\n        this.project = project;\n        this.resultSelector = resultSelector;\n        this.concurrent = concurrent;\n        this.hasCompleted = false;\n        this.buffer = [];\n        this.active = 0;\n        this.index = 0;\n    }\n    MergeMapSubscriber.prototype._next = function (value) {\n        if (this.active < this.concurrent) {\n            this._tryNext(value);\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    MergeMapSubscriber.prototype._tryNext = function (value) {\n        var result;\n        var index = this.index++;\n        try {\n            result = this.project(value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.active++;\n        this._innerSub(result, value, index);\n    };\n    MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n        this.add(subscribeToResult_1.subscribeToResult(this, ish, value, index));\n    };\n    MergeMapSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.active === 0 && this.buffer.length === 0) {\n            this.destination.complete();\n        }\n    };\n    MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        if (this.resultSelector) {\n            this._notifyResultSelector(outerValue, innerValue, outerIndex, innerIndex);\n        }\n        else {\n            this.destination.next(innerValue);\n        }\n    };\n    MergeMapSubscriber.prototype._notifyResultSelector = function (outerValue, innerValue, outerIndex, innerIndex) {\n        var result;\n        try {\n            result = this.resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        this.remove(innerSub);\n        this.active--;\n        if (buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        else if (this.active === 0 && this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return MergeMapSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\nexports.MergeMapSubscriber = MergeMapSubscriber;\n//# sourceMappingURL=mergeMap.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:disable:max-line-length */\n/**\n * Projects each source value to the same Observable which is merged multiple\n * times in the output Observable.\n *\n * <span class=\"informal\">It's like {@link mergeMap}, but maps each value always\n * to the same inner Observable.</span>\n *\n * <img src=\"./img/mergeMapTo.png\" width=\"100%\">\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then merges those resulting Observables into one\n * single Observable, which is the output Observable.\n *\n * @example <caption>For each click event, start an interval Observable ticking every 1 second</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.mergeMapTo(Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link concatMapTo}\n * @see {@link merge}\n * @see {@link mergeAll}\n * @see {@link mergeMap}\n * @see {@link mergeScan}\n * @see {@link switchMapTo}\n *\n * @param {Observable} innerObservable An Observable to replace each value from\n * the source Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @param {number} [concurrent=Number.POSITIVE_INFINITY] Maximum number of input\n * Observables being subscribed to concurrently.\n * @return {Observable} An Observable that emits items from the given\n * `innerObservable` (and optionally transformed through `resultSelector`) every\n * time a value is emitted on the source Observable.\n * @method mergeMapTo\n * @owner Observable\n */\nfunction mergeMapTo(innerObservable, resultSelector, concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    if (typeof resultSelector === 'number') {\n        concurrent = resultSelector;\n        resultSelector = null;\n    }\n    return this.lift(new MergeMapToOperator(innerObservable, resultSelector, concurrent));\n}\nexports.mergeMapTo = mergeMapTo;\n// TODO: Figure out correct signature here: an Operator<Observable<T>, R>\n//       needs to implement call(observer: Subscriber<R>): Subscriber<Observable<T>>\nvar MergeMapToOperator = (function () {\n    function MergeMapToOperator(ish, resultSelector, concurrent) {\n        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n        this.ish = ish;\n        this.resultSelector = resultSelector;\n        this.concurrent = concurrent;\n    }\n    MergeMapToOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new MergeMapToSubscriber(observer, this.ish, this.resultSelector, this.concurrent));\n    };\n    return MergeMapToOperator;\n}());\nexports.MergeMapToOperator = MergeMapToOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MergeMapToSubscriber = (function (_super) {\n    __extends(MergeMapToSubscriber, _super);\n    function MergeMapToSubscriber(destination, ish, resultSelector, concurrent) {\n        if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n        _super.call(this, destination);\n        this.ish = ish;\n        this.resultSelector = resultSelector;\n        this.concurrent = concurrent;\n        this.hasCompleted = false;\n        this.buffer = [];\n        this.active = 0;\n        this.index = 0;\n    }\n    MergeMapToSubscriber.prototype._next = function (value) {\n        if (this.active < this.concurrent) {\n            var resultSelector = this.resultSelector;\n            var index = this.index++;\n            var ish = this.ish;\n            var destination = this.destination;\n            this.active++;\n            this._innerSub(ish, destination, resultSelector, value, index);\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    MergeMapToSubscriber.prototype._innerSub = function (ish, destination, resultSelector, value, index) {\n        this.add(subscribeToResult_1.subscribeToResult(this, ish, value, index));\n    };\n    MergeMapToSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.active === 0 && this.buffer.length === 0) {\n            this.destination.complete();\n        }\n    };\n    MergeMapToSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var _a = this, resultSelector = _a.resultSelector, destination = _a.destination;\n        if (resultSelector) {\n            this.trySelectResult(outerValue, innerValue, outerIndex, innerIndex);\n        }\n        else {\n            destination.next(innerValue);\n        }\n    };\n    MergeMapToSubscriber.prototype.trySelectResult = function (outerValue, innerValue, outerIndex, innerIndex) {\n        var _a = this, resultSelector = _a.resultSelector, destination = _a.destination;\n        var result;\n        try {\n            result = resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n        }\n        catch (err) {\n            destination.error(err);\n            return;\n        }\n        destination.next(result);\n    };\n    MergeMapToSubscriber.prototype.notifyError = function (err) {\n        this.destination.error(err);\n    };\n    MergeMapToSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        this.remove(innerSub);\n        this.active--;\n        if (buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        else if (this.active === 0 && this.hasCompleted) {\n            this.destination.complete();\n        }\n    };\n    return MergeMapToSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\nexports.MergeMapToSubscriber = MergeMapToSubscriber;\n//# sourceMappingURL=mergeMapTo.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\n/**\n * @param project\n * @param seed\n * @param concurrent\n * @return {Observable<R>|WebSocketSubject<T>|Observable<T>}\n * @method mergeScan\n * @owner Observable\n */\nfunction mergeScan(project, seed, concurrent) {\n    if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n    return this.lift(new MergeScanOperator(project, seed, concurrent));\n}\nexports.mergeScan = mergeScan;\nvar MergeScanOperator = (function () {\n    function MergeScanOperator(project, seed, concurrent) {\n        this.project = project;\n        this.seed = seed;\n        this.concurrent = concurrent;\n    }\n    MergeScanOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new MergeScanSubscriber(subscriber, this.project, this.seed, this.concurrent));\n    };\n    return MergeScanOperator;\n}());\nexports.MergeScanOperator = MergeScanOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar MergeScanSubscriber = (function (_super) {\n    __extends(MergeScanSubscriber, _super);\n    function MergeScanSubscriber(destination, project, acc, concurrent) {\n        _super.call(this, destination);\n        this.project = project;\n        this.acc = acc;\n        this.concurrent = concurrent;\n        this.hasValue = false;\n        this.hasCompleted = false;\n        this.buffer = [];\n        this.active = 0;\n        this.index = 0;\n    }\n    MergeScanSubscriber.prototype._next = function (value) {\n        if (this.active < this.concurrent) {\n            var index = this.index++;\n            var ish = tryCatch_1.tryCatch(this.project)(this.acc, value);\n            var destination = this.destination;\n            if (ish === errorObject_1.errorObject) {\n                destination.error(errorObject_1.errorObject.e);\n            }\n            else {\n                this.active++;\n                this._innerSub(ish, value, index);\n            }\n        }\n        else {\n            this.buffer.push(value);\n        }\n    };\n    MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {\n        this.add(subscribeToResult_1.subscribeToResult(this, ish, value, index));\n    };\n    MergeScanSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.active === 0 && this.buffer.length === 0) {\n            if (this.hasValue === false) {\n                this.destination.next(this.acc);\n            }\n            this.destination.complete();\n        }\n    };\n    MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var destination = this.destination;\n        this.acc = innerValue;\n        this.hasValue = true;\n        destination.next(innerValue);\n    };\n    MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {\n        var buffer = this.buffer;\n        this.remove(innerSub);\n        this.active--;\n        if (buffer.length > 0) {\n            this._next(buffer.shift());\n        }\n        else if (this.active === 0 && this.hasCompleted) {\n            if (this.hasValue === false) {\n                this.destination.next(this.acc);\n            }\n            this.destination.complete();\n        }\n    };\n    return MergeScanSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\nexports.MergeScanSubscriber = MergeScanSubscriber;\n//# sourceMappingURL=mergeScan.js.map",
    "\"use strict\";\nvar reduce_1 = require('./reduce');\n/**\n * The Min operator operates on an Observable that emits numbers (or items that can be evaluated as numbers),\n * and when source Observable completes it emits a single item: the item with the smallest number.\n *\n * <img src=\"./img/min.png\" width=\"100%\">\n *\n * @param {Function} optional comparer function that it will use instead of its default to compare the value of two items.\n * @return {Observable<R>} an Observable that emits item with the smallest number.\n * @method min\n * @owner Observable\n */\nfunction min(comparer) {\n    var min = (typeof comparer === 'function')\n        ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n        : function (x, y) { return x < y ? x : y; };\n    return this.lift(new reduce_1.ReduceOperator(min));\n}\nexports.min = min;\n//# sourceMappingURL=min.js.map",
    "\"use strict\";\nvar ConnectableObservable_1 = require('../observable/ConnectableObservable');\n/* tslint:disable:max-line-length */\n/**\n * Returns an Observable that emits the results of invoking a specified selector on items\n * emitted by a ConnectableObservable that shares a single subscription to the underlying stream.\n *\n * <img src=\"./img/multicast.png\" width=\"100%\">\n *\n * @param {Function|Subject} Factory function to create an intermediate subject through\n * which the source sequence's elements will be multicast to the selector function\n * or Subject to push source elements into.\n * @param {Function} Optional selector function that can use the multicasted source stream\n * as many times as needed, without causing multiple subscriptions to the source stream.\n * Subscribers to the given source will receive all notifications of the source from the\n * time of the subscription forward.\n * @return {Observable} an Observable that emits the results of invoking the selector\n * on the items emitted by a `ConnectableObservable` that shares a single subscription to\n * the underlying stream.\n * @method multicast\n * @owner Observable\n */\nfunction multicast(subjectOrSubjectFactory, selector) {\n    var subjectFactory;\n    if (typeof subjectOrSubjectFactory === 'function') {\n        subjectFactory = subjectOrSubjectFactory;\n    }\n    else {\n        subjectFactory = function subjectFactory() {\n            return subjectOrSubjectFactory;\n        };\n    }\n    if (typeof selector === 'function') {\n        return this.lift(new MulticastOperator(subjectFactory, selector));\n    }\n    var connectable = Object.create(this, ConnectableObservable_1.connectableObservableDescriptor);\n    connectable.source = this;\n    connectable.subjectFactory = subjectFactory;\n    return connectable;\n}\nexports.multicast = multicast;\nvar MulticastOperator = (function () {\n    function MulticastOperator(subjectFactory, selector) {\n        this.subjectFactory = subjectFactory;\n        this.selector = selector;\n    }\n    MulticastOperator.prototype.call = function (subscriber, source) {\n        var selector = this.selector;\n        var subject = this.subjectFactory();\n        var subscription = selector(subject).subscribe(subscriber);\n        subscription.add(source.subscribe(subject));\n        return subscription;\n    };\n    return MulticastOperator;\n}());\nexports.MulticastOperator = MulticastOperator;\n//# sourceMappingURL=multicast.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar Notification_1 = require('../Notification');\n/**\n * @see {@link Notification}\n *\n * @param scheduler\n * @param delay\n * @return {Observable<R>|WebSocketSubject<T>|Observable<T>}\n * @method observeOn\n * @owner Observable\n */\nfunction observeOn(scheduler, delay) {\n    if (delay === void 0) { delay = 0; }\n    return this.lift(new ObserveOnOperator(scheduler, delay));\n}\nexports.observeOn = observeOn;\nvar ObserveOnOperator = (function () {\n    function ObserveOnOperator(scheduler, delay) {\n        if (delay === void 0) { delay = 0; }\n        this.scheduler = scheduler;\n        this.delay = delay;\n    }\n    ObserveOnOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n    };\n    return ObserveOnOperator;\n}());\nexports.ObserveOnOperator = ObserveOnOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ObserveOnSubscriber = (function (_super) {\n    __extends(ObserveOnSubscriber, _super);\n    function ObserveOnSubscriber(destination, scheduler, delay) {\n        if (delay === void 0) { delay = 0; }\n        _super.call(this, destination);\n        this.scheduler = scheduler;\n        this.delay = delay;\n    }\n    ObserveOnSubscriber.dispatch = function (arg) {\n        var notification = arg.notification, destination = arg.destination;\n        notification.observe(destination);\n    };\n    ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n        this.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n    };\n    ObserveOnSubscriber.prototype._next = function (value) {\n        this.scheduleMessage(Notification_1.Notification.createNext(value));\n    };\n    ObserveOnSubscriber.prototype._error = function (err) {\n        this.scheduleMessage(Notification_1.Notification.createError(err));\n    };\n    ObserveOnSubscriber.prototype._complete = function () {\n        this.scheduleMessage(Notification_1.Notification.createComplete());\n    };\n    return ObserveOnSubscriber;\n}(Subscriber_1.Subscriber));\nexports.ObserveOnSubscriber = ObserveOnSubscriber;\nvar ObserveOnMessage = (function () {\n    function ObserveOnMessage(notification, destination) {\n        this.notification = notification;\n        this.destination = destination;\n    }\n    return ObserveOnMessage;\n}());\nexports.ObserveOnMessage = ObserveOnMessage;\n//# sourceMappingURL=observeOn.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar FromObservable_1 = require('../observable/FromObservable');\nvar isArray_1 = require('../util/isArray');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:disable:max-line-length */\nfunction onErrorResumeNext() {\n    var nextSources = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        nextSources[_i - 0] = arguments[_i];\n    }\n    if (nextSources.length === 1 && isArray_1.isArray(nextSources[0])) {\n        nextSources = nextSources[0];\n    }\n    return this.lift(new OnErrorResumeNextOperator(nextSources));\n}\nexports.onErrorResumeNext = onErrorResumeNext;\n/* tslint:enable:max-line-length */\nfunction onErrorResumeNextStatic() {\n    var nextSources = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        nextSources[_i - 0] = arguments[_i];\n    }\n    var source = null;\n    if (nextSources.length === 1 && isArray_1.isArray(nextSources[0])) {\n        nextSources = nextSources[0];\n    }\n    source = nextSources.shift();\n    return new FromObservable_1.FromObservable(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\nexports.onErrorResumeNextStatic = onErrorResumeNextStatic;\nvar OnErrorResumeNextOperator = (function () {\n    function OnErrorResumeNextOperator(nextSources) {\n        this.nextSources = nextSources;\n    }\n    OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n    };\n    return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = (function (_super) {\n    __extends(OnErrorResumeNextSubscriber, _super);\n    function OnErrorResumeNextSubscriber(destination, nextSources) {\n        _super.call(this, destination);\n        this.destination = destination;\n        this.nextSources = nextSources;\n    }\n    OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype._error = function (err) {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype._complete = function () {\n        this.subscribeToNextSource();\n    };\n    OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n        var next = this.nextSources.shift();\n        if (next) {\n            this.add(subscribeToResult_1.subscribeToResult(this, next));\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    return OnErrorResumeNextSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=onErrorResumeNext.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Groups pairs of consecutive emissions together and emits them as an array of\n * two values.\n *\n * <span class=\"informal\">Puts the current value and previous value together as\n * an array, and emits that.</span>\n *\n * <img src=\"./img/pairwise.png\" width=\"100%\">\n *\n * The Nth emission from the source Observable will cause the output Observable\n * to emit an array [(N-1)th, Nth] of the previous and the current value, as a\n * pair. For this reason, `pairwise` emits on the second and subsequent\n * emissions from the source Observable, but not on the first emission, because\n * there is no previous value in that case.\n *\n * @example <caption>On every click (starting from the second), emit the relative distance to the previous click</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var pairs = clicks.pairwise();\n * var distance = pairs.map(pair => {\n *   var x0 = pair[0].clientX;\n *   var y0 = pair[0].clientY;\n *   var x1 = pair[1].clientX;\n *   var y1 = pair[1].clientY;\n *   return Math.sqrt(Math.pow(x0 - x1, 2) + Math.pow(y0 - y1, 2));\n * });\n * distance.subscribe(x => console.log(x));\n *\n * @see {@link buffer}\n * @see {@link bufferCount}\n *\n * @return {Observable<Array<T>>} An Observable of pairs (as arrays) of\n * consecutive values from the source Observable.\n * @method pairwise\n * @owner Observable\n */\nfunction pairwise() {\n    return this.lift(new PairwiseOperator());\n}\nexports.pairwise = pairwise;\nvar PairwiseOperator = (function () {\n    function PairwiseOperator() {\n    }\n    PairwiseOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new PairwiseSubscriber(subscriber));\n    };\n    return PairwiseOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar PairwiseSubscriber = (function (_super) {\n    __extends(PairwiseSubscriber, _super);\n    function PairwiseSubscriber(destination) {\n        _super.call(this, destination);\n        this.hasPrev = false;\n    }\n    PairwiseSubscriber.prototype._next = function (value) {\n        if (this.hasPrev) {\n            this.destination.next([this.prev, value]);\n        }\n        else {\n            this.hasPrev = true;\n        }\n        this.prev = value;\n    };\n    return PairwiseSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=pairwise.js.map",
    "\"use strict\";\nvar not_1 = require('../util/not');\nvar filter_1 = require('./filter');\n/**\n * Splits the source Observable into two, one with values that satisfy a\n * predicate, and another with values that don't satisfy the predicate.\n *\n * <span class=\"informal\">It's like {@link filter}, but returns two Observables:\n * one like the output of {@link filter}, and the other with values that did not\n * pass the condition.</span>\n *\n * <img src=\"./img/partition.png\" width=\"100%\">\n *\n * `partition` outputs an array with two Observables that partition the values\n * from the source Observable through the given `predicate` function. The first\n * Observable in that array emits source values for which the predicate argument\n * returns true. The second Observable emits source values for which the\n * predicate returns false. The first behaves like {@link filter} and the second\n * behaves like {@link filter} with the predicate negated.\n *\n * @example <caption>Partition click events into those on DIV elements and those elsewhere</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var parts = clicks.partition(ev => ev.target.tagName === 'DIV');\n * var clicksOnDivs = parts[0];\n * var clicksElsewhere = parts[1];\n * clicksOnDivs.subscribe(x => console.log('DIV clicked: ', x));\n * clicksElsewhere.subscribe(x => console.log('Other clicked: ', x));\n *\n * @see {@link filter}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates each value emitted by the source Observable. If it returns `true`,\n * the value is emitted on the first Observable in the returned array, if\n * `false` the value is emitted on the second Observable in the array. The\n * `index` parameter is the number `i` for the i-th source emission that has\n * happened since the subscription, starting from the number `0`.\n * @param {any} [thisArg] An optional argument to determine the value of `this`\n * in the `predicate` function.\n * @return {[Observable<T>, Observable<T>]} An array with two Observables: one\n * with values that passed the predicate, and another with values that did not\n * pass the predicate.\n * @method partition\n * @owner Observable\n */\nfunction partition(predicate, thisArg) {\n    return [\n        filter_1.filter.call(this, predicate, thisArg),\n        filter_1.filter.call(this, not_1.not(predicate, thisArg))\n    ];\n}\nexports.partition = partition;\n//# sourceMappingURL=partition.js.map",
    "\"use strict\";\nvar map_1 = require('./map');\n/**\n * Maps each source value (an object) to its specified nested property.\n *\n * <span class=\"informal\">Like {@link map}, but meant only for picking one of\n * the nested properties of every emitted object.</span>\n *\n * <img src=\"./img/pluck.png\" width=\"100%\">\n *\n * Given a list of strings describing a path to an object property, retrieves\n * the value of a specified nested property from all values in the source\n * Observable. If a property can't be resolved, it will return `undefined` for\n * that value.\n *\n * @example <caption>Map every every click to the tagName of the clicked target element</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var tagNames = clicks.pluck('target', 'tagName');\n * tagNames.subscribe(x => console.log(x));\n *\n * @see {@link map}\n *\n * @param {...string} properties The nested properties to pluck from each source\n * value (an object).\n * @return {Observable} Returns a new Observable of property values from the\n * source values.\n * @method pluck\n * @owner Observable\n */\nfunction pluck() {\n    var properties = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        properties[_i - 0] = arguments[_i];\n    }\n    var length = properties.length;\n    if (length === 0) {\n        throw new Error('list of properties cannot be empty.');\n    }\n    return map_1.map.call(this, plucker(properties, length));\n}\nexports.pluck = pluck;\nfunction plucker(props, length) {\n    var mapper = function (x) {\n        var currentProp = x;\n        for (var i = 0; i < length; i++) {\n            var p = currentProp[props[i]];\n            if (typeof p !== 'undefined') {\n                currentProp = p;\n            }\n            else {\n                return undefined;\n            }\n        }\n        return currentProp;\n    };\n    return mapper;\n}\n//# sourceMappingURL=pluck.js.map",
    "\"use strict\";\nvar Subject_1 = require('../Subject');\nvar multicast_1 = require('./multicast');\n/* tslint:disable:max-line-length */\n/**\n * Returns a ConnectableObservable, which is a variety of Observable that waits until its connect method is called\n * before it begins emitting items to those Observers that have subscribed to it.\n *\n * <img src=\"./img/publish.png\" width=\"100%\">\n *\n * @param {Function} Optional selector function which can use the multicasted source sequence as many times as needed,\n * without causing multiple subscriptions to the source sequence.\n * Subscribers to the given source will receive all notifications of the source from the time of the subscription on.\n * @return a ConnectableObservable that upon connection causes the source Observable to emit items to its Observers.\n * @method publish\n * @owner Observable\n */\nfunction publish(selector) {\n    return selector ? multicast_1.multicast.call(this, function () { return new Subject_1.Subject(); }, selector) :\n        multicast_1.multicast.call(this, new Subject_1.Subject());\n}\nexports.publish = publish;\n//# sourceMappingURL=publish.js.map",
    "\"use strict\";\nvar BehaviorSubject_1 = require('../BehaviorSubject');\nvar multicast_1 = require('./multicast');\n/**\n * @param value\n * @return {ConnectableObservable<T>}\n * @method publishBehavior\n * @owner Observable\n */\nfunction publishBehavior(value) {\n    return multicast_1.multicast.call(this, new BehaviorSubject_1.BehaviorSubject(value));\n}\nexports.publishBehavior = publishBehavior;\n//# sourceMappingURL=publishBehavior.js.map",
    "\"use strict\";\nvar AsyncSubject_1 = require('../AsyncSubject');\nvar multicast_1 = require('./multicast');\n/**\n * @return {ConnectableObservable<T>}\n * @method publishLast\n * @owner Observable\n */\nfunction publishLast() {\n    return multicast_1.multicast.call(this, new AsyncSubject_1.AsyncSubject());\n}\nexports.publishLast = publishLast;\n//# sourceMappingURL=publishLast.js.map",
    "\"use strict\";\nvar ReplaySubject_1 = require('../ReplaySubject');\nvar multicast_1 = require('./multicast');\n/**\n * @param bufferSize\n * @param windowTime\n * @param scheduler\n * @return {ConnectableObservable<T>}\n * @method publishReplay\n * @owner Observable\n */\nfunction publishReplay(bufferSize, windowTime, scheduler) {\n    if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n    if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n    return multicast_1.multicast.call(this, new ReplaySubject_1.ReplaySubject(bufferSize, windowTime, scheduler));\n}\nexports.publishReplay = publishReplay;\n//# sourceMappingURL=publishReplay.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar isArray_1 = require('../util/isArray');\nvar ArrayObservable_1 = require('../observable/ArrayObservable');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:disable:max-line-length */\n/**\n * Returns an Observable that mirrors the first source Observable to emit an item\n * from the combination of this Observable and supplied Observables\n * @param {...Observables} ...observables sources used to race for which Observable emits first.\n * @return {Observable} an Observable that mirrors the output of the first Observable to emit an item.\n * @method race\n * @owner Observable\n */\nfunction race() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i - 0] = arguments[_i];\n    }\n    // if the only argument is an array, it was most likely called with\n    // `pair([obs1, obs2, ...])`\n    if (observables.length === 1 && isArray_1.isArray(observables[0])) {\n        observables = observables[0];\n    }\n    return this.lift.call(raceStatic.apply(void 0, [this].concat(observables)));\n}\nexports.race = race;\nfunction raceStatic() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i - 0] = arguments[_i];\n    }\n    // if the only argument is an array, it was most likely called with\n    // `pair([obs1, obs2, ...])`\n    if (observables.length === 1) {\n        if (isArray_1.isArray(observables[0])) {\n            observables = observables[0];\n        }\n        else {\n            return observables[0];\n        }\n    }\n    return new ArrayObservable_1.ArrayObservable(observables).lift(new RaceOperator());\n}\nexports.raceStatic = raceStatic;\nvar RaceOperator = (function () {\n    function RaceOperator() {\n    }\n    RaceOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RaceSubscriber(subscriber));\n    };\n    return RaceOperator;\n}());\nexports.RaceOperator = RaceOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar RaceSubscriber = (function (_super) {\n    __extends(RaceSubscriber, _super);\n    function RaceSubscriber(destination) {\n        _super.call(this, destination);\n        this.hasFirst = false;\n        this.observables = [];\n        this.subscriptions = [];\n    }\n    RaceSubscriber.prototype._next = function (observable) {\n        this.observables.push(observable);\n    };\n    RaceSubscriber.prototype._complete = function () {\n        var observables = this.observables;\n        var len = observables.length;\n        if (len === 0) {\n            this.destination.complete();\n        }\n        else {\n            for (var i = 0; i < len && !this.hasFirst; i++) {\n                var observable = observables[i];\n                var subscription = subscribeToResult_1.subscribeToResult(this, observable, observable, i);\n                if (this.subscriptions) {\n                    this.subscriptions.push(subscription);\n                }\n                this.add(subscription);\n            }\n            this.observables = null;\n        }\n    };\n    RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        if (!this.hasFirst) {\n            this.hasFirst = true;\n            for (var i = 0; i < this.subscriptions.length; i++) {\n                if (i !== outerIndex) {\n                    var subscription = this.subscriptions[i];\n                    subscription.unsubscribe();\n                    this.remove(subscription);\n                }\n            }\n            this.subscriptions = null;\n        }\n        this.destination.next(innerValue);\n    };\n    return RaceSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\nexports.RaceSubscriber = RaceSubscriber;\n//# sourceMappingURL=race.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/* tslint:disable:max-line-length */\n/**\n * Applies an accumulator function over the source Observable, and returns the\n * accumulated result when the source completes, given an optional seed value.\n *\n * <span class=\"informal\">Combines together all values emitted on the source,\n * using an accumulator function that knows how to join a new source value into\n * the accumulation from the past.</span>\n *\n * <img src=\"./img/reduce.png\" width=\"100%\">\n *\n * Like\n * [Array.prototype.reduce()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce),\n * `reduce` applies an `accumulator` function against an accumulation and each\n * value of the source Observable (from the past) to reduce it to a single\n * value, emitted on the output Observable. Note that `reduce` will only emit\n * one value, only when the source Observable completes. It is equivalent to\n * applying operator {@link scan} followed by operator {@link last}.\n *\n * Returns an Observable that applies a specified `accumulator` function to each\n * item emitted by the source Observable. If a `seed` value is specified, then\n * that value will be used as the initial value for the accumulator. If no seed\n * value is specified, the first item of the source is used as the seed.\n *\n * @example <caption>Count the number of click events that happened in 5 seconds</caption>\n * var clicksInFiveSeconds = Rx.Observable.fromEvent(document, 'click')\n *   .takeUntil(Rx.Observable.interval(5000));\n * var ones = clicksInFiveSeconds.mapTo(1);\n * var seed = 0;\n * var count = ones.reduce((acc, one) => acc + one, seed);\n * count.subscribe(x => console.log(x));\n *\n * @see {@link count}\n * @see {@link expand}\n * @see {@link mergeScan}\n * @see {@link scan}\n *\n * @param {function(acc: R, value: T): R} accumulator The accumulator function\n * called on each source value.\n * @param {R} [seed] The initial accumulation value.\n * @return {Observable<R>} An observable of the accumulated values.\n * @return {Observable<R>} An Observable that emits a single value that is the\n * result of accumulating the values emitted by the source Observable.\n * @method reduce\n * @owner Observable\n */\nfunction reduce(accumulator, seed) {\n    var hasSeed = false;\n    // providing a seed of `undefined` *should* be valid and trigger\n    // hasSeed! so don't use `seed !== undefined` checks!\n    // For this reason, we have to check it here at the original call site\n    // otherwise inside Operator/Subscriber we won't know if `undefined`\n    // means they didn't provide anything or if they literally provided `undefined`\n    if (arguments.length >= 2) {\n        hasSeed = true;\n    }\n    return this.lift(new ReduceOperator(accumulator, seed, hasSeed));\n}\nexports.reduce = reduce;\nvar ReduceOperator = (function () {\n    function ReduceOperator(accumulator, seed, hasSeed) {\n        if (hasSeed === void 0) { hasSeed = false; }\n        this.accumulator = accumulator;\n        this.seed = seed;\n        this.hasSeed = hasSeed;\n    }\n    ReduceOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ReduceSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n    };\n    return ReduceOperator;\n}());\nexports.ReduceOperator = ReduceOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ReduceSubscriber = (function (_super) {\n    __extends(ReduceSubscriber, _super);\n    function ReduceSubscriber(destination, accumulator, seed, hasSeed) {\n        _super.call(this, destination);\n        this.accumulator = accumulator;\n        this.hasSeed = hasSeed;\n        this.hasValue = false;\n        this.acc = seed;\n    }\n    ReduceSubscriber.prototype._next = function (value) {\n        if (this.hasValue || (this.hasValue = this.hasSeed)) {\n            this._tryReduce(value);\n        }\n        else {\n            this.acc = value;\n            this.hasValue = true;\n        }\n    };\n    ReduceSubscriber.prototype._tryReduce = function (value) {\n        var result;\n        try {\n            result = this.accumulator(this.acc, value);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.acc = result;\n    };\n    ReduceSubscriber.prototype._complete = function () {\n        if (this.hasValue || this.hasSeed) {\n            this.destination.next(this.acc);\n        }\n        this.destination.complete();\n    };\n    return ReduceSubscriber;\n}(Subscriber_1.Subscriber));\nexports.ReduceSubscriber = ReduceSubscriber;\n//# sourceMappingURL=reduce.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar EmptyObservable_1 = require('../observable/EmptyObservable');\n/**\n * Returns an Observable that repeats the stream of items emitted by the source Observable at most count times,\n * on a particular Scheduler.\n *\n * <img src=\"./img/repeat.png\" width=\"100%\">\n *\n * @param {Scheduler} [scheduler] the Scheduler to emit the items on.\n * @param {number} [count] the number of times the source Observable items are repeated, a count of 0 will yield\n * an empty Observable.\n * @return {Observable} an Observable that repeats the stream of items emitted by the source Observable at most\n * count times.\n * @method repeat\n * @owner Observable\n */\nfunction repeat(count) {\n    if (count === void 0) { count = -1; }\n    if (count === 0) {\n        return new EmptyObservable_1.EmptyObservable();\n    }\n    else if (count < 0) {\n        return this.lift(new RepeatOperator(-1, this));\n    }\n    else {\n        return this.lift(new RepeatOperator(count - 1, this));\n    }\n}\nexports.repeat = repeat;\nvar RepeatOperator = (function () {\n    function RepeatOperator(count, source) {\n        this.count = count;\n        this.source = source;\n    }\n    RepeatOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n    };\n    return RepeatOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar RepeatSubscriber = (function (_super) {\n    __extends(RepeatSubscriber, _super);\n    function RepeatSubscriber(destination, count, source) {\n        _super.call(this, destination);\n        this.count = count;\n        this.source = source;\n    }\n    RepeatSubscriber.prototype.complete = function () {\n        if (!this.isStopped) {\n            var _a = this, source = _a.source, count = _a.count;\n            if (count === 0) {\n                return _super.prototype.complete.call(this);\n            }\n            else if (count > -1) {\n                this.count = count - 1;\n            }\n            this.unsubscribe();\n            this.isStopped = false;\n            this.closed = false;\n            source.subscribe(this);\n        }\n    };\n    return RepeatSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=repeat.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('../Subject');\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Returns an Observable that emits the same values as the source observable with the exception of a `complete`.\n * A `complete` will cause the emission of the Throwable that cause the complete to the Observable returned from\n * notificationHandler. If that Observable calls onComplete or `complete` then retry will call `complete` or `error`\n * on the child subscription. Otherwise, this Observable will resubscribe to the source observable, on a particular\n * Scheduler.\n *\n * <img src=\"./img/repeatWhen.png\" width=\"100%\">\n *\n * @param {notificationHandler} receives an Observable of notifications with which a user can `complete` or `error`,\n * aborting the retry.\n * @param {scheduler} the Scheduler on which to subscribe to the source Observable.\n * @return {Observable} the source Observable modified with retry logic.\n * @method repeatWhen\n * @owner Observable\n */\nfunction repeatWhen(notifier) {\n    return this.lift(new RepeatWhenOperator(notifier, this));\n}\nexports.repeatWhen = repeatWhen;\nvar RepeatWhenOperator = (function () {\n    function RepeatWhenOperator(notifier, source) {\n        this.notifier = notifier;\n        this.source = source;\n    }\n    RepeatWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, this.source));\n    };\n    return RepeatWhenOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar RepeatWhenSubscriber = (function (_super) {\n    __extends(RepeatWhenSubscriber, _super);\n    function RepeatWhenSubscriber(destination, notifier, source) {\n        _super.call(this, destination);\n        this.notifier = notifier;\n        this.source = source;\n    }\n    RepeatWhenSubscriber.prototype.complete = function () {\n        if (!this.isStopped) {\n            var notifications = this.notifications;\n            var retries = this.retries;\n            var retriesSubscription = this.retriesSubscription;\n            if (!retries) {\n                notifications = new Subject_1.Subject();\n                retries = tryCatch_1.tryCatch(this.notifier)(notifications);\n                if (retries === errorObject_1.errorObject) {\n                    return _super.prototype.complete.call(this);\n                }\n                retriesSubscription = subscribeToResult_1.subscribeToResult(this, retries);\n            }\n            else {\n                this.notifications = null;\n                this.retriesSubscription = null;\n            }\n            this.unsubscribe();\n            this.closed = false;\n            this.notifications = notifications;\n            this.retries = retries;\n            this.retriesSubscription = retriesSubscription;\n            notifications.next();\n        }\n    };\n    RepeatWhenSubscriber.prototype._unsubscribe = function () {\n        var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n        if (notifications) {\n            notifications.unsubscribe();\n            this.notifications = null;\n        }\n        if (retriesSubscription) {\n            retriesSubscription.unsubscribe();\n            this.retriesSubscription = null;\n        }\n        this.retries = null;\n    };\n    RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var _a = this, notifications = _a.notifications, retries = _a.retries, retriesSubscription = _a.retriesSubscription;\n        this.notifications = null;\n        this.retries = null;\n        this.retriesSubscription = null;\n        this.unsubscribe();\n        this.isStopped = false;\n        this.closed = false;\n        this.notifications = notifications;\n        this.retries = retries;\n        this.retriesSubscription = retriesSubscription;\n        this.source.subscribe(this);\n    };\n    return RepeatWhenSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=repeatWhen.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Returns an Observable that mirrors the source Observable, resubscribing to it if it calls `error` and the\n * predicate returns true for that specific exception and retry count.\n * If the source Observable calls `error`, this method will resubscribe to the source Observable for a maximum of\n * count resubscriptions (given as a number parameter) rather than propagating the `error` call.\n *\n * <img src=\"./img/retry.png\" width=\"100%\">\n *\n * Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted\n * during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second\n * time and emits: [1, 2, 3, 4, 5] then the complete stream of emissions and notifications\n * would be: [1, 2, 1, 2, 3, 4, 5, `complete`].\n * @param {number} number of retry attempts before failing.\n * @return {Observable} the source Observable modified with the retry logic.\n * @method retry\n * @owner Observable\n */\nfunction retry(count) {\n    if (count === void 0) { count = -1; }\n    return this.lift(new RetryOperator(count, this));\n}\nexports.retry = retry;\nvar RetryOperator = (function () {\n    function RetryOperator(count, source) {\n        this.count = count;\n        this.source = source;\n    }\n    RetryOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n    };\n    return RetryOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar RetrySubscriber = (function (_super) {\n    __extends(RetrySubscriber, _super);\n    function RetrySubscriber(destination, count, source) {\n        _super.call(this, destination);\n        this.count = count;\n        this.source = source;\n    }\n    RetrySubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var _a = this, source = _a.source, count = _a.count;\n            if (count === 0) {\n                return _super.prototype.error.call(this, err);\n            }\n            else if (count > -1) {\n                this.count = count - 1;\n            }\n            this.unsubscribe();\n            this.isStopped = false;\n            this.closed = false;\n            source.subscribe(this);\n        }\n    };\n    return RetrySubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=retry.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('../Subject');\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Returns an Observable that emits the same values as the source observable with the exception of an `error`.\n * An `error` will cause the emission of the Throwable that cause the error to the Observable returned from\n * notificationHandler. If that Observable calls onComplete or `error` then retry will call `complete` or `error`\n * on the child subscription. Otherwise, this Observable will resubscribe to the source observable, on a particular\n * Scheduler.\n *\n * <img src=\"./img/retryWhen.png\" width=\"100%\">\n *\n * @param {notificationHandler} receives an Observable of notifications with which a user can `complete` or `error`,\n * aborting the retry.\n * @param {scheduler} the Scheduler on which to subscribe to the source Observable.\n * @return {Observable} the source Observable modified with retry logic.\n * @method retryWhen\n * @owner Observable\n */\nfunction retryWhen(notifier) {\n    return this.lift(new RetryWhenOperator(notifier, this));\n}\nexports.retryWhen = retryWhen;\nvar RetryWhenOperator = (function () {\n    function RetryWhenOperator(notifier, source) {\n        this.notifier = notifier;\n        this.source = source;\n    }\n    RetryWhenOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n    };\n    return RetryWhenOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar RetryWhenSubscriber = (function (_super) {\n    __extends(RetryWhenSubscriber, _super);\n    function RetryWhenSubscriber(destination, notifier, source) {\n        _super.call(this, destination);\n        this.notifier = notifier;\n        this.source = source;\n    }\n    RetryWhenSubscriber.prototype.error = function (err) {\n        if (!this.isStopped) {\n            var errors = this.errors;\n            var retries = this.retries;\n            var retriesSubscription = this.retriesSubscription;\n            if (!retries) {\n                errors = new Subject_1.Subject();\n                retries = tryCatch_1.tryCatch(this.notifier)(errors);\n                if (retries === errorObject_1.errorObject) {\n                    return _super.prototype.error.call(this, errorObject_1.errorObject.e);\n                }\n                retriesSubscription = subscribeToResult_1.subscribeToResult(this, retries);\n            }\n            else {\n                this.errors = null;\n                this.retriesSubscription = null;\n            }\n            this.unsubscribe();\n            this.closed = false;\n            this.errors = errors;\n            this.retries = retries;\n            this.retriesSubscription = retriesSubscription;\n            errors.next(err);\n        }\n    };\n    RetryWhenSubscriber.prototype._unsubscribe = function () {\n        var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n        if (errors) {\n            errors.unsubscribe();\n            this.errors = null;\n        }\n        if (retriesSubscription) {\n            retriesSubscription.unsubscribe();\n            this.retriesSubscription = null;\n        }\n        this.retries = null;\n    };\n    RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var _a = this, errors = _a.errors, retries = _a.retries, retriesSubscription = _a.retriesSubscription;\n        this.errors = null;\n        this.retries = null;\n        this.retriesSubscription = null;\n        this.unsubscribe();\n        this.isStopped = false;\n        this.closed = false;\n        this.errors = errors;\n        this.retries = retries;\n        this.retriesSubscription = retriesSubscription;\n        this.source.subscribe(this);\n    };\n    return RetryWhenSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=retryWhen.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Emits the most recently emitted value from the source Observable whenever\n * another Observable, the `notifier`, emits.\n *\n * <span class=\"informal\">It's like {@link sampleTime}, but samples whenever\n * the `notifier` Observable emits something.</span>\n *\n * <img src=\"./img/sample.png\" width=\"100%\">\n *\n * Whenever the `notifier` Observable emits a value or completes, `sample`\n * looks at the source Observable and emits whichever value it has most recently\n * emitted since the previous sampling, unless the source has not emitted\n * anything since the previous sampling. The `notifier` is subscribed to as soon\n * as the output Observable is subscribed.\n *\n * @example <caption>On every click, sample the most recent \"seconds\" timer</caption>\n * var seconds = Rx.Observable.interval(1000);\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = seconds.sample(clicks);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link audit}\n * @see {@link debounce}\n * @see {@link sampleTime}\n * @see {@link throttle}\n *\n * @param {Observable<any>} notifier The Observable to use for sampling the\n * source Observable.\n * @return {Observable<T>} An Observable that emits the results of sampling the\n * values emitted by the source Observable whenever the notifier Observable\n * emits value or completes.\n * @method sample\n * @owner Observable\n */\nfunction sample(notifier) {\n    return this.lift(new SampleOperator(notifier));\n}\nexports.sample = sample;\nvar SampleOperator = (function () {\n    function SampleOperator(notifier) {\n        this.notifier = notifier;\n    }\n    SampleOperator.prototype.call = function (subscriber, source) {\n        var sampleSubscriber = new SampleSubscriber(subscriber);\n        var subscription = source.subscribe(sampleSubscriber);\n        subscription.add(subscribeToResult_1.subscribeToResult(sampleSubscriber, this.notifier));\n        return subscription;\n    };\n    return SampleOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SampleSubscriber = (function (_super) {\n    __extends(SampleSubscriber, _super);\n    function SampleSubscriber() {\n        _super.apply(this, arguments);\n        this.hasValue = false;\n    }\n    SampleSubscriber.prototype._next = function (value) {\n        this.value = value;\n        this.hasValue = true;\n    };\n    SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.emitValue();\n    };\n    SampleSubscriber.prototype.notifyComplete = function () {\n        this.emitValue();\n    };\n    SampleSubscriber.prototype.emitValue = function () {\n        if (this.hasValue) {\n            this.hasValue = false;\n            this.destination.next(this.value);\n        }\n    };\n    return SampleSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=sample.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar async_1 = require('../scheduler/async');\n/**\n * Emits the most recently emitted value from the source Observable within\n * periodic time intervals.\n *\n * <span class=\"informal\">Samples the source Observable at periodic time\n * intervals, emitting what it samples.</span>\n *\n * <img src=\"./img/sampleTime.png\" width=\"100%\">\n *\n * `sampleTime` periodically looks at the source Observable and emits whichever\n * value it has most recently emitted since the previous sampling, unless the\n * source has not emitted anything since the previous sampling. The sampling\n * happens periodically in time every `period` milliseconds (or the time unit\n * defined by the optional `scheduler` argument). The sampling starts as soon as\n * the output Observable is subscribed.\n *\n * @example <caption>Every second, emit the most recent click at most once</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.sampleTime(1000);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sample}\n * @see {@link throttleTime}\n *\n * @param {number} period The sampling period expressed in milliseconds or the\n * time unit determined internally by the optional `scheduler`.\n * @param {Scheduler} [scheduler=async] The {@link Scheduler} to use for\n * managing the timers that handle the sampling.\n * @return {Observable<T>} An Observable that emits the results of sampling the\n * values emitted by the source Observable at the specified time interval.\n * @method sampleTime\n * @owner Observable\n */\nfunction sampleTime(period, scheduler) {\n    if (scheduler === void 0) { scheduler = async_1.async; }\n    return this.lift(new SampleTimeOperator(period, scheduler));\n}\nexports.sampleTime = sampleTime;\nvar SampleTimeOperator = (function () {\n    function SampleTimeOperator(period, scheduler) {\n        this.period = period;\n        this.scheduler = scheduler;\n    }\n    SampleTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n    };\n    return SampleTimeOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SampleTimeSubscriber = (function (_super) {\n    __extends(SampleTimeSubscriber, _super);\n    function SampleTimeSubscriber(destination, period, scheduler) {\n        _super.call(this, destination);\n        this.period = period;\n        this.scheduler = scheduler;\n        this.hasValue = false;\n        this.add(scheduler.schedule(dispatchNotification, period, { subscriber: this, period: period }));\n    }\n    SampleTimeSubscriber.prototype._next = function (value) {\n        this.lastValue = value;\n        this.hasValue = true;\n    };\n    SampleTimeSubscriber.prototype.notifyNext = function () {\n        if (this.hasValue) {\n            this.hasValue = false;\n            this.destination.next(this.lastValue);\n        }\n    };\n    return SampleTimeSubscriber;\n}(Subscriber_1.Subscriber));\nfunction dispatchNotification(state) {\n    var subscriber = state.subscriber, period = state.period;\n    subscriber.notifyNext();\n    this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/* tslint:disable:max-line-length */\n/**\n * Applies an accumulator function over the source Observable, and returns each\n * intermediate result, with an optional seed value.\n *\n * <span class=\"informal\">It's like {@link reduce}, but emits the current\n * accumulation whenever the source emits a value.</span>\n *\n * <img src=\"./img/scan.png\" width=\"100%\">\n *\n * Combines together all values emitted on the source, using an accumulator\n * function that knows how to join a new source value into the accumulation from\n * the past. Is similar to {@link reduce}, but emits the intermediate\n * accumulations.\n *\n * Returns an Observable that applies a specified `accumulator` function to each\n * item emitted by the source Observable. If a `seed` value is specified, then\n * that value will be used as the initial value for the accumulator. If no seed\n * value is specified, the first item of the source is used as the seed.\n *\n * @example <caption>Count the number of click events</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var ones = clicks.mapTo(1);\n * var seed = 0;\n * var count = ones.scan((acc, one) => acc + one, seed);\n * count.subscribe(x => console.log(x));\n *\n * @see {@link expand}\n * @see {@link mergeScan}\n * @see {@link reduce}\n *\n * @param {function(acc: R, value: T, index: number): R} accumulator\n * The accumulator function called on each source value.\n * @param {T|R} [seed] The initial accumulation value.\n * @return {Observable<R>} An observable of the accumulated values.\n * @method scan\n * @owner Observable\n */\nfunction scan(accumulator, seed) {\n    var hasSeed = false;\n    // providing a seed of `undefined` *should* be valid and trigger\n    // hasSeed! so don't use `seed !== undefined` checks!\n    // For this reason, we have to check it here at the original call site\n    // otherwise inside Operator/Subscriber we won't know if `undefined`\n    // means they didn't provide anything or if they literally provided `undefined`\n    if (arguments.length >= 2) {\n        hasSeed = true;\n    }\n    return this.lift(new ScanOperator(accumulator, seed, hasSeed));\n}\nexports.scan = scan;\nvar ScanOperator = (function () {\n    function ScanOperator(accumulator, seed, hasSeed) {\n        if (hasSeed === void 0) { hasSeed = false; }\n        this.accumulator = accumulator;\n        this.seed = seed;\n        this.hasSeed = hasSeed;\n    }\n    ScanOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n    };\n    return ScanOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ScanSubscriber = (function (_super) {\n    __extends(ScanSubscriber, _super);\n    function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n        _super.call(this, destination);\n        this.accumulator = accumulator;\n        this._seed = _seed;\n        this.hasSeed = hasSeed;\n        this.index = 0;\n    }\n    Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n        get: function () {\n            return this._seed;\n        },\n        set: function (value) {\n            this.hasSeed = true;\n            this._seed = value;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    ScanSubscriber.prototype._next = function (value) {\n        if (!this.hasSeed) {\n            this.seed = value;\n            this.destination.next(value);\n        }\n        else {\n            return this._tryNext(value);\n        }\n    };\n    ScanSubscriber.prototype._tryNext = function (value) {\n        var index = this.index++;\n        var result;\n        try {\n            result = this.accumulator(this.seed, value, index);\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n        this.seed = result;\n        this.destination.next(result);\n    };\n    return ScanSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=scan.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\n/**\n * Compares all values of two observables in sequence using an optional comparor function\n * and returns an observable of a single boolean value representing whether or not the two sequences\n * are equal.\n *\n * <span class=\"informal\">Checks to see of all values emitted by both observables are equal, in order.</span>\n *\n * <img src=\"./img/sequenceEqual.png\" width=\"100%\">\n *\n * `sequenceEqual` subscribes to two observables and buffers incoming values from each observable. Whenever either\n * observable emits a value, the value is buffered and the buffers are shifted and compared from the bottom\n * up; If any value pair doesn't match, the returned observable will emit `false` and complete. If one of the\n * observables completes, the operator will wait for the other observable to complete; If the other\n * observable emits before completing, the returned observable will emit `false` and complete. If one observable never\n * completes or emits after the other complets, the returned observable will never complete.\n *\n * @example <caption>figure out if the Konami code matches</caption>\n * var code = Rx.Observable.from([\n *  \"ArrowUp\",\n *  \"ArrowUp\",\n *  \"ArrowDown\",\n *  \"ArrowDown\",\n *  \"ArrowLeft\",\n *  \"ArrowRight\",\n *  \"ArrowLeft\",\n *  \"ArrowRight\",\n *  \"KeyB\",\n *  \"KeyA\",\n *  \"Enter\" // no start key, clearly.\n * ]);\n *\n * var keys = Rx.Observable.fromEvent(document, 'keyup')\n *  .map(e => e.code);\n * var matches = keys.bufferCount(11, 1)\n *  .mergeMap(\n *    last11 =>\n *      Rx.Observable.from(last11)\n *        .sequenceEqual(code)\n *   );\n * matches.subscribe(matched => console.log('Successful cheat at Contra? ', matched));\n *\n * @see {@link combineLatest}\n * @see {@link zip}\n * @see {@link withLatestFrom}\n *\n * @param {Observable} compareTo the observable sequence to compare the source sequence to.\n * @param {function} [comparor] An optional function to compare each value pair\n * @return {Observable} An Observable of a single boolean value representing whether or not\n * the values emitted by both observables were equal in sequence\n * @method sequenceEqual\n * @owner Observable\n */\nfunction sequenceEqual(compareTo, comparor) {\n    return this.lift(new SequenceEqualOperator(compareTo, comparor));\n}\nexports.sequenceEqual = sequenceEqual;\nvar SequenceEqualOperator = (function () {\n    function SequenceEqualOperator(compareTo, comparor) {\n        this.compareTo = compareTo;\n        this.comparor = comparor;\n    }\n    SequenceEqualOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparor));\n    };\n    return SequenceEqualOperator;\n}());\nexports.SequenceEqualOperator = SequenceEqualOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SequenceEqualSubscriber = (function (_super) {\n    __extends(SequenceEqualSubscriber, _super);\n    function SequenceEqualSubscriber(destination, compareTo, comparor) {\n        _super.call(this, destination);\n        this.compareTo = compareTo;\n        this.comparor = comparor;\n        this._a = [];\n        this._b = [];\n        this._oneComplete = false;\n        this.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, this)));\n    }\n    SequenceEqualSubscriber.prototype._next = function (value) {\n        if (this._oneComplete && this._b.length === 0) {\n            this.emit(false);\n        }\n        else {\n            this._a.push(value);\n            this.checkValues();\n        }\n    };\n    SequenceEqualSubscriber.prototype._complete = function () {\n        if (this._oneComplete) {\n            this.emit(this._a.length === 0 && this._b.length === 0);\n        }\n        else {\n            this._oneComplete = true;\n        }\n    };\n    SequenceEqualSubscriber.prototype.checkValues = function () {\n        var _c = this, _a = _c._a, _b = _c._b, comparor = _c.comparor;\n        while (_a.length > 0 && _b.length > 0) {\n            var a = _a.shift();\n            var b = _b.shift();\n            var areEqual = false;\n            if (comparor) {\n                areEqual = tryCatch_1.tryCatch(comparor)(a, b);\n                if (areEqual === errorObject_1.errorObject) {\n                    this.destination.error(errorObject_1.errorObject.e);\n                }\n            }\n            else {\n                areEqual = a === b;\n            }\n            if (!areEqual) {\n                this.emit(false);\n            }\n        }\n    };\n    SequenceEqualSubscriber.prototype.emit = function (value) {\n        var destination = this.destination;\n        destination.next(value);\n        destination.complete();\n    };\n    SequenceEqualSubscriber.prototype.nextB = function (value) {\n        if (this._oneComplete && this._a.length === 0) {\n            this.emit(false);\n        }\n        else {\n            this._b.push(value);\n            this.checkValues();\n        }\n    };\n    return SequenceEqualSubscriber;\n}(Subscriber_1.Subscriber));\nexports.SequenceEqualSubscriber = SequenceEqualSubscriber;\nvar SequenceEqualCompareToSubscriber = (function (_super) {\n    __extends(SequenceEqualCompareToSubscriber, _super);\n    function SequenceEqualCompareToSubscriber(destination, parent) {\n        _super.call(this, destination);\n        this.parent = parent;\n    }\n    SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n        this.parent.nextB(value);\n    };\n    SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n        this.parent.error(err);\n    };\n    SequenceEqualCompareToSubscriber.prototype._complete = function () {\n        this.parent._complete();\n    };\n    return SequenceEqualCompareToSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=sequenceEqual.js.map",
    "\"use strict\";\nvar multicast_1 = require('./multicast');\nvar Subject_1 = require('../Subject');\nfunction shareSubjectFactory() {\n    return new Subject_1.Subject();\n}\n/**\n * Returns a new Observable that multicasts (shares) the original Observable. As long as there is at least one\n * Subscriber this Observable will be subscribed and emitting data. When all subscribers have unsubscribed it will\n * unsubscribe from the source Observable. Because the Observable is multicasting it makes the stream `hot`.\n * This is an alias for .publish().refCount().\n *\n * <img src=\"./img/share.png\" width=\"100%\">\n *\n * @return {Observable<T>} an Observable that upon connection causes the source Observable to emit items to its Observers\n * @method share\n * @owner Observable\n */\nfunction share() {\n    return multicast_1.multicast.call(this, shareSubjectFactory).refCount();\n}\nexports.share = share;\n;\n//# sourceMappingURL=share.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar EmptyError_1 = require('../util/EmptyError');\n/**\n * Returns an Observable that emits the single item emitted by the source Observable that matches a specified\n * predicate, if that Observable emits one such item. If the source Observable emits more than one such item or no\n * such items, notify of an IllegalArgumentException or NoSuchElementException respectively.\n *\n * <img src=\"./img/single.png\" width=\"100%\">\n *\n * @throws {EmptyError} Delivers an EmptyError to the Observer's `error`\n * callback if the Observable completes before any `next` notification was sent.\n * @param {Function} a predicate function to evaluate items emitted by the source Observable.\n * @return {Observable<T>} an Observable that emits the single item emitted by the source Observable that matches\n * the predicate.\n .\n * @method single\n * @owner Observable\n */\nfunction single(predicate) {\n    return this.lift(new SingleOperator(predicate, this));\n}\nexports.single = single;\nvar SingleOperator = (function () {\n    function SingleOperator(predicate, source) {\n        this.predicate = predicate;\n        this.source = source;\n    }\n    SingleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n    };\n    return SingleOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SingleSubscriber = (function (_super) {\n    __extends(SingleSubscriber, _super);\n    function SingleSubscriber(destination, predicate, source) {\n        _super.call(this, destination);\n        this.predicate = predicate;\n        this.source = source;\n        this.seenValue = false;\n        this.index = 0;\n    }\n    SingleSubscriber.prototype.applySingleValue = function (value) {\n        if (this.seenValue) {\n            this.destination.error('Sequence contains more than one element');\n        }\n        else {\n            this.seenValue = true;\n            this.singleValue = value;\n        }\n    };\n    SingleSubscriber.prototype._next = function (value) {\n        var predicate = this.predicate;\n        this.index++;\n        if (predicate) {\n            this.tryNext(value);\n        }\n        else {\n            this.applySingleValue(value);\n        }\n    };\n    SingleSubscriber.prototype.tryNext = function (value) {\n        try {\n            var result = this.predicate(value, this.index, this.source);\n            if (result) {\n                this.applySingleValue(value);\n            }\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    SingleSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        if (this.index > 0) {\n            destination.next(this.seenValue ? this.singleValue : undefined);\n            destination.complete();\n        }\n        else {\n            destination.error(new EmptyError_1.EmptyError);\n        }\n    };\n    return SingleSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=single.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Returns an Observable that skips `n` items emitted by an Observable.\n *\n * <img src=\"./img/skip.png\" width=\"100%\">\n *\n * @param {Number} the `n` of times, items emitted by source Observable should be skipped.\n * @return {Observable} an Observable that skips values emitted by the source Observable.\n *\n * @method skip\n * @owner Observable\n */\nfunction skip(total) {\n    return this.lift(new SkipOperator(total));\n}\nexports.skip = skip;\nvar SkipOperator = (function () {\n    function SkipOperator(total) {\n        this.total = total;\n    }\n    SkipOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SkipSubscriber(subscriber, this.total));\n    };\n    return SkipOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SkipSubscriber = (function (_super) {\n    __extends(SkipSubscriber, _super);\n    function SkipSubscriber(destination, total) {\n        _super.call(this, destination);\n        this.total = total;\n        this.count = 0;\n    }\n    SkipSubscriber.prototype._next = function (x) {\n        if (++this.count > this.total) {\n            this.destination.next(x);\n        }\n    };\n    return SkipSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=skip.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Returns an Observable that skips items emitted by the source Observable until a second Observable emits an item.\n *\n * <img src=\"./img/skipUntil.png\" width=\"100%\">\n *\n * @param {Observable} the second Observable that has to emit an item before the source Observable's elements begin to\n * be mirrored by the resulting Observable.\n * @return {Observable<T>} an Observable that skips items from the source Observable until the second Observable emits\n * an item, then emits the remaining items.\n * @method skipUntil\n * @owner Observable\n */\nfunction skipUntil(notifier) {\n    return this.lift(new SkipUntilOperator(notifier));\n}\nexports.skipUntil = skipUntil;\nvar SkipUntilOperator = (function () {\n    function SkipUntilOperator(notifier) {\n        this.notifier = notifier;\n    }\n    SkipUntilOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SkipUntilSubscriber(subscriber, this.notifier));\n    };\n    return SkipUntilOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SkipUntilSubscriber = (function (_super) {\n    __extends(SkipUntilSubscriber, _super);\n    function SkipUntilSubscriber(destination, notifier) {\n        _super.call(this, destination);\n        this.hasValue = false;\n        this.isInnerStopped = false;\n        this.add(subscribeToResult_1.subscribeToResult(this, notifier));\n    }\n    SkipUntilSubscriber.prototype._next = function (value) {\n        if (this.hasValue) {\n            _super.prototype._next.call(this, value);\n        }\n    };\n    SkipUntilSubscriber.prototype._complete = function () {\n        if (this.isInnerStopped) {\n            _super.prototype._complete.call(this);\n        }\n        else {\n            this.unsubscribe();\n        }\n    };\n    SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.hasValue = true;\n    };\n    SkipUntilSubscriber.prototype.notifyComplete = function () {\n        this.isInnerStopped = true;\n        if (this.isStopped) {\n            _super.prototype._complete.call(this);\n        }\n    };\n    return SkipUntilSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=skipUntil.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Returns an Observable that skips all items emitted by the source Observable as long as a specified condition holds\n * true, but emits all further source items as soon as the condition becomes false.\n *\n * <img src=\"./img/skipWhile.png\" width=\"100%\">\n *\n * @param {Function} predicate - a function to test each item emitted from the source Observable.\n * @return {Observable<T>} an Observable that begins emitting items emitted by the source Observable when the\n * specified predicate becomes false.\n * @method skipWhile\n * @owner Observable\n */\nfunction skipWhile(predicate) {\n    return this.lift(new SkipWhileOperator(predicate));\n}\nexports.skipWhile = skipWhile;\nvar SkipWhileOperator = (function () {\n    function SkipWhileOperator(predicate) {\n        this.predicate = predicate;\n    }\n    SkipWhileOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n    };\n    return SkipWhileOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SkipWhileSubscriber = (function (_super) {\n    __extends(SkipWhileSubscriber, _super);\n    function SkipWhileSubscriber(destination, predicate) {\n        _super.call(this, destination);\n        this.predicate = predicate;\n        this.skipping = true;\n        this.index = 0;\n    }\n    SkipWhileSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        if (this.skipping) {\n            this.tryCallPredicate(value);\n        }\n        if (!this.skipping) {\n            destination.next(value);\n        }\n    };\n    SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n        try {\n            var result = this.predicate(value, this.index++);\n            this.skipping = Boolean(result);\n        }\n        catch (err) {\n            this.destination.error(err);\n        }\n    };\n    return SkipWhileSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=skipWhile.js.map",
    "\"use strict\";\nvar ArrayObservable_1 = require('../observable/ArrayObservable');\nvar ScalarObservable_1 = require('../observable/ScalarObservable');\nvar EmptyObservable_1 = require('../observable/EmptyObservable');\nvar concat_1 = require('./concat');\nvar isScheduler_1 = require('../util/isScheduler');\n/* tslint:disable:max-line-length */\n/**\n * Returns an Observable that emits the items in a specified Iterable before it begins to emit items emitted by the\n * source Observable.\n *\n * <img src=\"./img/startWith.png\" width=\"100%\">\n *\n * @param {Values} an Iterable that contains the items you want the modified Observable to emit first.\n * @return {Observable} an Observable that emits the items in the specified Iterable and then emits the items\n * emitted by the source Observable.\n * @method startWith\n * @owner Observable\n */\nfunction startWith() {\n    var array = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        array[_i - 0] = arguments[_i];\n    }\n    var scheduler = array[array.length - 1];\n    if (isScheduler_1.isScheduler(scheduler)) {\n        array.pop();\n    }\n    else {\n        scheduler = null;\n    }\n    var len = array.length;\n    if (len === 1) {\n        return concat_1.concatStatic(new ScalarObservable_1.ScalarObservable(array[0], scheduler), this);\n    }\n    else if (len > 1) {\n        return concat_1.concatStatic(new ArrayObservable_1.ArrayObservable(array, scheduler), this);\n    }\n    else {\n        return concat_1.concatStatic(new EmptyObservable_1.EmptyObservable(scheduler), this);\n    }\n}\nexports.startWith = startWith;\n//# sourceMappingURL=startWith.js.map",
    "\"use strict\";\nvar SubscribeOnObservable_1 = require('../observable/SubscribeOnObservable');\n/**\n * Asynchronously subscribes Observers to this Observable on the specified Scheduler.\n *\n * <img src=\"./img/subscribeOn.png\" width=\"100%\">\n *\n * @param {Scheduler} the Scheduler to perform subscription actions on.\n * @return {Observable<T>} the source Observable modified so that its subscriptions happen on the specified Scheduler\n .\n * @method subscribeOn\n * @owner Observable\n */\nfunction subscribeOn(scheduler, delay) {\n    if (delay === void 0) { delay = 0; }\n    return this.lift(new SubscribeOnOperator(scheduler, delay));\n}\nexports.subscribeOn = subscribeOn;\nvar SubscribeOnOperator = (function () {\n    function SubscribeOnOperator(scheduler, delay) {\n        this.scheduler = scheduler;\n        this.delay = delay;\n    }\n    SubscribeOnOperator.prototype.call = function (subscriber, source) {\n        return new SubscribeOnObservable_1.SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n    };\n    return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Converts a higher-order Observable into a first-order Observable by\n * subscribing to only the most recently emitted of those inner Observables.\n *\n * <span class=\"informal\">Flattens an Observable-of-Observables by dropping the\n * previous inner Observable once a new one appears.</span>\n *\n * <img src=\"./img/switch.png\" width=\"100%\">\n *\n * `switch` subscribes to an Observable that emits Observables, also known as a\n * higher-order Observable. Each time it observes one of these emitted inner\n * Observables, the output Observable subscribes to the inner Observable and\n * begins emitting the items emitted by that. So far, it behaves\n * like {@link mergeAll}. However, when a new inner Observable is emitted,\n * `switch` unsubscribes from the earlier-emitted inner Observable and\n * subscribes to the new inner Observable and begins emitting items from it. It\n * continues to behave like this for subsequent inner Observables.\n *\n * @example <caption>Rerun an interval Observable on every click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * // Each click event is mapped to an Observable that ticks every second\n * var higherOrder = clicks.map((ev) => Rx.Observable.interval(1000));\n * var switched = higherOrder.switch();\n * // The outcome is that `switched` is essentially a timer that restarts\n * // on every click. The interval Observables from older clicks do not merge\n * // with the current interval Observable.\n * switched.subscribe(x => console.log(x));\n *\n * @see {@link combineAll}\n * @see {@link concatAll}\n * @see {@link exhaust}\n * @see {@link mergeAll}\n * @see {@link switchMap}\n * @see {@link switchMapTo}\n * @see {@link zipAll}\n *\n * @return {Observable<T>} An Observable that emits the items emitted by the\n * Observable most recently emitted by the source Observable.\n * @method switch\n * @name switch\n * @owner Observable\n */\nfunction _switch() {\n    return this.lift(new SwitchOperator());\n}\nexports._switch = _switch;\nvar SwitchOperator = (function () {\n    function SwitchOperator() {\n    }\n    SwitchOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SwitchSubscriber(subscriber));\n    };\n    return SwitchOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SwitchSubscriber = (function (_super) {\n    __extends(SwitchSubscriber, _super);\n    function SwitchSubscriber(destination) {\n        _super.call(this, destination);\n        this.active = 0;\n        this.hasCompleted = false;\n    }\n    SwitchSubscriber.prototype._next = function (value) {\n        this.unsubscribeInner();\n        this.active++;\n        this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, value));\n    };\n    SwitchSubscriber.prototype._complete = function () {\n        this.hasCompleted = true;\n        if (this.active === 0) {\n            this.destination.complete();\n        }\n    };\n    SwitchSubscriber.prototype.unsubscribeInner = function () {\n        this.active = this.active > 0 ? this.active - 1 : 0;\n        var innerSubscription = this.innerSubscription;\n        if (innerSubscription) {\n            innerSubscription.unsubscribe();\n            this.remove(innerSubscription);\n        }\n    };\n    SwitchSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.destination.next(innerValue);\n    };\n    SwitchSubscriber.prototype.notifyError = function (err) {\n        this.destination.error(err);\n    };\n    SwitchSubscriber.prototype.notifyComplete = function () {\n        this.unsubscribeInner();\n        if (this.hasCompleted && this.active === 0) {\n            this.destination.complete();\n        }\n    };\n    return SwitchSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=switch.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:disable:max-line-length */\n/**\n * Projects each source value to an Observable which is merged in the output\n * Observable, emitting values only from the most recently projected Observable.\n *\n * <span class=\"informal\">Maps each value to an Observable, then flattens all of\n * these inner Observables using {@link switch}.</span>\n *\n * <img src=\"./img/switchMap.png\" width=\"100%\">\n *\n * Returns an Observable that emits items based on applying a function that you\n * supply to each item emitted by the source Observable, where that function\n * returns an (so-called \"inner\") Observable. Each time it observes one of these\n * inner Observables, the output Observable begins emitting the items emitted by\n * that inner Observable. When a new inner Observable is emitted, `switchMap`\n * stops emitting items from the earlier-emitted inner Observable and begins\n * emitting items from the new one. It continues to behave like this for\n * subsequent inner Observables.\n *\n * @example <caption>Rerun an interval Observable on every click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.switchMap((ev) => Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link concatMap}\n * @see {@link exhaustMap}\n * @see {@link mergeMap}\n * @see {@link switch}\n * @see {@link switchMapTo}\n *\n * @param {function(value: T, ?index: number): Observable} project A function\n * that, when applied to an item emitted by the source Observable, returns an\n * Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @return {Observable} An Observable that emits the result of applying the\n * projection function (and the optional `resultSelector`) to each item emitted\n * by the source Observable and taking only the values from the most recently\n * projected inner Observable.\n * @method switchMap\n * @owner Observable\n */\nfunction switchMap(project, resultSelector) {\n    return this.lift(new SwitchMapOperator(project, resultSelector));\n}\nexports.switchMap = switchMap;\nvar SwitchMapOperator = (function () {\n    function SwitchMapOperator(project, resultSelector) {\n        this.project = project;\n        this.resultSelector = resultSelector;\n    }\n    SwitchMapOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SwitchMapSubscriber(subscriber, this.project, this.resultSelector));\n    };\n    return SwitchMapOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SwitchMapSubscriber = (function (_super) {\n    __extends(SwitchMapSubscriber, _super);\n    function SwitchMapSubscriber(destination, project, resultSelector) {\n        _super.call(this, destination);\n        this.project = project;\n        this.resultSelector = resultSelector;\n        this.index = 0;\n    }\n    SwitchMapSubscriber.prototype._next = function (value) {\n        var result;\n        var index = this.index++;\n        try {\n            result = this.project(value, index);\n        }\n        catch (error) {\n            this.destination.error(error);\n            return;\n        }\n        this._innerSub(result, value, index);\n    };\n    SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n        var innerSubscription = this.innerSubscription;\n        if (innerSubscription) {\n            innerSubscription.unsubscribe();\n        }\n        this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, result, value, index));\n    };\n    SwitchMapSubscriber.prototype._complete = function () {\n        var innerSubscription = this.innerSubscription;\n        if (!innerSubscription || innerSubscription.closed) {\n            _super.prototype._complete.call(this);\n        }\n    };\n    SwitchMapSubscriber.prototype._unsubscribe = function () {\n        this.innerSubscription = null;\n    };\n    SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.remove(innerSub);\n        this.innerSubscription = null;\n        if (this.isStopped) {\n            _super.prototype._complete.call(this);\n        }\n    };\n    SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        if (this.resultSelector) {\n            this._tryNotifyNext(outerValue, innerValue, outerIndex, innerIndex);\n        }\n        else {\n            this.destination.next(innerValue);\n        }\n    };\n    SwitchMapSubscriber.prototype._tryNotifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n        var result;\n        try {\n            result = this.resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return SwitchMapSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:disable:max-line-length */\n/**\n * Projects each source value to the same Observable which is flattened multiple\n * times with {@link switch} in the output Observable.\n *\n * <span class=\"informal\">It's like {@link switchMap}, but maps each value\n * always to the same inner Observable.</span>\n *\n * <img src=\"./img/switchMapTo.png\" width=\"100%\">\n *\n * Maps each source value to the given Observable `innerObservable` regardless\n * of the source value, and then flattens those resulting Observables into one\n * single Observable, which is the output Observable. The output Observables\n * emits values only from the most recently emitted instance of\n * `innerObservable`.\n *\n * @example <caption>Rerun an interval Observable on every click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.switchMapTo(Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link concatMapTo}\n * @see {@link switch}\n * @see {@link switchMap}\n * @see {@link mergeMapTo}\n *\n * @param {Observable} innerObservable An Observable to replace each value from\n * the source Observable.\n * @param {function(outerValue: T, innerValue: I, outerIndex: number, innerIndex: number): any} [resultSelector]\n * A function to produce the value on the output Observable based on the values\n * and the indices of the source (outer) emission and the inner Observable\n * emission. The arguments passed to this function are:\n * - `outerValue`: the value that came from the source\n * - `innerValue`: the value that came from the projected Observable\n * - `outerIndex`: the \"index\" of the value that came from the source\n * - `innerIndex`: the \"index\" of the value from the projected Observable\n * @return {Observable} An Observable that emits items from the given\n * `innerObservable` every time a value is emitted on the source Observable.\n * @return {Observable} An Observable that emits items from the given\n * `innerObservable` (and optionally transformed through `resultSelector`) every\n * time a value is emitted on the source Observable, and taking only the values\n * from the most recently projected inner Observable.\n * @method switchMapTo\n * @owner Observable\n */\nfunction switchMapTo(innerObservable, resultSelector) {\n    return this.lift(new SwitchMapToOperator(innerObservable, resultSelector));\n}\nexports.switchMapTo = switchMapTo;\nvar SwitchMapToOperator = (function () {\n    function SwitchMapToOperator(observable, resultSelector) {\n        this.observable = observable;\n        this.resultSelector = resultSelector;\n    }\n    SwitchMapToOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new SwitchMapToSubscriber(subscriber, this.observable, this.resultSelector));\n    };\n    return SwitchMapToOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar SwitchMapToSubscriber = (function (_super) {\n    __extends(SwitchMapToSubscriber, _super);\n    function SwitchMapToSubscriber(destination, inner, resultSelector) {\n        _super.call(this, destination);\n        this.inner = inner;\n        this.resultSelector = resultSelector;\n        this.index = 0;\n    }\n    SwitchMapToSubscriber.prototype._next = function (value) {\n        var innerSubscription = this.innerSubscription;\n        if (innerSubscription) {\n            innerSubscription.unsubscribe();\n        }\n        this.add(this.innerSubscription = subscribeToResult_1.subscribeToResult(this, this.inner, value, this.index++));\n    };\n    SwitchMapToSubscriber.prototype._complete = function () {\n        var innerSubscription = this.innerSubscription;\n        if (!innerSubscription || innerSubscription.closed) {\n            _super.prototype._complete.call(this);\n        }\n    };\n    SwitchMapToSubscriber.prototype._unsubscribe = function () {\n        this.innerSubscription = null;\n    };\n    SwitchMapToSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.remove(innerSub);\n        this.innerSubscription = null;\n        if (this.isStopped) {\n            _super.prototype._complete.call(this);\n        }\n    };\n    SwitchMapToSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        var _a = this, resultSelector = _a.resultSelector, destination = _a.destination;\n        if (resultSelector) {\n            this.tryResultSelector(outerValue, innerValue, outerIndex, innerIndex);\n        }\n        else {\n            destination.next(innerValue);\n        }\n    };\n    SwitchMapToSubscriber.prototype.tryResultSelector = function (outerValue, innerValue, outerIndex, innerIndex) {\n        var _a = this, resultSelector = _a.resultSelector, destination = _a.destination;\n        var result;\n        try {\n            result = resultSelector(outerValue, innerValue, outerIndex, innerIndex);\n        }\n        catch (err) {\n            destination.error(err);\n            return;\n        }\n        destination.next(result);\n    };\n    return SwitchMapToSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=switchMapTo.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar ArgumentOutOfRangeError_1 = require('../util/ArgumentOutOfRangeError');\nvar EmptyObservable_1 = require('../observable/EmptyObservable');\n/**\n * Emits only the first `count` values emitted by the source Observable.\n *\n * <span class=\"informal\">Takes the first `count` values from the source, then\n * completes.</span>\n *\n * <img src=\"./img/take.png\" width=\"100%\">\n *\n * `take` returns an Observable that emits only the first `count` values emitted\n * by the source Observable. If the source emits fewer than `count` values then\n * all of its values are emitted. After that, it completes, regardless if the\n * source completes.\n *\n * @example <caption>Take the first 5 seconds of an infinite 1-second interval Observable</caption>\n * var interval = Rx.Observable.interval(1000);\n * var five = interval.take(5);\n * five.subscribe(x => console.log(x));\n *\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `take(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of `next` values to emit.\n * @return {Observable<T>} An Observable that emits only the first `count`\n * values emitted by the source Observable, or all of the values from the source\n * if the source emits fewer than `count` values.\n * @method take\n * @owner Observable\n */\nfunction take(count) {\n    if (count === 0) {\n        return new EmptyObservable_1.EmptyObservable();\n    }\n    else {\n        return this.lift(new TakeOperator(count));\n    }\n}\nexports.take = take;\nvar TakeOperator = (function () {\n    function TakeOperator(total) {\n        this.total = total;\n        if (this.total < 0) {\n            throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;\n        }\n    }\n    TakeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TakeSubscriber(subscriber, this.total));\n    };\n    return TakeOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar TakeSubscriber = (function (_super) {\n    __extends(TakeSubscriber, _super);\n    function TakeSubscriber(destination, total) {\n        _super.call(this, destination);\n        this.total = total;\n        this.count = 0;\n    }\n    TakeSubscriber.prototype._next = function (value) {\n        var total = this.total;\n        var count = ++this.count;\n        if (count <= total) {\n            this.destination.next(value);\n            if (count === total) {\n                this.destination.complete();\n                this.unsubscribe();\n            }\n        }\n    };\n    return TakeSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=take.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar ArgumentOutOfRangeError_1 = require('../util/ArgumentOutOfRangeError');\nvar EmptyObservable_1 = require('../observable/EmptyObservable');\n/**\n * Emits only the last `count` values emitted by the source Observable.\n *\n * <span class=\"informal\">Remembers the latest `count` values, then emits those\n * only when the source completes.</span>\n *\n * <img src=\"./img/takeLast.png\" width=\"100%\">\n *\n * `takeLast` returns an Observable that emits at most the last `count` values\n * emitted by the source Observable. If the source emits fewer than `count`\n * values then all of its values are emitted. This operator must wait until the\n * `complete` notification emission from the source in order to emit the `next`\n * values on the output Observable, because otherwise it is impossible to know\n * whether or not more values will be emitted on the source. For this reason,\n * all values are emitted synchronously, followed by the complete notification.\n *\n * @example <caption>Take the last 3 values of an Observable with many values</caption>\n * var many = Rx.Observable.range(1, 100);\n * var lastThree = many.takeLast(3);\n * lastThree.subscribe(x => console.log(x));\n *\n * @see {@link take}\n * @see {@link takeUntil}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @throws {ArgumentOutOfRangeError} When using `takeLast(i)`, it delivers an\n * ArgumentOutOrRangeError to the Observer's `error` callback if `i < 0`.\n *\n * @param {number} count The maximum number of values to emit from the end of\n * the sequence of values emitted by the source Observable.\n * @return {Observable<T>} An Observable that emits at most the last count\n * values emitted by the source Observable.\n * @method takeLast\n * @owner Observable\n */\nfunction takeLast(count) {\n    if (count === 0) {\n        return new EmptyObservable_1.EmptyObservable();\n    }\n    else {\n        return this.lift(new TakeLastOperator(count));\n    }\n}\nexports.takeLast = takeLast;\nvar TakeLastOperator = (function () {\n    function TakeLastOperator(total) {\n        this.total = total;\n        if (this.total < 0) {\n            throw new ArgumentOutOfRangeError_1.ArgumentOutOfRangeError;\n        }\n    }\n    TakeLastOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n    };\n    return TakeLastOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar TakeLastSubscriber = (function (_super) {\n    __extends(TakeLastSubscriber, _super);\n    function TakeLastSubscriber(destination, total) {\n        _super.call(this, destination);\n        this.total = total;\n        this.ring = new Array();\n        this.count = 0;\n    }\n    TakeLastSubscriber.prototype._next = function (value) {\n        var ring = this.ring;\n        var total = this.total;\n        var count = this.count++;\n        if (ring.length < total) {\n            ring.push(value);\n        }\n        else {\n            var index = count % total;\n            ring[index] = value;\n        }\n    };\n    TakeLastSubscriber.prototype._complete = function () {\n        var destination = this.destination;\n        var count = this.count;\n        if (count > 0) {\n            var total = this.count >= this.total ? this.total : this.count;\n            var ring = this.ring;\n            for (var i = 0; i < total; i++) {\n                var idx = (count++) % total;\n                destination.next(ring[idx]);\n            }\n        }\n        destination.complete();\n    };\n    return TakeLastSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=takeLast.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Emits the values emitted by the source Observable until a `notifier`\n * Observable emits a value.\n *\n * <span class=\"informal\">Lets values pass until a second Observable,\n * `notifier`, emits something. Then, it completes.</span>\n *\n * <img src=\"./img/takeUntil.png\" width=\"100%\">\n *\n * `takeUntil` subscribes and begins mirroring the source Observable. It also\n * monitors a second Observable, `notifier` that you provide. If the `notifier`\n * emits a value or a complete notification, the output Observable stops\n * mirroring the source Observable and completes.\n *\n * @example <caption>Tick every second until the first click happens</caption>\n * var interval = Rx.Observable.interval(1000);\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = interval.takeUntil(clicks);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link take}\n * @see {@link takeLast}\n * @see {@link takeWhile}\n * @see {@link skip}\n *\n * @param {Observable} notifier The Observable whose first emitted value will\n * cause the output Observable of `takeUntil` to stop emitting values from the\n * source Observable.\n * @return {Observable<T>} An Observable that emits the values from the source\n * Observable until such time as `notifier` emits its first value.\n * @method takeUntil\n * @owner Observable\n */\nfunction takeUntil(notifier) {\n    return this.lift(new TakeUntilOperator(notifier));\n}\nexports.takeUntil = takeUntil;\nvar TakeUntilOperator = (function () {\n    function TakeUntilOperator(notifier) {\n        this.notifier = notifier;\n    }\n    TakeUntilOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TakeUntilSubscriber(subscriber, this.notifier));\n    };\n    return TakeUntilOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar TakeUntilSubscriber = (function (_super) {\n    __extends(TakeUntilSubscriber, _super);\n    function TakeUntilSubscriber(destination, notifier) {\n        _super.call(this, destination);\n        this.notifier = notifier;\n        this.add(subscribeToResult_1.subscribeToResult(this, notifier));\n    }\n    TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.complete();\n    };\n    TakeUntilSubscriber.prototype.notifyComplete = function () {\n        // noop\n    };\n    return TakeUntilSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=takeUntil.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Emits values emitted by the source Observable so long as each value satisfies\n * the given `predicate`, and then completes as soon as this `predicate` is not\n * satisfied.\n *\n * <span class=\"informal\">Takes values from the source only while they pass the\n * condition given. When the first value does not satisfy, it completes.</span>\n *\n * <img src=\"./img/takeWhile.png\" width=\"100%\">\n *\n * `takeWhile` subscribes and begins mirroring the source Observable. Each value\n * emitted on the source is given to the `predicate` function which returns a\n * boolean, representing a condition to be satisfied by the source values. The\n * output Observable emits the source values until such time as the `predicate`\n * returns false, at which point `takeWhile` stops mirroring the source\n * Observable and completes the output Observable.\n *\n * @example <caption>Emit click events only while the clientX property is greater than 200</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.takeWhile(ev => ev.clientX > 200);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link take}\n * @see {@link takeLast}\n * @see {@link takeUntil}\n * @see {@link skip}\n *\n * @param {function(value: T, index: number): boolean} predicate A function that\n * evaluates a value emitted by the source Observable and returns a boolean.\n * Also takes the (zero-based) index as the second argument.\n * @return {Observable<T>} An Observable that emits the values from the source\n * Observable so long as each value satisfies the condition defined by the\n * `predicate`, then completes.\n * @method takeWhile\n * @owner Observable\n */\nfunction takeWhile(predicate) {\n    return this.lift(new TakeWhileOperator(predicate));\n}\nexports.takeWhile = takeWhile;\nvar TakeWhileOperator = (function () {\n    function TakeWhileOperator(predicate) {\n        this.predicate = predicate;\n    }\n    TakeWhileOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate));\n    };\n    return TakeWhileOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar TakeWhileSubscriber = (function (_super) {\n    __extends(TakeWhileSubscriber, _super);\n    function TakeWhileSubscriber(destination, predicate) {\n        _super.call(this, destination);\n        this.predicate = predicate;\n        this.index = 0;\n    }\n    TakeWhileSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        var result;\n        try {\n            result = this.predicate(value, this.index++);\n        }\n        catch (err) {\n            destination.error(err);\n            return;\n        }\n        this.nextOrComplete(value, result);\n    };\n    TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n        var destination = this.destination;\n        if (Boolean(predicateResult)) {\n            destination.next(value);\n        }\n        else {\n            destination.complete();\n        }\n    };\n    return TakeWhileSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=takeWhile.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for a duration determined by another Observable, then repeats this\n * process.\n *\n * <span class=\"informal\">It's like {@link throttleTime}, but the silencing\n * duration is determined by a second Observable.</span>\n *\n * <img src=\"./img/throttle.png\" width=\"100%\">\n *\n * `throttle` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled by calling the `durationSelector` function with the source value,\n * which returns the \"duration\" Observable. When the duration Observable emits a\n * value or completes, the timer is disabled, and this process repeats for the\n * next source value.\n *\n * @example <caption>Emit clicks at a rate of at most one click per second</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.throttle(ev => Rx.Observable.interval(1000));\n * result.subscribe(x => console.log(x));\n *\n * @see {@link audit}\n * @see {@link debounce}\n * @see {@link delayWhen}\n * @see {@link sample}\n * @see {@link throttleTime}\n *\n * @param {function(value: T): Observable|Promise} durationSelector A function\n * that receives a value from the source Observable, for computing the silencing\n * duration for each source value, returned as an Observable or a Promise.\n * @return {Observable<T>} An Observable that performs the throttle operation to\n * limit the rate of emissions from the source.\n * @method throttle\n * @owner Observable\n */\nfunction throttle(durationSelector) {\n    return this.lift(new ThrottleOperator(durationSelector));\n}\nexports.throttle = throttle;\nvar ThrottleOperator = (function () {\n    function ThrottleOperator(durationSelector) {\n        this.durationSelector = durationSelector;\n    }\n    ThrottleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector));\n    };\n    return ThrottleOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ThrottleSubscriber = (function (_super) {\n    __extends(ThrottleSubscriber, _super);\n    function ThrottleSubscriber(destination, durationSelector) {\n        _super.call(this, destination);\n        this.destination = destination;\n        this.durationSelector = durationSelector;\n    }\n    ThrottleSubscriber.prototype._next = function (value) {\n        if (!this.throttled) {\n            this.tryDurationSelector(value);\n        }\n    };\n    ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n        var duration = null;\n        try {\n            duration = this.durationSelector(value);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.emitAndThrottle(value, duration);\n    };\n    ThrottleSubscriber.prototype.emitAndThrottle = function (value, duration) {\n        this.add(this.throttled = subscribeToResult_1.subscribeToResult(this, duration));\n        this.destination.next(value);\n    };\n    ThrottleSubscriber.prototype._unsubscribe = function () {\n        var throttled = this.throttled;\n        if (throttled) {\n            this.remove(throttled);\n            this.throttled = null;\n            throttled.unsubscribe();\n        }\n    };\n    ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this._unsubscribe();\n    };\n    ThrottleSubscriber.prototype.notifyComplete = function () {\n        this._unsubscribe();\n    };\n    return ThrottleSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=throttle.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar async_1 = require('../scheduler/async');\n/**\n * Emits a value from the source Observable, then ignores subsequent source\n * values for `duration` milliseconds, then repeats this process.\n *\n * <span class=\"informal\">Lets a value pass, then ignores source values for the\n * next `duration` milliseconds.</span>\n *\n * <img src=\"./img/throttleTime.png\" width=\"100%\">\n *\n * `throttleTime` emits the source Observable values on the output Observable\n * when its internal timer is disabled, and ignores source values when the timer\n * is enabled. Initially, the timer is disabled. As soon as the first source\n * value arrives, it is forwarded to the output Observable, and then the timer\n * is enabled. After `duration` milliseconds (or the time unit determined\n * internally by the optional `scheduler`) has passed, the timer is disabled,\n * and this process repeats for the next source value. Optionally takes a\n * {@link Scheduler} for managing timers.\n *\n * @example <caption>Emit clicks at a rate of at most one click per second</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.throttleTime(1000);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link auditTime}\n * @see {@link debounceTime}\n * @see {@link delay}\n * @see {@link sampleTime}\n * @see {@link throttle}\n *\n * @param {number} duration Time to wait before emitting another value after\n * emitting the last value, measured in milliseconds or the time unit determined\n * internally by the optional `scheduler`.\n * @param {Scheduler} [scheduler=async] The {@link Scheduler} to use for\n * managing the timers that handle the sampling.\n * @return {Observable<T>} An Observable that performs the throttle operation to\n * limit the rate of emissions from the source.\n * @method throttleTime\n * @owner Observable\n */\nfunction throttleTime(duration, scheduler) {\n    if (scheduler === void 0) { scheduler = async_1.async; }\n    return this.lift(new ThrottleTimeOperator(duration, scheduler));\n}\nexports.throttleTime = throttleTime;\nvar ThrottleTimeOperator = (function () {\n    function ThrottleTimeOperator(duration, scheduler) {\n        this.duration = duration;\n        this.scheduler = scheduler;\n    }\n    ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler));\n    };\n    return ThrottleTimeOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ThrottleTimeSubscriber = (function (_super) {\n    __extends(ThrottleTimeSubscriber, _super);\n    function ThrottleTimeSubscriber(destination, duration, scheduler) {\n        _super.call(this, destination);\n        this.duration = duration;\n        this.scheduler = scheduler;\n    }\n    ThrottleTimeSubscriber.prototype._next = function (value) {\n        if (!this.throttled) {\n            this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n            this.destination.next(value);\n        }\n    };\n    ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n        var throttled = this.throttled;\n        if (throttled) {\n            throttled.unsubscribe();\n            this.remove(throttled);\n            this.throttled = null;\n        }\n    };\n    return ThrottleTimeSubscriber;\n}(Subscriber_1.Subscriber));\nfunction dispatchNext(arg) {\n    var subscriber = arg.subscriber;\n    subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar async_1 = require('../scheduler/async');\n/**\n * @param scheduler\n * @return {Observable<TimeInterval<any>>|WebSocketSubject<T>|Observable<T>}\n * @method timeInterval\n * @owner Observable\n */\nfunction timeInterval(scheduler) {\n    if (scheduler === void 0) { scheduler = async_1.async; }\n    return this.lift(new TimeIntervalOperator(scheduler));\n}\nexports.timeInterval = timeInterval;\nvar TimeInterval = (function () {\n    function TimeInterval(value, interval) {\n        this.value = value;\n        this.interval = interval;\n    }\n    return TimeInterval;\n}());\nexports.TimeInterval = TimeInterval;\n;\nvar TimeIntervalOperator = (function () {\n    function TimeIntervalOperator(scheduler) {\n        this.scheduler = scheduler;\n    }\n    TimeIntervalOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new TimeIntervalSubscriber(observer, this.scheduler));\n    };\n    return TimeIntervalOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar TimeIntervalSubscriber = (function (_super) {\n    __extends(TimeIntervalSubscriber, _super);\n    function TimeIntervalSubscriber(destination, scheduler) {\n        _super.call(this, destination);\n        this.scheduler = scheduler;\n        this.lastTime = 0;\n        this.lastTime = scheduler.now();\n    }\n    TimeIntervalSubscriber.prototype._next = function (value) {\n        var now = this.scheduler.now();\n        var span = now - this.lastTime;\n        this.lastTime = now;\n        this.destination.next(new TimeInterval(value, span));\n    };\n    return TimeIntervalSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=timeInterval.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar async_1 = require('../scheduler/async');\nvar isDate_1 = require('../util/isDate');\nvar Subscriber_1 = require('../Subscriber');\nvar TimeoutError_1 = require('../util/TimeoutError');\n/**\n * @param {number} due\n * @param {Scheduler} [scheduler]\n * @return {Observable<R>|WebSocketSubject<T>|Observable<T>}\n * @method timeout\n * @owner Observable\n */\nfunction timeout(due, scheduler) {\n    if (scheduler === void 0) { scheduler = async_1.async; }\n    var absoluteTimeout = isDate_1.isDate(due);\n    var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n    return this.lift(new TimeoutOperator(waitFor, absoluteTimeout, scheduler, new TimeoutError_1.TimeoutError()));\n}\nexports.timeout = timeout;\nvar TimeoutOperator = (function () {\n    function TimeoutOperator(waitFor, absoluteTimeout, scheduler, errorInstance) {\n        this.waitFor = waitFor;\n        this.absoluteTimeout = absoluteTimeout;\n        this.scheduler = scheduler;\n        this.errorInstance = errorInstance;\n    }\n    TimeoutOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TimeoutSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.scheduler, this.errorInstance));\n    };\n    return TimeoutOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar TimeoutSubscriber = (function (_super) {\n    __extends(TimeoutSubscriber, _super);\n    function TimeoutSubscriber(destination, absoluteTimeout, waitFor, scheduler, errorInstance) {\n        _super.call(this, destination);\n        this.absoluteTimeout = absoluteTimeout;\n        this.waitFor = waitFor;\n        this.scheduler = scheduler;\n        this.errorInstance = errorInstance;\n        this.index = 0;\n        this._previousIndex = 0;\n        this._hasCompleted = false;\n        this.scheduleTimeout();\n    }\n    Object.defineProperty(TimeoutSubscriber.prototype, \"previousIndex\", {\n        get: function () {\n            return this._previousIndex;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(TimeoutSubscriber.prototype, \"hasCompleted\", {\n        get: function () {\n            return this._hasCompleted;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    TimeoutSubscriber.dispatchTimeout = function (state) {\n        var source = state.subscriber;\n        var currentIndex = state.index;\n        if (!source.hasCompleted && source.previousIndex === currentIndex) {\n            source.notifyTimeout();\n        }\n    };\n    TimeoutSubscriber.prototype.scheduleTimeout = function () {\n        var currentIndex = this.index;\n        this.scheduler.schedule(TimeoutSubscriber.dispatchTimeout, this.waitFor, { subscriber: this, index: currentIndex });\n        this.index++;\n        this._previousIndex = currentIndex;\n    };\n    TimeoutSubscriber.prototype._next = function (value) {\n        this.destination.next(value);\n        if (!this.absoluteTimeout) {\n            this.scheduleTimeout();\n        }\n    };\n    TimeoutSubscriber.prototype._error = function (err) {\n        this.destination.error(err);\n        this._hasCompleted = true;\n    };\n    TimeoutSubscriber.prototype._complete = function () {\n        this.destination.complete();\n        this._hasCompleted = true;\n    };\n    TimeoutSubscriber.prototype.notifyTimeout = function () {\n        this.error(this.errorInstance);\n    };\n    return TimeoutSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=timeout.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar async_1 = require('../scheduler/async');\nvar isDate_1 = require('../util/isDate');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:disable:max-line-length */\n/**\n * @param due\n * @param withObservable\n * @param scheduler\n * @return {Observable<R>|WebSocketSubject<T>|Observable<T>}\n * @method timeoutWith\n * @owner Observable\n */\nfunction timeoutWith(due, withObservable, scheduler) {\n    if (scheduler === void 0) { scheduler = async_1.async; }\n    var absoluteTimeout = isDate_1.isDate(due);\n    var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n    return this.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n}\nexports.timeoutWith = timeoutWith;\nvar TimeoutWithOperator = (function () {\n    function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n        this.waitFor = waitFor;\n        this.absoluteTimeout = absoluteTimeout;\n        this.withObservable = withObservable;\n        this.scheduler = scheduler;\n    }\n    TimeoutWithOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n    };\n    return TimeoutWithOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar TimeoutWithSubscriber = (function (_super) {\n    __extends(TimeoutWithSubscriber, _super);\n    function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n        _super.call(this);\n        this.destination = destination;\n        this.absoluteTimeout = absoluteTimeout;\n        this.waitFor = waitFor;\n        this.withObservable = withObservable;\n        this.scheduler = scheduler;\n        this.timeoutSubscription = undefined;\n        this.index = 0;\n        this._previousIndex = 0;\n        this._hasCompleted = false;\n        destination.add(this);\n        this.scheduleTimeout();\n    }\n    Object.defineProperty(TimeoutWithSubscriber.prototype, \"previousIndex\", {\n        get: function () {\n            return this._previousIndex;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    Object.defineProperty(TimeoutWithSubscriber.prototype, \"hasCompleted\", {\n        get: function () {\n            return this._hasCompleted;\n        },\n        enumerable: true,\n        configurable: true\n    });\n    TimeoutWithSubscriber.dispatchTimeout = function (state) {\n        var source = state.subscriber;\n        var currentIndex = state.index;\n        if (!source.hasCompleted && source.previousIndex === currentIndex) {\n            source.handleTimeout();\n        }\n    };\n    TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n        var currentIndex = this.index;\n        var timeoutState = { subscriber: this, index: currentIndex };\n        this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, timeoutState);\n        this.index++;\n        this._previousIndex = currentIndex;\n    };\n    TimeoutWithSubscriber.prototype._next = function (value) {\n        this.destination.next(value);\n        if (!this.absoluteTimeout) {\n            this.scheduleTimeout();\n        }\n    };\n    TimeoutWithSubscriber.prototype._error = function (err) {\n        this.destination.error(err);\n        this._hasCompleted = true;\n    };\n    TimeoutWithSubscriber.prototype._complete = function () {\n        this.destination.complete();\n        this._hasCompleted = true;\n    };\n    TimeoutWithSubscriber.prototype.handleTimeout = function () {\n        if (!this.closed) {\n            var withObservable = this.withObservable;\n            this.unsubscribe();\n            this.destination.add(this.timeoutSubscription = subscribeToResult_1.subscribeToResult(this, withObservable));\n        }\n    };\n    return TimeoutWithSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=timeoutWith.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar async_1 = require('../scheduler/async');\n/**\n * @param scheduler\n * @return {Observable<Timestamp<any>>|WebSocketSubject<T>|Observable<T>}\n * @method timestamp\n * @owner Observable\n */\nfunction timestamp(scheduler) {\n    if (scheduler === void 0) { scheduler = async_1.async; }\n    return this.lift(new TimestampOperator(scheduler));\n}\nexports.timestamp = timestamp;\nvar Timestamp = (function () {\n    function Timestamp(value, timestamp) {\n        this.value = value;\n        this.timestamp = timestamp;\n    }\n    return Timestamp;\n}());\nexports.Timestamp = Timestamp;\n;\nvar TimestampOperator = (function () {\n    function TimestampOperator(scheduler) {\n        this.scheduler = scheduler;\n    }\n    TimestampOperator.prototype.call = function (observer, source) {\n        return source.subscribe(new TimestampSubscriber(observer, this.scheduler));\n    };\n    return TimestampOperator;\n}());\nvar TimestampSubscriber = (function (_super) {\n    __extends(TimestampSubscriber, _super);\n    function TimestampSubscriber(destination, scheduler) {\n        _super.call(this, destination);\n        this.scheduler = scheduler;\n    }\n    TimestampSubscriber.prototype._next = function (value) {\n        var now = this.scheduler.now();\n        this.destination.next(new Timestamp(value, now));\n    };\n    return TimestampSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=timestamp.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\n/**\n * @return {Observable<any[]>|WebSocketSubject<T>|Observable<T>}\n * @method toArray\n * @owner Observable\n */\nfunction toArray() {\n    return this.lift(new ToArrayOperator());\n}\nexports.toArray = toArray;\nvar ToArrayOperator = (function () {\n    function ToArrayOperator() {\n    }\n    ToArrayOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ToArraySubscriber(subscriber));\n    };\n    return ToArrayOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ToArraySubscriber = (function (_super) {\n    __extends(ToArraySubscriber, _super);\n    function ToArraySubscriber(destination) {\n        _super.call(this, destination);\n        this.array = [];\n    }\n    ToArraySubscriber.prototype._next = function (x) {\n        this.array.push(x);\n    };\n    ToArraySubscriber.prototype._complete = function () {\n        this.destination.next(this.array);\n        this.destination.complete();\n    };\n    return ToArraySubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=toArray.js.map",
    "\"use strict\";\nvar root_1 = require('../util/root');\n/* tslint:disable:max-line-length */\n/**\n * @param PromiseCtor\n * @return {Promise<T>}\n * @method toPromise\n * @owner Observable\n */\nfunction toPromise(PromiseCtor) {\n    var _this = this;\n    if (!PromiseCtor) {\n        if (root_1.root.Rx && root_1.root.Rx.config && root_1.root.Rx.config.Promise) {\n            PromiseCtor = root_1.root.Rx.config.Promise;\n        }\n        else if (root_1.root.Promise) {\n            PromiseCtor = root_1.root.Promise;\n        }\n    }\n    if (!PromiseCtor) {\n        throw new Error('no Promise impl found');\n    }\n    return new PromiseCtor(function (resolve, reject) {\n        var value;\n        _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n    });\n}\nexports.toPromise = toPromise;\n//# sourceMappingURL=toPromise.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('../Subject');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Branch out the source Observable values as a nested Observable whenever\n * `windowBoundaries` emits.\n *\n * <span class=\"informal\">It's like {@link buffer}, but emits a nested Observable\n * instead of an array.</span>\n *\n * <img src=\"./img/window.png\" width=\"100%\">\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping\n * windows. It emits the current window and opens a new one whenever the\n * Observable `windowBoundaries` emits an item. Because each window is an\n * Observable, the output is a higher-order Observable.\n *\n * @example <caption>In every window of 1 second each, emit at most 2 click events</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var interval = Rx.Observable.interval(1000);\n * var result = clicks.window(interval)\n *   .map(win => win.take(2)) // each window has at most 2 emissions\n *   .mergeAll(); // flatten the Observable-of-Observables\n * result.subscribe(x => console.log(x));\n *\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link buffer}\n *\n * @param {Observable<any>} windowBoundaries An Observable that completes the\n * previous window and starts a new window.\n * @return {Observable<Observable<T>>} An Observable of windows, which are\n * Observables emitting values of the source Observable.\n * @method window\n * @owner Observable\n */\nfunction window(windowBoundaries) {\n    return this.lift(new WindowOperator(windowBoundaries));\n}\nexports.window = window;\nvar WindowOperator = (function () {\n    function WindowOperator(windowBoundaries) {\n        this.windowBoundaries = windowBoundaries;\n    }\n    WindowOperator.prototype.call = function (subscriber, source) {\n        var windowSubscriber = new WindowSubscriber(subscriber);\n        var sourceSubscription = source.subscribe(windowSubscriber);\n        if (!sourceSubscription.closed) {\n            windowSubscriber.add(subscribeToResult_1.subscribeToResult(windowSubscriber, this.windowBoundaries));\n        }\n        return sourceSubscription;\n    };\n    return WindowOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar WindowSubscriber = (function (_super) {\n    __extends(WindowSubscriber, _super);\n    function WindowSubscriber(destination) {\n        _super.call(this, destination);\n        this.window = new Subject_1.Subject();\n        destination.next(this.window);\n    }\n    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openWindow();\n    };\n    WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n        this._complete();\n    };\n    WindowSubscriber.prototype._next = function (value) {\n        this.window.next(value);\n    };\n    WindowSubscriber.prototype._error = function (err) {\n        this.window.error(err);\n        this.destination.error(err);\n    };\n    WindowSubscriber.prototype._complete = function () {\n        this.window.complete();\n        this.destination.complete();\n    };\n    WindowSubscriber.prototype._unsubscribe = function () {\n        this.window = null;\n    };\n    WindowSubscriber.prototype.openWindow = function () {\n        var prevWindow = this.window;\n        if (prevWindow) {\n            prevWindow.complete();\n        }\n        var destination = this.destination;\n        var newWindow = this.window = new Subject_1.Subject();\n        destination.next(newWindow);\n    };\n    return WindowSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=window.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscriber_1 = require('../Subscriber');\nvar Subject_1 = require('../Subject');\n/**\n * Branch out the source Observable values as a nested Observable with each\n * nested Observable emitting at most `windowSize` values.\n *\n * <span class=\"informal\">It's like {@link bufferCount}, but emits a nested\n * Observable instead of an array.</span>\n *\n * <img src=\"./img/windowCount.png\" width=\"100%\">\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits windows every `startWindowEvery`\n * items, each containing no more than `windowSize` items. When the source\n * Observable completes or encounters an error, the output Observable emits\n * the current window and propagates the notification from the source\n * Observable. If `startWindowEvery` is not provided, then new windows are\n * started immediately at the start of the source and when each window completes\n * with size `windowSize`.\n *\n * @example <caption>Ignore every 3rd click event, starting from the first one</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.windowCount(3)\n *   .map(win => win.skip(1)) // skip first of every 3 clicks\n *   .mergeAll(); // flatten the Observable-of-Observables\n * result.subscribe(x => console.log(x));\n *\n * @example <caption>Ignore every 3rd click event, starting from the third one</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.windowCount(2, 3)\n *   .mergeAll(); // flatten the Observable-of-Observables\n * result.subscribe(x => console.log(x));\n *\n * @see {@link window}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link bufferCount}\n *\n * @param {number} windowSize The maximum number of values emitted by each\n * window.\n * @param {number} [startWindowEvery] Interval at which to start a new window.\n * For example if `startWindowEvery` is `2`, then a new window will be started\n * on every other value from the source. A new window is started at the\n * beginning of the source by default.\n * @return {Observable<Observable<T>>} An Observable of windows, which in turn\n * are Observable of values.\n * @method windowCount\n * @owner Observable\n */\nfunction windowCount(windowSize, startWindowEvery) {\n    if (startWindowEvery === void 0) { startWindowEvery = 0; }\n    return this.lift(new WindowCountOperator(windowSize, startWindowEvery));\n}\nexports.windowCount = windowCount;\nvar WindowCountOperator = (function () {\n    function WindowCountOperator(windowSize, startWindowEvery) {\n        this.windowSize = windowSize;\n        this.startWindowEvery = startWindowEvery;\n    }\n    WindowCountOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n    };\n    return WindowCountOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar WindowCountSubscriber = (function (_super) {\n    __extends(WindowCountSubscriber, _super);\n    function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n        _super.call(this, destination);\n        this.destination = destination;\n        this.windowSize = windowSize;\n        this.startWindowEvery = startWindowEvery;\n        this.windows = [new Subject_1.Subject()];\n        this.count = 0;\n        destination.next(this.windows[0]);\n    }\n    WindowCountSubscriber.prototype._next = function (value) {\n        var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n        var destination = this.destination;\n        var windowSize = this.windowSize;\n        var windows = this.windows;\n        var len = windows.length;\n        for (var i = 0; i < len && !this.closed; i++) {\n            windows[i].next(value);\n        }\n        var c = this.count - windowSize + 1;\n        if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n            windows.shift().complete();\n        }\n        if (++this.count % startWindowEvery === 0 && !this.closed) {\n            var window_1 = new Subject_1.Subject();\n            windows.push(window_1);\n            destination.next(window_1);\n        }\n    };\n    WindowCountSubscriber.prototype._error = function (err) {\n        var windows = this.windows;\n        if (windows) {\n            while (windows.length > 0 && !this.closed) {\n                windows.shift().error(err);\n            }\n        }\n        this.destination.error(err);\n    };\n    WindowCountSubscriber.prototype._complete = function () {\n        var windows = this.windows;\n        if (windows) {\n            while (windows.length > 0 && !this.closed) {\n                windows.shift().complete();\n            }\n        }\n        this.destination.complete();\n    };\n    WindowCountSubscriber.prototype._unsubscribe = function () {\n        this.count = 0;\n        this.windows = null;\n    };\n    return WindowCountSubscriber;\n}(Subscriber_1.Subscriber));\n//# sourceMappingURL=windowCount.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('../Subject');\nvar async_1 = require('../scheduler/async');\nvar Subscriber_1 = require('../Subscriber');\n/**\n * Branch out the source Observable values as a nested Observable periodically\n * in time.\n *\n * <span class=\"informal\">It's like {@link bufferTime}, but emits a nested\n * Observable instead of an array.</span>\n *\n * <img src=\"./img/windowTime.png\" width=\"100%\">\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable starts a new window periodically, as\n * determined by the `windowCreationInterval` argument. It emits each window\n * after a fixed timespan, specified by the `windowTimeSpan` argument. When the\n * source Observable completes or encounters an error, the output Observable\n * emits the current window and propagates the notification from the source\n * Observable. If `windowCreationInterval` is not provided, the output\n * Observable starts a new window when the previous window of duration\n * `windowTimeSpan` completes.\n *\n * @example <caption>In every window of 1 second each, emit at most 2 click events</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.windowTime(1000)\n *   .map(win => win.take(2)) // each window has at most 2 emissions\n *   .mergeAll(); // flatten the Observable-of-Observables\n * result.subscribe(x => console.log(x));\n *\n * @example <caption>Every 5 seconds start a window 1 second long, and emit at most 2 click events per window</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks.windowTime(1000, 5000)\n *   .map(win => win.take(2)) // each window has at most 2 emissions\n *   .mergeAll(); // flatten the Observable-of-Observables\n * result.subscribe(x => console.log(x));\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowToggle}\n * @see {@link windowWhen}\n * @see {@link bufferTime}\n *\n * @param {number} windowTimeSpan The amount of time to fill each window.\n * @param {number} [windowCreationInterval] The interval at which to start new\n * windows.\n * @param {Scheduler} [scheduler=async] The scheduler on which to schedule the\n * intervals that determine window boundaries.\n * @return {Observable<Observable<T>>} An observable of windows, which in turn\n * are Observables.\n * @method windowTime\n * @owner Observable\n */\nfunction windowTime(windowTimeSpan, windowCreationInterval, scheduler) {\n    if (windowCreationInterval === void 0) { windowCreationInterval = null; }\n    if (scheduler === void 0) { scheduler = async_1.async; }\n    return this.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, scheduler));\n}\nexports.windowTime = windowTime;\nvar WindowTimeOperator = (function () {\n    function WindowTimeOperator(windowTimeSpan, windowCreationInterval, scheduler) {\n        this.windowTimeSpan = windowTimeSpan;\n        this.windowCreationInterval = windowCreationInterval;\n        this.scheduler = scheduler;\n    }\n    WindowTimeOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.scheduler));\n    };\n    return WindowTimeOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar WindowTimeSubscriber = (function (_super) {\n    __extends(WindowTimeSubscriber, _super);\n    function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, scheduler) {\n        _super.call(this, destination);\n        this.destination = destination;\n        this.windowTimeSpan = windowTimeSpan;\n        this.windowCreationInterval = windowCreationInterval;\n        this.scheduler = scheduler;\n        this.windows = [];\n        if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n            var window_1 = this.openWindow();\n            var closeState = { subscriber: this, window: window_1, context: null };\n            var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: this, scheduler: scheduler };\n            this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n            this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n        }\n        else {\n            var window_2 = this.openWindow();\n            var timeSpanOnlyState = { subscriber: this, window: window_2, windowTimeSpan: windowTimeSpan };\n            this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n        }\n    }\n    WindowTimeSubscriber.prototype._next = function (value) {\n        var windows = this.windows;\n        var len = windows.length;\n        for (var i = 0; i < len; i++) {\n            var window_3 = windows[i];\n            if (!window_3.closed) {\n                window_3.next(value);\n            }\n        }\n    };\n    WindowTimeSubscriber.prototype._error = function (err) {\n        var windows = this.windows;\n        while (windows.length > 0) {\n            windows.shift().error(err);\n        }\n        this.destination.error(err);\n    };\n    WindowTimeSubscriber.prototype._complete = function () {\n        var windows = this.windows;\n        while (windows.length > 0) {\n            var window_4 = windows.shift();\n            if (!window_4.closed) {\n                window_4.complete();\n            }\n        }\n        this.destination.complete();\n    };\n    WindowTimeSubscriber.prototype.openWindow = function () {\n        var window = new Subject_1.Subject();\n        this.windows.push(window);\n        var destination = this.destination;\n        destination.next(window);\n        return window;\n    };\n    WindowTimeSubscriber.prototype.closeWindow = function (window) {\n        window.complete();\n        var windows = this.windows;\n        windows.splice(windows.indexOf(window), 1);\n    };\n    return WindowTimeSubscriber;\n}(Subscriber_1.Subscriber));\nfunction dispatchWindowTimeSpanOnly(state) {\n    var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n    if (window) {\n        window.complete();\n    }\n    state.window = subscriber.openWindow();\n    this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n    var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n    var window = subscriber.openWindow();\n    var action = this;\n    var context = { action: action, subscription: null };\n    var timeSpanState = { subscriber: subscriber, window: window, context: context };\n    context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n    action.add(context.subscription);\n    action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(arg) {\n    var subscriber = arg.subscriber, window = arg.window, context = arg.context;\n    if (context && context.action && context.subscription) {\n        context.action.remove(context.subscription);\n    }\n    subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('../Subject');\nvar Subscription_1 = require('../Subscription');\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Branch out the source Observable values as a nested Observable starting from\n * an emission from `openings` and ending when the output of `closingSelector`\n * emits.\n *\n * <span class=\"informal\">It's like {@link bufferToggle}, but emits a nested\n * Observable instead of an array.</span>\n *\n * <img src=\"./img/windowToggle.png\" width=\"100%\">\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits windows that contain those items\n * emitted by the source Observable between the time when the `openings`\n * Observable emits an item and when the Observable returned by\n * `closingSelector` emits an item.\n *\n * @example <caption>Every other second, emit the click events from the next 500ms</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var openings = Rx.Observable.interval(1000);\n * var result = clicks.windowToggle(openings, i =>\n *   i % 2 ? Rx.Observable.interval(500) : Rx.Observable.empty()\n * ).mergeAll();\n * result.subscribe(x => console.log(x));\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowWhen}\n * @see {@link bufferToggle}\n *\n * @param {Observable<O>} openings An observable of notifications to start new\n * windows.\n * @param {function(value: O): Observable} closingSelector A function that takes\n * the value emitted by the `openings` observable and returns an Observable,\n * which, when it emits (either `next` or `complete`), signals that the\n * associated window should complete.\n * @return {Observable<Observable<T>>} An observable of windows, which in turn\n * are Observables.\n * @method windowToggle\n * @owner Observable\n */\nfunction windowToggle(openings, closingSelector) {\n    return this.lift(new WindowToggleOperator(openings, closingSelector));\n}\nexports.windowToggle = windowToggle;\nvar WindowToggleOperator = (function () {\n    function WindowToggleOperator(openings, closingSelector) {\n        this.openings = openings;\n        this.closingSelector = closingSelector;\n    }\n    WindowToggleOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n    };\n    return WindowToggleOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar WindowToggleSubscriber = (function (_super) {\n    __extends(WindowToggleSubscriber, _super);\n    function WindowToggleSubscriber(destination, openings, closingSelector) {\n        _super.call(this, destination);\n        this.openings = openings;\n        this.closingSelector = closingSelector;\n        this.contexts = [];\n        this.add(this.openSubscription = subscribeToResult_1.subscribeToResult(this, openings, openings));\n    }\n    WindowToggleSubscriber.prototype._next = function (value) {\n        var contexts = this.contexts;\n        if (contexts) {\n            var len = contexts.length;\n            for (var i = 0; i < len; i++) {\n                contexts[i].window.next(value);\n            }\n        }\n    };\n    WindowToggleSubscriber.prototype._error = function (err) {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context = contexts[index];\n                context.window.error(err);\n                context.subscription.unsubscribe();\n            }\n        }\n        _super.prototype._error.call(this, err);\n    };\n    WindowToggleSubscriber.prototype._complete = function () {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context = contexts[index];\n                context.window.complete();\n                context.subscription.unsubscribe();\n            }\n        }\n        _super.prototype._complete.call(this);\n    };\n    WindowToggleSubscriber.prototype._unsubscribe = function () {\n        var contexts = this.contexts;\n        this.contexts = null;\n        if (contexts) {\n            var len = contexts.length;\n            var index = -1;\n            while (++index < len) {\n                var context = contexts[index];\n                context.window.unsubscribe();\n                context.subscription.unsubscribe();\n            }\n        }\n    };\n    WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        if (outerValue === this.openings) {\n            var closingSelector = this.closingSelector;\n            var closingNotifier = tryCatch_1.tryCatch(closingSelector)(innerValue);\n            if (closingNotifier === errorObject_1.errorObject) {\n                return this.error(errorObject_1.errorObject.e);\n            }\n            else {\n                var window_1 = new Subject_1.Subject();\n                var subscription = new Subscription_1.Subscription();\n                var context = { window: window_1, subscription: subscription };\n                this.contexts.push(context);\n                var innerSubscription = subscribeToResult_1.subscribeToResult(this, closingNotifier, context);\n                if (innerSubscription.closed) {\n                    this.closeWindow(this.contexts.length - 1);\n                }\n                else {\n                    innerSubscription.context = context;\n                    subscription.add(innerSubscription);\n                }\n                this.destination.next(window_1);\n            }\n        }\n        else {\n            this.closeWindow(this.contexts.indexOf(outerValue));\n        }\n    };\n    WindowToggleSubscriber.prototype.notifyError = function (err) {\n        this.error(err);\n    };\n    WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n        if (inner !== this.openSubscription) {\n            this.closeWindow(this.contexts.indexOf(inner.context));\n        }\n    };\n    WindowToggleSubscriber.prototype.closeWindow = function (index) {\n        if (index === -1) {\n            return;\n        }\n        var contexts = this.contexts;\n        var context = contexts[index];\n        var window = context.window, subscription = context.subscription;\n        contexts.splice(index, 1);\n        window.complete();\n        subscription.unsubscribe();\n    };\n    return WindowToggleSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=windowToggle.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('../Subject');\nvar tryCatch_1 = require('../util/tryCatch');\nvar errorObject_1 = require('../util/errorObject');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/**\n * Branch out the source Observable values as a nested Observable using a\n * factory function of closing Observables to determine when to start a new\n * window.\n *\n * <span class=\"informal\">It's like {@link bufferWhen}, but emits a nested\n * Observable instead of an array.</span>\n *\n * <img src=\"./img/windowWhen.png\" width=\"100%\">\n *\n * Returns an Observable that emits windows of items it collects from the source\n * Observable. The output Observable emits connected, non-overlapping windows.\n * It emits the current window and opens a new one whenever the Observable\n * produced by the specified `closingSelector` function emits an item. The first\n * window is opened immediately when subscribing to the output Observable.\n *\n * @example <caption>Emit only the first two clicks events in every window of [1-5] random seconds</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var result = clicks\n *   .windowWhen(() => Rx.Observable.interval(1000 + Math.random() * 4000))\n *   .map(win => win.take(2)) // each window has at most 2 emissions\n *   .mergeAll(); // flatten the Observable-of-Observables\n * result.subscribe(x => console.log(x));\n *\n * @see {@link window}\n * @see {@link windowCount}\n * @see {@link windowTime}\n * @see {@link windowToggle}\n * @see {@link bufferWhen}\n *\n * @param {function(): Observable} closingSelector A function that takes no\n * arguments and returns an Observable that signals (on either `next` or\n * `complete`) when to close the previous window and start a new one.\n * @return {Observable<Observable<T>>} An observable of windows, which in turn\n * are Observables.\n * @method windowWhen\n * @owner Observable\n */\nfunction windowWhen(closingSelector) {\n    return this.lift(new WindowOperator(closingSelector));\n}\nexports.windowWhen = windowWhen;\nvar WindowOperator = (function () {\n    function WindowOperator(closingSelector) {\n        this.closingSelector = closingSelector;\n    }\n    WindowOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n    };\n    return WindowOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar WindowSubscriber = (function (_super) {\n    __extends(WindowSubscriber, _super);\n    function WindowSubscriber(destination, closingSelector) {\n        _super.call(this, destination);\n        this.destination = destination;\n        this.closingSelector = closingSelector;\n        this.openWindow();\n    }\n    WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.openWindow(innerSub);\n    };\n    WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n        this._error(error);\n    };\n    WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n        this.openWindow(innerSub);\n    };\n    WindowSubscriber.prototype._next = function (value) {\n        this.window.next(value);\n    };\n    WindowSubscriber.prototype._error = function (err) {\n        this.window.error(err);\n        this.destination.error(err);\n        this.unsubscribeClosingNotification();\n    };\n    WindowSubscriber.prototype._complete = function () {\n        this.window.complete();\n        this.destination.complete();\n        this.unsubscribeClosingNotification();\n    };\n    WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n        if (this.closingNotification) {\n            this.closingNotification.unsubscribe();\n        }\n    };\n    WindowSubscriber.prototype.openWindow = function (innerSub) {\n        if (innerSub === void 0) { innerSub = null; }\n        if (innerSub) {\n            this.remove(innerSub);\n            innerSub.unsubscribe();\n        }\n        var prevWindow = this.window;\n        if (prevWindow) {\n            prevWindow.complete();\n        }\n        var window = this.window = new Subject_1.Subject();\n        this.destination.next(window);\n        var closingNotifier = tryCatch_1.tryCatch(this.closingSelector)();\n        if (closingNotifier === errorObject_1.errorObject) {\n            var err = errorObject_1.errorObject.e;\n            this.destination.error(err);\n            this.window.error(err);\n        }\n        else {\n            this.add(this.closingNotification = subscribeToResult_1.subscribeToResult(this, closingNotifier));\n        }\n    };\n    return WindowSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=windowWhen.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\n/* tslint:disable:max-line-length */\n/**\n * Combines the source Observable with other Observables to create an Observable\n * whose values are calculated from the latest values of each, only when the\n * source emits.\n *\n * <span class=\"informal\">Whenever the source Observable emits a value, it\n * computes a formula using that value plus the latest values from other input\n * Observables, then emits the output of that formula.</span>\n *\n * <img src=\"./img/withLatestFrom.png\" width=\"100%\">\n *\n * `withLatestFrom` combines each value from the source Observable (the\n * instance) with the latest values from the other input Observables only when\n * the source emits a value, optionally using a `project` function to determine\n * the value to be emitted on the output Observable. All input Observables must\n * emit at least one value before the output Observable will emit a value.\n *\n * @example <caption>On every click event, emit an array with the latest timer event plus the click event</caption>\n * var clicks = Rx.Observable.fromEvent(document, 'click');\n * var timer = Rx.Observable.interval(1000);\n * var result = clicks.withLatestFrom(timer);\n * result.subscribe(x => console.log(x));\n *\n * @see {@link combineLatest}\n *\n * @param {Observable} other An input Observable to combine with the source\n * Observable. More than one input Observables may be given as argument.\n * @param {Function} [project] Projection function for combining values\n * together. Receives all values in order of the Observables passed, where the\n * first parameter is a value from the source Observable. (e.g.\n * `a.withLatestFrom(b, c, (a1, b1, c1) => a1 + b1 + c1)`). If this is not\n * passed, arrays will be emitted on the output Observable.\n * @return {Observable} An Observable of projected values from the most recent\n * values from each input Observable, or an array of the most recent values from\n * each input Observable.\n * @method withLatestFrom\n * @owner Observable\n */\nfunction withLatestFrom() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i - 0] = arguments[_i];\n    }\n    var project;\n    if (typeof args[args.length - 1] === 'function') {\n        project = args.pop();\n    }\n    var observables = args;\n    return this.lift(new WithLatestFromOperator(observables, project));\n}\nexports.withLatestFrom = withLatestFrom;\nvar WithLatestFromOperator = (function () {\n    function WithLatestFromOperator(observables, project) {\n        this.observables = observables;\n        this.project = project;\n    }\n    WithLatestFromOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n    };\n    return WithLatestFromOperator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar WithLatestFromSubscriber = (function (_super) {\n    __extends(WithLatestFromSubscriber, _super);\n    function WithLatestFromSubscriber(destination, observables, project) {\n        _super.call(this, destination);\n        this.observables = observables;\n        this.project = project;\n        this.toRespond = [];\n        var len = observables.length;\n        this.values = new Array(len);\n        for (var i = 0; i < len; i++) {\n            this.toRespond.push(i);\n        }\n        for (var i = 0; i < len; i++) {\n            var observable = observables[i];\n            this.add(subscribeToResult_1.subscribeToResult(this, observable, observable, i));\n        }\n    }\n    WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.values[outerIndex] = innerValue;\n        var toRespond = this.toRespond;\n        if (toRespond.length > 0) {\n            var found = toRespond.indexOf(outerIndex);\n            if (found !== -1) {\n                toRespond.splice(found, 1);\n            }\n        }\n    };\n    WithLatestFromSubscriber.prototype.notifyComplete = function () {\n        // noop\n    };\n    WithLatestFromSubscriber.prototype._next = function (value) {\n        if (this.toRespond.length === 0) {\n            var args = [value].concat(this.values);\n            if (this.project) {\n                this._tryProject(args);\n            }\n            else {\n                this.destination.next(args);\n            }\n        }\n    };\n    WithLatestFromSubscriber.prototype._tryProject = function (args) {\n        var result;\n        try {\n            result = this.project.apply(this, args);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return WithLatestFromSubscriber;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar ArrayObservable_1 = require('../observable/ArrayObservable');\nvar isArray_1 = require('../util/isArray');\nvar Subscriber_1 = require('../Subscriber');\nvar OuterSubscriber_1 = require('../OuterSubscriber');\nvar subscribeToResult_1 = require('../util/subscribeToResult');\nvar iterator_1 = require('../symbol/iterator');\n/* tslint:disable:max-line-length */\n/**\n * @param observables\n * @return {Observable<R>}\n * @method zip\n * @owner Observable\n */\nfunction zipProto() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i - 0] = arguments[_i];\n    }\n    return this.lift.call(zipStatic.apply(void 0, [this].concat(observables)));\n}\nexports.zipProto = zipProto;\n/* tslint:enable:max-line-length */\n/**\n * @param observables\n * @return {Observable<R>}\n * @static true\n * @name zip\n * @owner Observable\n */\nfunction zipStatic() {\n    var observables = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        observables[_i - 0] = arguments[_i];\n    }\n    var project = observables[observables.length - 1];\n    if (typeof project === 'function') {\n        observables.pop();\n    }\n    return new ArrayObservable_1.ArrayObservable(observables).lift(new ZipOperator(project));\n}\nexports.zipStatic = zipStatic;\nvar ZipOperator = (function () {\n    function ZipOperator(project) {\n        this.project = project;\n    }\n    ZipOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new ZipSubscriber(subscriber, this.project));\n    };\n    return ZipOperator;\n}());\nexports.ZipOperator = ZipOperator;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ZipSubscriber = (function (_super) {\n    __extends(ZipSubscriber, _super);\n    function ZipSubscriber(destination, project, values) {\n        if (values === void 0) { values = Object.create(null); }\n        _super.call(this, destination);\n        this.iterators = [];\n        this.active = 0;\n        this.project = (typeof project === 'function') ? project : null;\n        this.values = values;\n    }\n    ZipSubscriber.prototype._next = function (value) {\n        var iterators = this.iterators;\n        if (isArray_1.isArray(value)) {\n            iterators.push(new StaticArrayIterator(value));\n        }\n        else if (typeof value[iterator_1.$$iterator] === 'function') {\n            iterators.push(new StaticIterator(value[iterator_1.$$iterator]()));\n        }\n        else {\n            iterators.push(new ZipBufferIterator(this.destination, this, value));\n        }\n    };\n    ZipSubscriber.prototype._complete = function () {\n        var iterators = this.iterators;\n        var len = iterators.length;\n        this.active = len;\n        for (var i = 0; i < len; i++) {\n            var iterator = iterators[i];\n            if (iterator.stillUnsubscribed) {\n                this.add(iterator.subscribe(iterator, i));\n            }\n            else {\n                this.active--; // not an observable\n            }\n        }\n    };\n    ZipSubscriber.prototype.notifyInactive = function () {\n        this.active--;\n        if (this.active === 0) {\n            this.destination.complete();\n        }\n    };\n    ZipSubscriber.prototype.checkIterators = function () {\n        var iterators = this.iterators;\n        var len = iterators.length;\n        var destination = this.destination;\n        // abort if not all of them have values\n        for (var i = 0; i < len; i++) {\n            var iterator = iterators[i];\n            if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n                return;\n            }\n        }\n        var shouldComplete = false;\n        var args = [];\n        for (var i = 0; i < len; i++) {\n            var iterator = iterators[i];\n            var result = iterator.next();\n            // check to see if it's completed now that you've gotten\n            // the next value.\n            if (iterator.hasCompleted()) {\n                shouldComplete = true;\n            }\n            if (result.done) {\n                destination.complete();\n                return;\n            }\n            args.push(result.value);\n        }\n        if (this.project) {\n            this._tryProject(args);\n        }\n        else {\n            destination.next(args);\n        }\n        if (shouldComplete) {\n            destination.complete();\n        }\n    };\n    ZipSubscriber.prototype._tryProject = function (args) {\n        var result;\n        try {\n            result = this.project.apply(this, args);\n        }\n        catch (err) {\n            this.destination.error(err);\n            return;\n        }\n        this.destination.next(result);\n    };\n    return ZipSubscriber;\n}(Subscriber_1.Subscriber));\nexports.ZipSubscriber = ZipSubscriber;\nvar StaticIterator = (function () {\n    function StaticIterator(iterator) {\n        this.iterator = iterator;\n        this.nextResult = iterator.next();\n    }\n    StaticIterator.prototype.hasValue = function () {\n        return true;\n    };\n    StaticIterator.prototype.next = function () {\n        var result = this.nextResult;\n        this.nextResult = this.iterator.next();\n        return result;\n    };\n    StaticIterator.prototype.hasCompleted = function () {\n        var nextResult = this.nextResult;\n        return nextResult && nextResult.done;\n    };\n    return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n    function StaticArrayIterator(array) {\n        this.array = array;\n        this.index = 0;\n        this.length = 0;\n        this.length = array.length;\n    }\n    StaticArrayIterator.prototype[iterator_1.$$iterator] = function () {\n        return this;\n    };\n    StaticArrayIterator.prototype.next = function (value) {\n        var i = this.index++;\n        var array = this.array;\n        return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n    };\n    StaticArrayIterator.prototype.hasValue = function () {\n        return this.array.length > this.index;\n    };\n    StaticArrayIterator.prototype.hasCompleted = function () {\n        return this.array.length === this.index;\n    };\n    return StaticArrayIterator;\n}());\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ZipBufferIterator = (function (_super) {\n    __extends(ZipBufferIterator, _super);\n    function ZipBufferIterator(destination, parent, observable) {\n        _super.call(this, destination);\n        this.parent = parent;\n        this.observable = observable;\n        this.stillUnsubscribed = true;\n        this.buffer = [];\n        this.isComplete = false;\n    }\n    ZipBufferIterator.prototype[iterator_1.$$iterator] = function () {\n        return this;\n    };\n    // NOTE: there is actually a name collision here with Subscriber.next and Iterator.next\n    //    this is legit because `next()` will never be called by a subscription in this case.\n    ZipBufferIterator.prototype.next = function () {\n        var buffer = this.buffer;\n        if (buffer.length === 0 && this.isComplete) {\n            return { value: null, done: true };\n        }\n        else {\n            return { value: buffer.shift(), done: false };\n        }\n    };\n    ZipBufferIterator.prototype.hasValue = function () {\n        return this.buffer.length > 0;\n    };\n    ZipBufferIterator.prototype.hasCompleted = function () {\n        return this.buffer.length === 0 && this.isComplete;\n    };\n    ZipBufferIterator.prototype.notifyComplete = function () {\n        if (this.buffer.length > 0) {\n            this.isComplete = true;\n            this.parent.notifyInactive();\n        }\n        else {\n            this.destination.complete();\n        }\n    };\n    ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n        this.buffer.push(innerValue);\n        this.parent.checkIterators();\n    };\n    ZipBufferIterator.prototype.subscribe = function (value, index) {\n        return subscribeToResult_1.subscribeToResult(this, this.observable, this, index);\n    };\n    return ZipBufferIterator;\n}(OuterSubscriber_1.OuterSubscriber));\n//# sourceMappingURL=zip.js.map",
    "\"use strict\";\nvar zip_1 = require('./zip');\n/**\n * @param project\n * @return {Observable<R>|WebSocketSubject<T>|Observable<T>}\n * @method zipAll\n * @owner Observable\n */\nfunction zipAll(project) {\n    return this.lift(new zip_1.ZipOperator(project));\n}\nexports.zipAll = zipAll;\n//# sourceMappingURL=zipAll.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subscription_1 = require('../Subscription');\n/**\n * A unit of work to be executed in a {@link Scheduler}. An action is typically\n * created from within a Scheduler and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action<T> extends Subscription {\n *   new (scheduler: Scheduler, work: (state?: T) => void);\n *   schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n *\n * @class Action<T>\n */\nvar Action = (function (_super) {\n    __extends(Action, _super);\n    function Action(scheduler, work) {\n        _super.call(this);\n    }\n    /**\n     * Schedules this action on its parent Scheduler for execution. May be passed\n     * some context object, `state`. May happen at some point in the future,\n     * according to the `delay` parameter, if specified.\n     * @param {T} [state] Some contextual data that the `work` function uses when\n     * called by the Scheduler.\n     * @param {number} [delay] Time to wait before executing the work, where the\n     * time unit is implicit and defined by the Scheduler.\n     * @return {void}\n     */\n    Action.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        return this;\n    };\n    return Action;\n}(Subscription_1.Subscription));\nexports.Action = Action;\n//# sourceMappingURL=Action.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar AsyncAction_1 = require('./AsyncAction');\nvar AnimationFrame_1 = require('../util/AnimationFrame');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar AnimationFrameAction = (function (_super) {\n    __extends(AnimationFrameAction, _super);\n    function AnimationFrameAction(scheduler, work) {\n        _super.call(this, scheduler, work);\n        this.scheduler = scheduler;\n        this.work = work;\n    }\n    AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        // If delay is greater than 0, request as an async action.\n        if (delay !== null && delay > 0) {\n            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n        }\n        // Push the action to the end of the scheduler queue.\n        scheduler.actions.push(this);\n        // If an animation frame has already been requested, don't request another\n        // one. If an animation frame hasn't been requested yet, request one. Return\n        // the current animation frame request id.\n        return scheduler.scheduled || (scheduler.scheduled = AnimationFrame_1.AnimationFrame.requestAnimationFrame(scheduler.flush.bind(scheduler, null)));\n    };\n    AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        // If delay exists and is greater than 0, or if the delay is null (the\n        // action wasn't rescheduled) but was originally scheduled as an async\n        // action, then recycle as an async action.\n        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n            return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n        }\n        // If the scheduler queue is empty, cancel the requested animation frame and\n        // set the scheduled flag to undefined so the next AnimationFrameAction will\n        // request its own.\n        if (scheduler.actions.length === 0) {\n            AnimationFrame_1.AnimationFrame.cancelAnimationFrame(id);\n            scheduler.scheduled = undefined;\n        }\n        // Return undefined so the action knows to request a new async id if it's rescheduled.\n        return undefined;\n    };\n    return AnimationFrameAction;\n}(AsyncAction_1.AsyncAction));\nexports.AnimationFrameAction = AnimationFrameAction;\n//# sourceMappingURL=AnimationFrameAction.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar AsyncScheduler_1 = require('./AsyncScheduler');\nvar AnimationFrameScheduler = (function (_super) {\n    __extends(AnimationFrameScheduler, _super);\n    function AnimationFrameScheduler() {\n        _super.apply(this, arguments);\n    }\n    AnimationFrameScheduler.prototype.flush = function (action) {\n        this.active = true;\n        this.scheduled = undefined;\n        var actions = this.actions;\n        var error;\n        var index = -1;\n        var count = actions.length;\n        action = action || actions.shift();\n        do {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        } while (++index < count && (action = actions.shift()));\n        this.active = false;\n        if (error) {\n            while (++index < count && (action = actions.shift())) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    return AnimationFrameScheduler;\n}(AsyncScheduler_1.AsyncScheduler));\nexports.AnimationFrameScheduler = AnimationFrameScheduler;\n//# sourceMappingURL=AnimationFrameScheduler.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Immediate_1 = require('../util/Immediate');\nvar AsyncAction_1 = require('./AsyncAction');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar AsapAction = (function (_super) {\n    __extends(AsapAction, _super);\n    function AsapAction(scheduler, work) {\n        _super.call(this, scheduler, work);\n        this.scheduler = scheduler;\n        this.work = work;\n    }\n    AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        // If delay is greater than 0, request as an async action.\n        if (delay !== null && delay > 0) {\n            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n        }\n        // Push the action to the end of the scheduler queue.\n        scheduler.actions.push(this);\n        // If a microtask has already been scheduled, don't schedule another\n        // one. If a microtask hasn't been scheduled yet, schedule one now. Return\n        // the current scheduled microtask id.\n        return scheduler.scheduled || (scheduler.scheduled = Immediate_1.Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n    };\n    AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        // If delay exists and is greater than 0, or if the delay is null (the\n        // action wasn't rescheduled) but was originally scheduled as an async\n        // action, then recycle as an async action.\n        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n            return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n        }\n        // If the scheduler queue is empty, cancel the requested microtask and\n        // set the scheduled flag to undefined so the next AsapAction will schedule\n        // its own.\n        if (scheduler.actions.length === 0) {\n            Immediate_1.Immediate.clearImmediate(id);\n            scheduler.scheduled = undefined;\n        }\n        // Return undefined so the action knows to request a new async id if it's rescheduled.\n        return undefined;\n    };\n    return AsapAction;\n}(AsyncAction_1.AsyncAction));\nexports.AsapAction = AsapAction;\n//# sourceMappingURL=AsapAction.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar AsyncScheduler_1 = require('./AsyncScheduler');\nvar AsapScheduler = (function (_super) {\n    __extends(AsapScheduler, _super);\n    function AsapScheduler() {\n        _super.apply(this, arguments);\n    }\n    AsapScheduler.prototype.flush = function (action) {\n        this.active = true;\n        this.scheduled = undefined;\n        var actions = this.actions;\n        var error;\n        var index = -1;\n        var count = actions.length;\n        action = action || actions.shift();\n        do {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        } while (++index < count && (action = actions.shift()));\n        this.active = false;\n        if (error) {\n            while (++index < count && (action = actions.shift())) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    return AsapScheduler;\n}(AsyncScheduler_1.AsyncScheduler));\nexports.AsapScheduler = AsapScheduler;\n//# sourceMappingURL=AsapScheduler.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar root_1 = require('../util/root');\nvar Action_1 = require('./Action');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar AsyncAction = (function (_super) {\n    __extends(AsyncAction, _super);\n    function AsyncAction(scheduler, work) {\n        _super.call(this, scheduler, work);\n        this.scheduler = scheduler;\n        this.work = work;\n        this.pending = false;\n    }\n    AsyncAction.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (this.closed) {\n            return this;\n        }\n        // Always replace the current state with the new state.\n        this.state = state;\n        // Set the pending flag indicating that this action has been scheduled, or\n        // has recursively rescheduled itself.\n        this.pending = true;\n        var id = this.id;\n        var scheduler = this.scheduler;\n        //\n        // Important implementation note:\n        //\n        // Actions only execute once by default, unless rescheduled from within the\n        // scheduled callback. This allows us to implement single and repeat\n        // actions via the same code path, without adding API surface area, as well\n        // as mimic traditional recursion but across asynchronous boundaries.\n        //\n        // However, JS runtimes and timers distinguish between intervals achieved by\n        // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n        // serial `setTimeout` calls can be individually delayed, which delays\n        // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n        // guarantee the interval callback will be invoked more precisely to the\n        // interval period, regardless of load.\n        //\n        // Therefore, we use `setInterval` to schedule single and repeat actions.\n        // If the action reschedules itself with the same delay, the interval is not\n        // canceled. If the action doesn't reschedule, or reschedules with a\n        // different delay, the interval will be canceled after scheduled callback\n        // execution.\n        //\n        if (id != null) {\n            this.id = this.recycleAsyncId(scheduler, id, delay);\n        }\n        this.delay = delay;\n        // If this action has already an async Id, don't request a new one.\n        this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n        return this;\n    };\n    AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        return root_1.root.setInterval(scheduler.flush.bind(scheduler, this), delay);\n    };\n    AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        // If this action is rescheduled with the same delay time, don't clear the interval id.\n        if (delay !== null && this.delay === delay) {\n            return id;\n        }\n        // Otherwise, if the action's delay time is different from the current delay,\n        // clear the interval id\n        return root_1.root.clearInterval(id) && undefined || undefined;\n    };\n    /**\n     * Immediately executes this action and the `work` it contains.\n     * @return {any}\n     */\n    AsyncAction.prototype.execute = function (state, delay) {\n        if (this.closed) {\n            return new Error('executing a cancelled action');\n        }\n        this.pending = false;\n        var error = this._execute(state, delay);\n        if (error) {\n            return error;\n        }\n        else if (this.pending === false && this.id != null) {\n            // Dequeue if the action didn't reschedule itself. Don't call\n            // unsubscribe(), because the action could reschedule later.\n            // For example:\n            // ```\n            // scheduler.schedule(function doWork(counter) {\n            //   /* ... I'm a busy worker bee ... */\n            //   var originalAction = this;\n            //   /* wait 100ms before rescheduling the action */\n            //   setTimeout(function () {\n            //     originalAction.schedule(counter + 1);\n            //   }, 100);\n            // }, 1000);\n            // ```\n            this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n        }\n    };\n    AsyncAction.prototype._execute = function (state, delay) {\n        var errored = false;\n        var errorValue = undefined;\n        try {\n            this.work(state);\n        }\n        catch (e) {\n            errored = true;\n            errorValue = !!e && e || new Error(e);\n        }\n        if (errored) {\n            this.unsubscribe();\n            return errorValue;\n        }\n    };\n    AsyncAction.prototype._unsubscribe = function () {\n        var id = this.id;\n        var scheduler = this.scheduler;\n        var actions = scheduler.actions;\n        var index = actions.indexOf(this);\n        this.work = null;\n        this.delay = null;\n        this.state = null;\n        this.pending = false;\n        this.scheduler = null;\n        if (index !== -1) {\n            actions.splice(index, 1);\n        }\n        if (id != null) {\n            this.id = this.recycleAsyncId(scheduler, id, null);\n        }\n    };\n    return AsyncAction;\n}(Action_1.Action));\nexports.AsyncAction = AsyncAction;\n//# sourceMappingURL=AsyncAction.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Scheduler_1 = require('../Scheduler');\nvar AsyncScheduler = (function (_super) {\n    __extends(AsyncScheduler, _super);\n    function AsyncScheduler() {\n        _super.apply(this, arguments);\n        this.actions = [];\n        /**\n         * A flag to indicate whether the Scheduler is currently executing a batch of\n         * queued actions.\n         * @type {boolean}\n         */\n        this.active = false;\n        /**\n         * An internal ID used to track the latest asynchronous task such as those\n         * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n         * others.\n         * @type {any}\n         */\n        this.scheduled = undefined;\n    }\n    AsyncScheduler.prototype.flush = function (action) {\n        var actions = this.actions;\n        if (this.active) {\n            actions.push(action);\n            return;\n        }\n        var error;\n        this.active = true;\n        do {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        } while (action = actions.shift()); // exhaust the scheduler queue\n        this.active = false;\n        if (error) {\n            while (action = actions.shift()) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    return AsyncScheduler;\n}(Scheduler_1.Scheduler));\nexports.AsyncScheduler = AsyncScheduler;\n//# sourceMappingURL=AsyncScheduler.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar AsyncAction_1 = require('./AsyncAction');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar QueueAction = (function (_super) {\n    __extends(QueueAction, _super);\n    function QueueAction(scheduler, work) {\n        _super.call(this, scheduler, work);\n        this.scheduler = scheduler;\n        this.work = work;\n    }\n    QueueAction.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        if (delay > 0) {\n            return _super.prototype.schedule.call(this, state, delay);\n        }\n        this.delay = delay;\n        this.state = state;\n        this.scheduler.flush(this);\n        return this;\n    };\n    QueueAction.prototype.execute = function (state, delay) {\n        return (delay > 0 || this.closed) ?\n            _super.prototype.execute.call(this, state, delay) :\n            this._execute(state, delay);\n    };\n    QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        // If delay exists and is greater than 0, or if the delay is null (the\n        // action wasn't rescheduled) but was originally scheduled as an async\n        // action, then recycle as an async action.\n        if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n            return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n        }\n        // Otherwise flush the scheduler starting with this action.\n        return scheduler.flush(this);\n    };\n    return QueueAction;\n}(AsyncAction_1.AsyncAction));\nexports.QueueAction = QueueAction;\n//# sourceMappingURL=QueueAction.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar AsyncScheduler_1 = require('./AsyncScheduler');\nvar QueueScheduler = (function (_super) {\n    __extends(QueueScheduler, _super);\n    function QueueScheduler() {\n        _super.apply(this, arguments);\n    }\n    return QueueScheduler;\n}(AsyncScheduler_1.AsyncScheduler));\nexports.QueueScheduler = QueueScheduler;\n//# sourceMappingURL=QueueScheduler.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar AsyncAction_1 = require('./AsyncAction');\nvar AsyncScheduler_1 = require('./AsyncScheduler');\nvar VirtualTimeScheduler = (function (_super) {\n    __extends(VirtualTimeScheduler, _super);\n    function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n        var _this = this;\n        if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }\n        if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }\n        _super.call(this, SchedulerAction, function () { return _this.frame; });\n        this.maxFrames = maxFrames;\n        this.frame = 0;\n        this.index = -1;\n    }\n    /**\n     * Prompt the Scheduler to execute all of its queued actions, therefore\n     * clearing its queue.\n     * @return {void}\n     */\n    VirtualTimeScheduler.prototype.flush = function () {\n        var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n        var error, action;\n        while ((action = actions.shift()) && (this.frame = action.delay) <= maxFrames) {\n            if (error = action.execute(action.state, action.delay)) {\n                break;\n            }\n        }\n        if (error) {\n            while (action = actions.shift()) {\n                action.unsubscribe();\n            }\n            throw error;\n        }\n    };\n    VirtualTimeScheduler.frameTimeFactor = 10;\n    return VirtualTimeScheduler;\n}(AsyncScheduler_1.AsyncScheduler));\nexports.VirtualTimeScheduler = VirtualTimeScheduler;\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar VirtualAction = (function (_super) {\n    __extends(VirtualAction, _super);\n    function VirtualAction(scheduler, work, index) {\n        if (index === void 0) { index = scheduler.index += 1; }\n        _super.call(this, scheduler, work);\n        this.scheduler = scheduler;\n        this.work = work;\n        this.index = index;\n        this.index = scheduler.index = index;\n    }\n    VirtualAction.prototype.schedule = function (state, delay) {\n        if (delay === void 0) { delay = 0; }\n        return !this.id ?\n            _super.prototype.schedule.call(this, state, delay) : this.add(new VirtualAction(this.scheduler, this.work)).schedule(state, delay);\n    };\n    VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        this.delay = scheduler.frame + delay;\n        var actions = scheduler.actions;\n        actions.push(this);\n        actions.sort(VirtualAction.sortActions);\n        return true;\n    };\n    VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n        if (delay === void 0) { delay = 0; }\n        return undefined;\n    };\n    VirtualAction.sortActions = function (a, b) {\n        if (a.delay === b.delay) {\n            if (a.index === b.index) {\n                return 0;\n            }\n            else if (a.index > b.index) {\n                return 1;\n            }\n            else {\n                return -1;\n            }\n        }\n        else if (a.delay > b.delay) {\n            return 1;\n        }\n        else {\n            return -1;\n        }\n    };\n    return VirtualAction;\n}(AsyncAction_1.AsyncAction));\nexports.VirtualAction = VirtualAction;\n//# sourceMappingURL=VirtualTimeScheduler.js.map",
    "\"use strict\";\nvar AnimationFrameAction_1 = require('./AnimationFrameAction');\nvar AnimationFrameScheduler_1 = require('./AnimationFrameScheduler');\nexports.animationFrame = new AnimationFrameScheduler_1.AnimationFrameScheduler(AnimationFrameAction_1.AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map",
    "\"use strict\";\nvar AsapAction_1 = require('./AsapAction');\nvar AsapScheduler_1 = require('./AsapScheduler');\nexports.asap = new AsapScheduler_1.AsapScheduler(AsapAction_1.AsapAction);\n//# sourceMappingURL=asap.js.map",
    "\"use strict\";\nvar AsyncAction_1 = require('./AsyncAction');\nvar AsyncScheduler_1 = require('./AsyncScheduler');\nexports.async = new AsyncScheduler_1.AsyncScheduler(AsyncAction_1.AsyncAction);\n//# sourceMappingURL=async.js.map",
    "\"use strict\";\nvar QueueAction_1 = require('./QueueAction');\nvar QueueScheduler_1 = require('./QueueScheduler');\nexports.queue = new QueueScheduler_1.QueueScheduler(QueueAction_1.QueueAction);\n//# sourceMappingURL=queue.js.map",
    "\"use strict\";\nvar root_1 = require('../util/root');\nfunction symbolIteratorPonyfill(root) {\n    var Symbol = root.Symbol;\n    if (typeof Symbol === 'function') {\n        if (!Symbol.iterator) {\n            Symbol.iterator = Symbol('iterator polyfill');\n        }\n        return Symbol.iterator;\n    }\n    else {\n        // [for Mozilla Gecko 27-35:](https://mzl.la/2ewE1zC)\n        var Set_1 = root.Set;\n        if (Set_1 && typeof new Set_1()['@@iterator'] === 'function') {\n            return '@@iterator';\n        }\n        var Map_1 = root.Map;\n        // required for compatability with es6-shim\n        if (Map_1) {\n            var keys = Object.getOwnPropertyNames(Map_1.prototype);\n            for (var i = 0; i < keys.length; ++i) {\n                var key = keys[i];\n                // according to spec, Map.prototype[@@iterator] and Map.orototype.entries must be equal.\n                if (key !== 'entries' && key !== 'size' && Map_1.prototype[key] === Map_1.prototype['entries']) {\n                    return key;\n                }\n            }\n        }\n        return '@@iterator';\n    }\n}\nexports.symbolIteratorPonyfill = symbolIteratorPonyfill;\nexports.$$iterator = symbolIteratorPonyfill(root_1.root);\n//# sourceMappingURL=iterator.js.map",
    "\"use strict\";\nvar root_1 = require('../util/root');\nfunction getSymbolObservable(context) {\n    var $$observable;\n    var Symbol = context.Symbol;\n    if (typeof Symbol === 'function') {\n        if (Symbol.observable) {\n            $$observable = Symbol.observable;\n        }\n        else {\n            $$observable = Symbol('observable');\n            Symbol.observable = $$observable;\n        }\n    }\n    else {\n        $$observable = '@@observable';\n    }\n    return $$observable;\n}\nexports.getSymbolObservable = getSymbolObservable;\nexports.$$observable = getSymbolObservable(root_1.root);\n//# sourceMappingURL=observable.js.map",
    "\"use strict\";\nvar root_1 = require('../util/root');\nvar Symbol = root_1.root.Symbol;\nexports.$$rxSubscriber = (typeof Symbol === 'function' && typeof Symbol.for === 'function') ?\n    Symbol.for('rxSubscriber') : '@@rxSubscriber';\n//# sourceMappingURL=rxSubscriber.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar Subscription_1 = require('../Subscription');\nvar SubscriptionLoggable_1 = require('./SubscriptionLoggable');\nvar applyMixins_1 = require('../util/applyMixins');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar ColdObservable = (function (_super) {\n    __extends(ColdObservable, _super);\n    function ColdObservable(messages, scheduler) {\n        _super.call(this, function (subscriber) {\n            var observable = this;\n            var index = observable.logSubscribedFrame();\n            subscriber.add(new Subscription_1.Subscription(function () {\n                observable.logUnsubscribedFrame(index);\n            }));\n            observable.scheduleMessages(subscriber);\n            return subscriber;\n        });\n        this.messages = messages;\n        this.subscriptions = [];\n        this.scheduler = scheduler;\n    }\n    ColdObservable.prototype.scheduleMessages = function (subscriber) {\n        var messagesLength = this.messages.length;\n        for (var i = 0; i < messagesLength; i++) {\n            var message = this.messages[i];\n            subscriber.add(this.scheduler.schedule(function (_a) {\n                var message = _a.message, subscriber = _a.subscriber;\n                message.notification.observe(subscriber);\n            }, message.frame, { message: message, subscriber: subscriber }));\n        }\n    };\n    return ColdObservable;\n}(Observable_1.Observable));\nexports.ColdObservable = ColdObservable;\napplyMixins_1.applyMixins(ColdObservable, [SubscriptionLoggable_1.SubscriptionLoggable]);\n//# sourceMappingURL=ColdObservable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Subject_1 = require('../Subject');\nvar Subscription_1 = require('../Subscription');\nvar SubscriptionLoggable_1 = require('./SubscriptionLoggable');\nvar applyMixins_1 = require('../util/applyMixins');\n/**\n * We need this JSDoc comment for affecting ESDoc.\n * @ignore\n * @extends {Ignored}\n */\nvar HotObservable = (function (_super) {\n    __extends(HotObservable, _super);\n    function HotObservable(messages, scheduler) {\n        _super.call(this);\n        this.messages = messages;\n        this.subscriptions = [];\n        this.scheduler = scheduler;\n    }\n    HotObservable.prototype._subscribe = function (subscriber) {\n        var subject = this;\n        var index = subject.logSubscribedFrame();\n        subscriber.add(new Subscription_1.Subscription(function () {\n            subject.logUnsubscribedFrame(index);\n        }));\n        return _super.prototype._subscribe.call(this, subscriber);\n    };\n    HotObservable.prototype.setup = function () {\n        var subject = this;\n        var messagesLength = subject.messages.length;\n        /* tslint:disable:no-var-keyword */\n        for (var i = 0; i < messagesLength; i++) {\n            (function () {\n                var message = subject.messages[i];\n                /* tslint:enable */\n                subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame);\n            })();\n        }\n    };\n    return HotObservable;\n}(Subject_1.Subject));\nexports.HotObservable = HotObservable;\napplyMixins_1.applyMixins(HotObservable, [SubscriptionLoggable_1.SubscriptionLoggable]);\n//# sourceMappingURL=HotObservable.js.map",
    "\"use strict\";\nvar SubscriptionLog = (function () {\n    function SubscriptionLog(subscribedFrame, unsubscribedFrame) {\n        if (unsubscribedFrame === void 0) { unsubscribedFrame = Number.POSITIVE_INFINITY; }\n        this.subscribedFrame = subscribedFrame;\n        this.unsubscribedFrame = unsubscribedFrame;\n    }\n    return SubscriptionLog;\n}());\nexports.SubscriptionLog = SubscriptionLog;\n//# sourceMappingURL=SubscriptionLog.js.map",
    "\"use strict\";\nvar SubscriptionLog_1 = require('./SubscriptionLog');\nvar SubscriptionLoggable = (function () {\n    function SubscriptionLoggable() {\n        this.subscriptions = [];\n    }\n    SubscriptionLoggable.prototype.logSubscribedFrame = function () {\n        this.subscriptions.push(new SubscriptionLog_1.SubscriptionLog(this.scheduler.now()));\n        return this.subscriptions.length - 1;\n    };\n    SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) {\n        var subscriptionLogs = this.subscriptions;\n        var oldSubscriptionLog = subscriptionLogs[index];\n        subscriptionLogs[index] = new SubscriptionLog_1.SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());\n    };\n    return SubscriptionLoggable;\n}());\nexports.SubscriptionLoggable = SubscriptionLoggable;\n//# sourceMappingURL=SubscriptionLoggable.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\nvar Observable_1 = require('../Observable');\nvar Notification_1 = require('../Notification');\nvar ColdObservable_1 = require('./ColdObservable');\nvar HotObservable_1 = require('./HotObservable');\nvar SubscriptionLog_1 = require('./SubscriptionLog');\nvar VirtualTimeScheduler_1 = require('../scheduler/VirtualTimeScheduler');\nvar defaultMaxFrame = 750;\nvar TestScheduler = (function (_super) {\n    __extends(TestScheduler, _super);\n    function TestScheduler(assertDeepEqual) {\n        _super.call(this, VirtualTimeScheduler_1.VirtualAction, defaultMaxFrame);\n        this.assertDeepEqual = assertDeepEqual;\n        this.hotObservables = [];\n        this.coldObservables = [];\n        this.flushTests = [];\n    }\n    TestScheduler.prototype.createTime = function (marbles) {\n        var indexOf = marbles.indexOf('|');\n        if (indexOf === -1) {\n            throw new Error('marble diagram for time should have a completion marker \"|\"');\n        }\n        return indexOf * TestScheduler.frameTimeFactor;\n    };\n    TestScheduler.prototype.createColdObservable = function (marbles, values, error) {\n        if (marbles.indexOf('^') !== -1) {\n            throw new Error('cold observable cannot have subscription offset \"^\"');\n        }\n        if (marbles.indexOf('!') !== -1) {\n            throw new Error('cold observable cannot have unsubscription marker \"!\"');\n        }\n        var messages = TestScheduler.parseMarbles(marbles, values, error);\n        var cold = new ColdObservable_1.ColdObservable(messages, this);\n        this.coldObservables.push(cold);\n        return cold;\n    };\n    TestScheduler.prototype.createHotObservable = function (marbles, values, error) {\n        if (marbles.indexOf('!') !== -1) {\n            throw new Error('hot observable cannot have unsubscription marker \"!\"');\n        }\n        var messages = TestScheduler.parseMarbles(marbles, values, error);\n        var subject = new HotObservable_1.HotObservable(messages, this);\n        this.hotObservables.push(subject);\n        return subject;\n    };\n    TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) {\n        var _this = this;\n        var messages = [];\n        observable.subscribe(function (value) {\n            messages.push({ frame: _this.frame - outerFrame, notification: Notification_1.Notification.createNext(value) });\n        }, function (err) {\n            messages.push({ frame: _this.frame - outerFrame, notification: Notification_1.Notification.createError(err) });\n        }, function () {\n            messages.push({ frame: _this.frame - outerFrame, notification: Notification_1.Notification.createComplete() });\n        });\n        return messages;\n    };\n    TestScheduler.prototype.expectObservable = function (observable, unsubscriptionMarbles) {\n        var _this = this;\n        if (unsubscriptionMarbles === void 0) { unsubscriptionMarbles = null; }\n        var actual = [];\n        var flushTest = { actual: actual, ready: false };\n        var unsubscriptionFrame = TestScheduler\n            .parseMarblesAsSubscriptions(unsubscriptionMarbles).unsubscribedFrame;\n        var subscription;\n        this.schedule(function () {\n            subscription = observable.subscribe(function (x) {\n                var value = x;\n                // Support Observable-of-Observables\n                if (x instanceof Observable_1.Observable) {\n                    value = _this.materializeInnerObservable(value, _this.frame);\n                }\n                actual.push({ frame: _this.frame, notification: Notification_1.Notification.createNext(value) });\n            }, function (err) {\n                actual.push({ frame: _this.frame, notification: Notification_1.Notification.createError(err) });\n            }, function () {\n                actual.push({ frame: _this.frame, notification: Notification_1.Notification.createComplete() });\n            });\n        }, 0);\n        if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n            this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame);\n        }\n        this.flushTests.push(flushTest);\n        return {\n            toBe: function (marbles, values, errorValue) {\n                flushTest.ready = true;\n                flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true);\n            }\n        };\n    };\n    TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) {\n        var flushTest = { actual: actualSubscriptionLogs, ready: false };\n        this.flushTests.push(flushTest);\n        return {\n            toBe: function (marbles) {\n                var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles;\n                flushTest.ready = true;\n                flushTest.expected = marblesArray.map(function (marbles) {\n                    return TestScheduler.parseMarblesAsSubscriptions(marbles);\n                });\n            }\n        };\n    };\n    TestScheduler.prototype.flush = function () {\n        var hotObservables = this.hotObservables;\n        while (hotObservables.length > 0) {\n            hotObservables.shift().setup();\n        }\n        _super.prototype.flush.call(this);\n        var readyFlushTests = this.flushTests.filter(function (test) { return test.ready; });\n        while (readyFlushTests.length > 0) {\n            var test = readyFlushTests.shift();\n            this.assertDeepEqual(test.actual, test.expected);\n        }\n    };\n    TestScheduler.parseMarblesAsSubscriptions = function (marbles) {\n        if (typeof marbles !== 'string') {\n            return new SubscriptionLog_1.SubscriptionLog(Number.POSITIVE_INFINITY);\n        }\n        var len = marbles.length;\n        var groupStart = -1;\n        var subscriptionFrame = Number.POSITIVE_INFINITY;\n        var unsubscriptionFrame = Number.POSITIVE_INFINITY;\n        for (var i = 0; i < len; i++) {\n            var frame = i * this.frameTimeFactor;\n            var c = marbles[i];\n            switch (c) {\n                case '-':\n                case ' ':\n                    break;\n                case '(':\n                    groupStart = frame;\n                    break;\n                case ')':\n                    groupStart = -1;\n                    break;\n                case '^':\n                    if (subscriptionFrame !== Number.POSITIVE_INFINITY) {\n                        throw new Error('found a second subscription point \\'^\\' in a ' +\n                            'subscription marble diagram. There can only be one.');\n                    }\n                    subscriptionFrame = groupStart > -1 ? groupStart : frame;\n                    break;\n                case '!':\n                    if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n                        throw new Error('found a second subscription point \\'^\\' in a ' +\n                            'subscription marble diagram. There can only be one.');\n                    }\n                    unsubscriptionFrame = groupStart > -1 ? groupStart : frame;\n                    break;\n                default:\n                    throw new Error('there can only be \\'^\\' and \\'!\\' markers in a ' +\n                        'subscription marble diagram. Found instead \\'' + c + '\\'.');\n            }\n        }\n        if (unsubscriptionFrame < 0) {\n            return new SubscriptionLog_1.SubscriptionLog(subscriptionFrame);\n        }\n        else {\n            return new SubscriptionLog_1.SubscriptionLog(subscriptionFrame, unsubscriptionFrame);\n        }\n    };\n    TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables) {\n        if (materializeInnerObservables === void 0) { materializeInnerObservables = false; }\n        if (marbles.indexOf('!') !== -1) {\n            throw new Error('conventional marble diagrams cannot have the ' +\n                'unsubscription marker \"!\"');\n        }\n        var len = marbles.length;\n        var testMessages = [];\n        var subIndex = marbles.indexOf('^');\n        var frameOffset = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);\n        var getValue = typeof values !== 'object' ?\n            function (x) { return x; } :\n            function (x) {\n                // Support Observable-of-Observables\n                if (materializeInnerObservables && values[x] instanceof ColdObservable_1.ColdObservable) {\n                    return values[x].messages;\n                }\n                return values[x];\n            };\n        var groupStart = -1;\n        for (var i = 0; i < len; i++) {\n            var frame = i * this.frameTimeFactor + frameOffset;\n            var notification = void 0;\n            var c = marbles[i];\n            switch (c) {\n                case '-':\n                case ' ':\n                    break;\n                case '(':\n                    groupStart = frame;\n                    break;\n                case ')':\n                    groupStart = -1;\n                    break;\n                case '|':\n                    notification = Notification_1.Notification.createComplete();\n                    break;\n                case '^':\n                    break;\n                case '#':\n                    notification = Notification_1.Notification.createError(errorValue || 'error');\n                    break;\n                default:\n                    notification = Notification_1.Notification.createNext(getValue(c));\n                    break;\n            }\n            if (notification) {\n                testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification });\n            }\n        }\n        return testMessages;\n    };\n    return TestScheduler;\n}(VirtualTimeScheduler_1.VirtualTimeScheduler));\nexports.TestScheduler = TestScheduler;\n//# sourceMappingURL=TestScheduler.js.map",
    "\"use strict\";\nvar root_1 = require('./root');\nvar RequestAnimationFrameDefinition = (function () {\n    function RequestAnimationFrameDefinition(root) {\n        if (root.requestAnimationFrame) {\n            this.cancelAnimationFrame = root.cancelAnimationFrame.bind(root);\n            this.requestAnimationFrame = root.requestAnimationFrame.bind(root);\n        }\n        else if (root.mozRequestAnimationFrame) {\n            this.cancelAnimationFrame = root.mozCancelAnimationFrame.bind(root);\n            this.requestAnimationFrame = root.mozRequestAnimationFrame.bind(root);\n        }\n        else if (root.webkitRequestAnimationFrame) {\n            this.cancelAnimationFrame = root.webkitCancelAnimationFrame.bind(root);\n            this.requestAnimationFrame = root.webkitRequestAnimationFrame.bind(root);\n        }\n        else if (root.msRequestAnimationFrame) {\n            this.cancelAnimationFrame = root.msCancelAnimationFrame.bind(root);\n            this.requestAnimationFrame = root.msRequestAnimationFrame.bind(root);\n        }\n        else if (root.oRequestAnimationFrame) {\n            this.cancelAnimationFrame = root.oCancelAnimationFrame.bind(root);\n            this.requestAnimationFrame = root.oRequestAnimationFrame.bind(root);\n        }\n        else {\n            this.cancelAnimationFrame = root.clearTimeout.bind(root);\n            this.requestAnimationFrame = function (cb) { return root.setTimeout(cb, 1000 / 60); };\n        }\n    }\n    return RequestAnimationFrameDefinition;\n}());\nexports.RequestAnimationFrameDefinition = RequestAnimationFrameDefinition;\nexports.AnimationFrame = new RequestAnimationFrameDefinition(root_1.root);\n//# sourceMappingURL=AnimationFrame.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * An error thrown when an element was queried at a certain index of an\n * Observable, but no such index or position exists in that sequence.\n *\n * @see {@link elementAt}\n * @see {@link take}\n * @see {@link takeLast}\n *\n * @class ArgumentOutOfRangeError\n */\nvar ArgumentOutOfRangeError = (function (_super) {\n    __extends(ArgumentOutOfRangeError, _super);\n    function ArgumentOutOfRangeError() {\n        var err = _super.call(this, 'argument out of range');\n        this.name = err.name = 'ArgumentOutOfRangeError';\n        this.stack = err.stack;\n        this.message = err.message;\n    }\n    return ArgumentOutOfRangeError;\n}(Error));\nexports.ArgumentOutOfRangeError = ArgumentOutOfRangeError;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * An error thrown when an Observable or a sequence was queried but has no\n * elements.\n *\n * @see {@link first}\n * @see {@link last}\n * @see {@link single}\n *\n * @class EmptyError\n */\nvar EmptyError = (function (_super) {\n    __extends(EmptyError, _super);\n    function EmptyError() {\n        var err = _super.call(this, 'no elements in sequence');\n        this.name = err.name = 'EmptyError';\n        this.stack = err.stack;\n        this.message = err.message;\n    }\n    return EmptyError;\n}(Error));\nexports.EmptyError = EmptyError;\n//# sourceMappingURL=EmptyError.js.map",
    "\"use strict\";\nvar FastMap = (function () {\n    function FastMap() {\n        this.values = {};\n    }\n    FastMap.prototype.delete = function (key) {\n        this.values[key] = null;\n        return true;\n    };\n    FastMap.prototype.set = function (key, value) {\n        this.values[key] = value;\n        return this;\n    };\n    FastMap.prototype.get = function (key) {\n        return this.values[key];\n    };\n    FastMap.prototype.forEach = function (cb, thisArg) {\n        var values = this.values;\n        for (var key in values) {\n            if (values.hasOwnProperty(key) && values[key] !== null) {\n                cb.call(thisArg, values[key], key);\n            }\n        }\n    };\n    FastMap.prototype.clear = function () {\n        this.values = {};\n    };\n    return FastMap;\n}());\nexports.FastMap = FastMap;\n//# sourceMappingURL=FastMap.js.map",
    "/**\nSome credit for this helper goes to http://github.com/YuzuJS/setImmediate\n*/\n\"use strict\";\nvar root_1 = require('./root');\nvar ImmediateDefinition = (function () {\n    function ImmediateDefinition(root) {\n        this.root = root;\n        if (root.setImmediate && typeof root.setImmediate === 'function') {\n            this.setImmediate = root.setImmediate.bind(root);\n            this.clearImmediate = root.clearImmediate.bind(root);\n        }\n        else {\n            this.nextHandle = 1;\n            this.tasksByHandle = {};\n            this.currentlyRunningATask = false;\n            // Don't get fooled by e.g. browserify environments.\n            if (this.canUseProcessNextTick()) {\n                // For Node.js before 0.9\n                this.setImmediate = this.createProcessNextTickSetImmediate();\n            }\n            else if (this.canUsePostMessage()) {\n                // For non-IE10 modern browsers\n                this.setImmediate = this.createPostMessageSetImmediate();\n            }\n            else if (this.canUseMessageChannel()) {\n                // For web workers, where supported\n                this.setImmediate = this.createMessageChannelSetImmediate();\n            }\n            else if (this.canUseReadyStateChange()) {\n                // For IE 6–8\n                this.setImmediate = this.createReadyStateChangeSetImmediate();\n            }\n            else {\n                // For older browsers\n                this.setImmediate = this.createSetTimeoutSetImmediate();\n            }\n            var ci = function clearImmediate(handle) {\n                delete clearImmediate.instance.tasksByHandle[handle];\n            };\n            ci.instance = this;\n            this.clearImmediate = ci;\n        }\n    }\n    ImmediateDefinition.prototype.identify = function (o) {\n        return this.root.Object.prototype.toString.call(o);\n    };\n    ImmediateDefinition.prototype.canUseProcessNextTick = function () {\n        return this.identify(this.root.process) === '[object process]';\n    };\n    ImmediateDefinition.prototype.canUseMessageChannel = function () {\n        return Boolean(this.root.MessageChannel);\n    };\n    ImmediateDefinition.prototype.canUseReadyStateChange = function () {\n        var document = this.root.document;\n        return Boolean(document && 'onreadystatechange' in document.createElement('script'));\n    };\n    ImmediateDefinition.prototype.canUsePostMessage = function () {\n        var root = this.root;\n        // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n        // where `root.postMessage` means something completely different and can't be used for this purpose.\n        if (root.postMessage && !root.importScripts) {\n            var postMessageIsAsynchronous_1 = true;\n            var oldOnMessage = root.onmessage;\n            root.onmessage = function () {\n                postMessageIsAsynchronous_1 = false;\n            };\n            root.postMessage('', '*');\n            root.onmessage = oldOnMessage;\n            return postMessageIsAsynchronous_1;\n        }\n        return false;\n    };\n    // This function accepts the same arguments as setImmediate, but\n    // returns a function that requires no arguments.\n    ImmediateDefinition.prototype.partiallyApplied = function (handler) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        var fn = function result() {\n            var _a = result, handler = _a.handler, args = _a.args;\n            if (typeof handler === 'function') {\n                handler.apply(undefined, args);\n            }\n            else {\n                (new Function('' + handler))();\n            }\n        };\n        fn.handler = handler;\n        fn.args = args;\n        return fn;\n    };\n    ImmediateDefinition.prototype.addFromSetImmediateArguments = function (args) {\n        this.tasksByHandle[this.nextHandle] = this.partiallyApplied.apply(undefined, args);\n        return this.nextHandle++;\n    };\n    ImmediateDefinition.prototype.createProcessNextTickSetImmediate = function () {\n        var fn = function setImmediate() {\n            var instance = setImmediate.instance;\n            var handle = instance.addFromSetImmediateArguments(arguments);\n            instance.root.process.nextTick(instance.partiallyApplied(instance.runIfPresent, handle));\n            return handle;\n        };\n        fn.instance = this;\n        return fn;\n    };\n    ImmediateDefinition.prototype.createPostMessageSetImmediate = function () {\n        // Installs an event handler on `global` for the `message` event: see\n        // * https://developer.mozilla.org/en/DOM/window.postMessage\n        // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n        var root = this.root;\n        var messagePrefix = 'setImmediate$' + root.Math.random() + '$';\n        var onGlobalMessage = function globalMessageHandler(event) {\n            var instance = globalMessageHandler.instance;\n            if (event.source === root &&\n                typeof event.data === 'string' &&\n                event.data.indexOf(messagePrefix) === 0) {\n                instance.runIfPresent(+event.data.slice(messagePrefix.length));\n            }\n        };\n        onGlobalMessage.instance = this;\n        root.addEventListener('message', onGlobalMessage, false);\n        var fn = function setImmediate() {\n            var _a = setImmediate, messagePrefix = _a.messagePrefix, instance = _a.instance;\n            var handle = instance.addFromSetImmediateArguments(arguments);\n            instance.root.postMessage(messagePrefix + handle, '*');\n            return handle;\n        };\n        fn.instance = this;\n        fn.messagePrefix = messagePrefix;\n        return fn;\n    };\n    ImmediateDefinition.prototype.runIfPresent = function (handle) {\n        // From the spec: 'Wait until any invocations of this algorithm started before this one have completed.'\n        // So if we're currently running a task, we'll need to delay this invocation.\n        if (this.currentlyRunningATask) {\n            // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n            // 'too much recursion' error.\n            this.root.setTimeout(this.partiallyApplied(this.runIfPresent, handle), 0);\n        }\n        else {\n            var task = this.tasksByHandle[handle];\n            if (task) {\n                this.currentlyRunningATask = true;\n                try {\n                    task();\n                }\n                finally {\n                    this.clearImmediate(handle);\n                    this.currentlyRunningATask = false;\n                }\n            }\n        }\n    };\n    ImmediateDefinition.prototype.createMessageChannelSetImmediate = function () {\n        var _this = this;\n        var channel = new this.root.MessageChannel();\n        channel.port1.onmessage = function (event) {\n            var handle = event.data;\n            _this.runIfPresent(handle);\n        };\n        var fn = function setImmediate() {\n            var _a = setImmediate, channel = _a.channel, instance = _a.instance;\n            var handle = instance.addFromSetImmediateArguments(arguments);\n            channel.port2.postMessage(handle);\n            return handle;\n        };\n        fn.channel = channel;\n        fn.instance = this;\n        return fn;\n    };\n    ImmediateDefinition.prototype.createReadyStateChangeSetImmediate = function () {\n        var fn = function setImmediate() {\n            var instance = setImmediate.instance;\n            var root = instance.root;\n            var doc = root.document;\n            var html = doc.documentElement;\n            var handle = instance.addFromSetImmediateArguments(arguments);\n            // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n            // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n            var script = doc.createElement('script');\n            script.onreadystatechange = function () {\n                instance.runIfPresent(handle);\n                script.onreadystatechange = null;\n                html.removeChild(script);\n                script = null;\n            };\n            html.appendChild(script);\n            return handle;\n        };\n        fn.instance = this;\n        return fn;\n    };\n    ImmediateDefinition.prototype.createSetTimeoutSetImmediate = function () {\n        var fn = function setImmediate() {\n            var instance = setImmediate.instance;\n            var handle = instance.addFromSetImmediateArguments(arguments);\n            instance.root.setTimeout(instance.partiallyApplied(instance.runIfPresent, handle), 0);\n            return handle;\n        };\n        fn.instance = this;\n        return fn;\n    };\n    return ImmediateDefinition;\n}());\nexports.ImmediateDefinition = ImmediateDefinition;\nexports.Immediate = new ImmediateDefinition(root_1.root);\n//# sourceMappingURL=Immediate.js.map",
    "\"use strict\";\nvar root_1 = require('./root');\nvar MapPolyfill_1 = require('./MapPolyfill');\nexports.Map = root_1.root.Map || (function () { return MapPolyfill_1.MapPolyfill; })();\n//# sourceMappingURL=Map.js.map",
    "\"use strict\";\nvar MapPolyfill = (function () {\n    function MapPolyfill() {\n        this.size = 0;\n        this._values = [];\n        this._keys = [];\n    }\n    MapPolyfill.prototype.get = function (key) {\n        var i = this._keys.indexOf(key);\n        return i === -1 ? undefined : this._values[i];\n    };\n    MapPolyfill.prototype.set = function (key, value) {\n        var i = this._keys.indexOf(key);\n        if (i === -1) {\n            this._keys.push(key);\n            this._values.push(value);\n            this.size++;\n        }\n        else {\n            this._values[i] = value;\n        }\n        return this;\n    };\n    MapPolyfill.prototype.delete = function (key) {\n        var i = this._keys.indexOf(key);\n        if (i === -1) {\n            return false;\n        }\n        this._values.splice(i, 1);\n        this._keys.splice(i, 1);\n        this.size--;\n        return true;\n    };\n    MapPolyfill.prototype.clear = function () {\n        this._keys.length = 0;\n        this._values.length = 0;\n        this.size = 0;\n    };\n    MapPolyfill.prototype.forEach = function (cb, thisArg) {\n        for (var i = 0; i < this.size; i++) {\n            cb.call(thisArg, this._values[i], this._keys[i]);\n        }\n    };\n    return MapPolyfill;\n}());\nexports.MapPolyfill = MapPolyfill;\n//# sourceMappingURL=MapPolyfill.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nvar ObjectUnsubscribedError = (function (_super) {\n    __extends(ObjectUnsubscribedError, _super);\n    function ObjectUnsubscribedError() {\n        var err = _super.call(this, 'object unsubscribed');\n        this.name = err.name = 'ObjectUnsubscribedError';\n        this.stack = err.stack;\n        this.message = err.message;\n    }\n    return ObjectUnsubscribedError;\n}(Error));\nexports.ObjectUnsubscribedError = ObjectUnsubscribedError;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map",
    "\"use strict\";\nvar root_1 = require('./root');\nfunction minimalSetImpl() {\n    // THIS IS NOT a full impl of Set, this is just the minimum\n    // bits of functionality we need for this library.\n    return (function () {\n        function MinimalSet() {\n            this._values = [];\n        }\n        MinimalSet.prototype.add = function (value) {\n            if (!this.has(value)) {\n                this._values.push(value);\n            }\n        };\n        MinimalSet.prototype.has = function (value) {\n            return this._values.indexOf(value) !== -1;\n        };\n        Object.defineProperty(MinimalSet.prototype, \"size\", {\n            get: function () {\n                return this._values.length;\n            },\n            enumerable: true,\n            configurable: true\n        });\n        MinimalSet.prototype.clear = function () {\n            this._values.length = 0;\n        };\n        return MinimalSet;\n    }());\n}\nexports.minimalSetImpl = minimalSetImpl;\nexports.Set = root_1.root.Set || minimalSetImpl();\n//# sourceMappingURL=Set.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * An error thrown when duetime elapses.\n *\n * @see {@link timeout}\n *\n * @class TimeoutError\n */\nvar TimeoutError = (function (_super) {\n    __extends(TimeoutError, _super);\n    function TimeoutError() {\n        var err = _super.call(this, 'Timeout has occurred');\n        this.name = err.name = 'TimeoutError';\n        this.stack = err.stack;\n        this.message = err.message;\n    }\n    return TimeoutError;\n}(Error));\nexports.TimeoutError = TimeoutError;\n//# sourceMappingURL=TimeoutError.js.map",
    "\"use strict\";\nvar __extends = (this && this.__extends) || function (d, b) {\n    for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];\n    function __() { this.constructor = d; }\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n};\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nvar UnsubscriptionError = (function (_super) {\n    __extends(UnsubscriptionError, _super);\n    function UnsubscriptionError(errors) {\n        _super.call(this);\n        this.errors = errors;\n        var err = Error.call(this, errors ?\n            errors.length + \" errors occurred during unsubscription:\\n  \" + errors.map(function (err, i) { return ((i + 1) + \") \" + err.toString()); }).join('\\n  ') : '');\n        this.name = err.name = 'UnsubscriptionError';\n        this.stack = err.stack;\n        this.message = err.message;\n    }\n    return UnsubscriptionError;\n}(Error));\nexports.UnsubscriptionError = UnsubscriptionError;\n//# sourceMappingURL=UnsubscriptionError.js.map",
    "\"use strict\";\nfunction applyMixins(derivedCtor, baseCtors) {\n    for (var i = 0, len = baseCtors.length; i < len; i++) {\n        var baseCtor = baseCtors[i];\n        var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);\n        for (var j = 0, len2 = propertyKeys.length; j < len2; j++) {\n            var name_1 = propertyKeys[j];\n            derivedCtor.prototype[name_1] = baseCtor.prototype[name_1];\n        }\n    }\n}\nexports.applyMixins = applyMixins;\n//# sourceMappingURL=applyMixins.js.map",
    "\"use strict\";\nvar root_1 = require('./root');\nfunction assignImpl(target) {\n    var sources = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        sources[_i - 1] = arguments[_i];\n    }\n    var len = sources.length;\n    for (var i = 0; i < len; i++) {\n        var source = sources[i];\n        for (var k in source) {\n            if (source.hasOwnProperty(k)) {\n                target[k] = source[k];\n            }\n        }\n    }\n    return target;\n}\nexports.assignImpl = assignImpl;\n;\nfunction getAssign(root) {\n    return root.Object.assign || assignImpl;\n}\nexports.getAssign = getAssign;\nexports.assign = getAssign(root_1.root);\n//# sourceMappingURL=assign.js.map",
    "\"use strict\";\n// typeof any so that it we don't have to cast when comparing a result to the error object\nexports.errorObject = { e: {} };\n//# sourceMappingURL=errorObject.js.map",
    "\"use strict\";\nexports.isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArray.js.map",
    "\"use strict\";\nfunction isDate(value) {\n    return value instanceof Date && !isNaN(+value);\n}\nexports.isDate = isDate;\n//# sourceMappingURL=isDate.js.map",
    "\"use strict\";\nfunction isFunction(x) {\n    return typeof x === 'function';\n}\nexports.isFunction = isFunction;\n//# sourceMappingURL=isFunction.js.map",
    "\"use strict\";\nvar isArray_1 = require('../util/isArray');\nfunction isNumeric(val) {\n    // parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n    // ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n    // subtraction forces infinities to NaN\n    // adding 1 corrects loss of precision from parseFloat (#15100)\n    return !isArray_1.isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\nexports.isNumeric = isNumeric;\n;\n//# sourceMappingURL=isNumeric.js.map",
    "\"use strict\";\nfunction isObject(x) {\n    return x != null && typeof x === 'object';\n}\nexports.isObject = isObject;\n//# sourceMappingURL=isObject.js.map",
    "\"use strict\";\nfunction isPromise(value) {\n    return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\nexports.isPromise = isPromise;\n//# sourceMappingURL=isPromise.js.map",
    "\"use strict\";\nfunction isScheduler(value) {\n    return value && typeof value.schedule === 'function';\n}\nexports.isScheduler = isScheduler;\n//# sourceMappingURL=isScheduler.js.map",
    "\"use strict\";\n/* tslint:disable:no-empty */\nfunction noop() { }\nexports.noop = noop;\n//# sourceMappingURL=noop.js.map",
    "\"use strict\";\nfunction not(pred, thisArg) {\n    function notPred() {\n        return !(notPred.pred.apply(notPred.thisArg, arguments));\n    }\n    notPred.pred = pred;\n    notPred.thisArg = thisArg;\n    return notPred;\n}\nexports.not = not;\n//# sourceMappingURL=not.js.map",
    "\"use strict\";\n/**\n * window: browser in DOM main thread\n * self: browser in WebWorker\n * global: Node.js/other\n */\nexports.root = (typeof window == 'object' && window.window === window && window\n    || typeof self == 'object' && self.self === self && self\n    || typeof global == 'object' && global.global === global && global);\nif (!exports.root) {\n    throw new Error('RxJS could not find any global context (window, self, global)');\n}\n//# sourceMappingURL=root.js.map",
    "\"use strict\";\nvar root_1 = require('./root');\nvar isArray_1 = require('./isArray');\nvar isPromise_1 = require('./isPromise');\nvar isObject_1 = require('./isObject');\nvar Observable_1 = require('../Observable');\nvar iterator_1 = require('../symbol/iterator');\nvar InnerSubscriber_1 = require('../InnerSubscriber');\nvar observable_1 = require('../symbol/observable');\nfunction subscribeToResult(outerSubscriber, result, outerValue, outerIndex) {\n    var destination = new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex);\n    if (destination.closed) {\n        return null;\n    }\n    if (result instanceof Observable_1.Observable) {\n        if (result._isScalar) {\n            destination.next(result.value);\n            destination.complete();\n            return null;\n        }\n        else {\n            return result.subscribe(destination);\n        }\n    }\n    else if (isArray_1.isArray(result)) {\n        for (var i = 0, len = result.length; i < len && !destination.closed; i++) {\n            destination.next(result[i]);\n        }\n        if (!destination.closed) {\n            destination.complete();\n        }\n    }\n    else if (isPromise_1.isPromise(result)) {\n        result.then(function (value) {\n            if (!destination.closed) {\n                destination.next(value);\n                destination.complete();\n            }\n        }, function (err) { return destination.error(err); })\n            .then(null, function (err) {\n            // Escaping the Promise trap: globally throw unhandled errors\n            root_1.root.setTimeout(function () { throw err; });\n        });\n        return destination;\n    }\n    else if (result && typeof result[iterator_1.$$iterator] === 'function') {\n        var iterator = result[iterator_1.$$iterator]();\n        do {\n            var item = iterator.next();\n            if (item.done) {\n                destination.complete();\n                break;\n            }\n            destination.next(item.value);\n            if (destination.closed) {\n                break;\n            }\n        } while (true);\n    }\n    else if (result && typeof result[observable_1.$$observable] === 'function') {\n        var obs = result[observable_1.$$observable]();\n        if (typeof obs.subscribe !== 'function') {\n            destination.error(new TypeError('Provided object does not correctly implement Symbol.observable'));\n        }\n        else {\n            return obs.subscribe(new InnerSubscriber_1.InnerSubscriber(outerSubscriber, outerValue, outerIndex));\n        }\n    }\n    else {\n        var value = isObject_1.isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n        var msg = (\"You provided \" + value + \" where a stream was expected.\")\n            + ' You can provide an Observable, Promise, Array, or Iterable.';\n        destination.error(new TypeError(msg));\n    }\n    return null;\n}\nexports.subscribeToResult = subscribeToResult;\n//# sourceMappingURL=subscribeToResult.js.map",
    "\"use strict\";\nvar Subscriber_1 = require('../Subscriber');\nvar rxSubscriber_1 = require('../symbol/rxSubscriber');\nvar Observer_1 = require('../Observer');\nfunction toSubscriber(nextOrObserver, error, complete) {\n    if (nextOrObserver) {\n        if (nextOrObserver instanceof Subscriber_1.Subscriber) {\n            return nextOrObserver;\n        }\n        if (nextOrObserver[rxSubscriber_1.$$rxSubscriber]) {\n            return nextOrObserver[rxSubscriber_1.$$rxSubscriber]();\n        }\n    }\n    if (!nextOrObserver && !error && !complete) {\n        return new Subscriber_1.Subscriber(Observer_1.empty);\n    }\n    return new Subscriber_1.Subscriber(nextOrObserver, error, complete);\n}\nexports.toSubscriber = toSubscriber;\n//# sourceMappingURL=toSubscriber.js.map",
    "\"use strict\";\nvar errorObject_1 = require('./errorObject');\nvar tryCatchTarget;\nfunction tryCatcher() {\n    try {\n        return tryCatchTarget.apply(this, arguments);\n    }\n    catch (e) {\n        errorObject_1.errorObject.e = e;\n        return errorObject_1.errorObject;\n    }\n}\nfunction tryCatch(fn) {\n    tryCatchTarget = fn;\n    return tryCatcher;\n}\nexports.tryCatch = tryCatch;\n;\n//# sourceMappingURL=tryCatch.js.map",
    "import { HTTPProvider, WSProvider, SSEProvider } from './streamProviders'\nimport { STREAM_TYPE } from './consts'\n\nexport class StreamAPI {\n  constructor(type, ...args) {\n    let streamInstance\n    switch (type) {\n      case STREAM_TYPE.HTTP:\n        streamInstance = new HTTPProvider(type, ...args)\n        this.send = streamInstance.send.bind(streamInstance)\n        this.sendMany = streamInstance.sendMany.bind(streamInstance)\n        // group API\n        this.groupByName = streamInstance.groupByName.bind(streamInstance)\n        this.groupByMethod = streamInstance.groupByMethod.bind(streamInstance)\n        this.groupByUrl = streamInstance.groupByUrl.bind(streamInstance)\n        // header API\n        this.setHeader = HTTPProvider.setHeader\n        this.removeHeader = HTTPProvider.removeHeader\n        break\n      case STREAM_TYPE.WS:\n        streamInstance = new WSProvider(type, ...args)\n        this.send = streamInstance.send.bind(streamInstance)\n        this.sendMany = streamInstance.sendMany.bind(streamInstance)\n        this.close = streamInstance.close.bind(streamInstance)\n        break\n      case STREAM_TYPE.SSE:\n        streamInstance = new SSEProvider(type, ...args)\n        this.close = streamInstance.close.bind(streamInstance)\n        break\n      // case STREAM_TYPE.STRUCTURE:\n      //   streamInstance = new MutationObserver(type, ...args)\n      //   this.structure = streamInstance.structure\n      //   break\n      default:\n        throw new Error(`${type} type of protocol doesn't exist`)\n    }\n    this.dataStream = streamInstance.dataStream\n    this.errorStream = streamInstance.errorStream.asObservable()\n  }\n}\n",
    "import { Subscriber, Observable, Subject } from 'rxjs'\nimport axios from 'axios'\nimport { StreamAPI } from './streamAPI'\n\nclass StreamProvider {\n  constructor(type, ...args) {\n    Object.assign(this, { type }, ...args)\n    this.errorStream = new Subject()\n  }\n}\n\nclass HTTPProvider extends StreamProvider {\n  constructor(type, { endpoints, config }) {\n    super(type, { endpoints, config })\n\n    this.service = axios.create(config)\n    this.requestStream = new Subject()\n\n    this.dataStream = this.requestStream\n      .concatMap(data => Observable.fromPromise(HTTPProvider.callXHR(this.service, data)))\n      .do(() => void 0, err => this.errorStream.next(err))\n      .retry()\n      .share()\n\n    this.dataStream.source.connect()\n  }\n\n  static callXHR(service, { endpoint, data, config }) {\n    const bodylessMethods = ['get', 'delete', 'head']\n    const method = endpoint.method\n    const handler = service[method].bind(service)\n    let url = endpoint.url\n\n    if (url.includes(':id')) {\n      if (!config.id) {\n        return Promise.reject(new Error(`${url} request must have id`))\n      }\n      url = url.replace(':id', config.id)\n    }\n    return bodylessMethods.includes(method) ?\n      handler(url, config) : handler(url, data, config)\n  }\n\n  send(alias, payload = {}) {\n    const endpoint = this.endpoints[alias]\n    if (endpoint) {\n      this.requestStream.next({ endpoint, data: payload.data, config: payload.config })\n    } else {\n      this.errorStream.next(new Error(`${alias} endpoint doesn't exist`))\n    }\n\n    return this.dataStream.asObservable()\n  }\n\n  sendMany(list, delay = 0) {\n    if (!Number.isInteger(delay)) {\n      this.errorStream.next(new Error(`${delay} is not integer`))\n      throw new Error(`${delay} is not integer`)\n    }\n\n    Observable\n      .from(list)\n      .concatMap(x => Observable.of(x).delay(delay))\n      .subscribe(([alias, data]) => this.send(alias, data))\n\n    return this.dataStream.asObservable()\n  }\n\n  groupByMethod(method) {\n    const endpoints = Object\n      .keys(this.endpoints)\n      .filter(x => this.endpoints[x].method === method)\n\n    return this.groupByName(...endpoints)\n  }\n\n  groupByUrl(url) {\n    const endpoints = Object\n      .keys(this.endpoints)\n      .filter(x => this.endpoints[x].url === url)\n\n    return this.groupByName(...endpoints)\n  }\n\n  groupByName(...newEndpoints) {\n    if (!newEndpoints.length) {\n      this.errorStream.next(new Error('endpoints must be provided'))\n      throw new Error('endpoints must be provided')\n    }\n\n    const endpoints = newEndpoints\n      .map(x => {\n        if (this.endpoints[x]) {\n          return {\n            [x]: this.endpoints[x],\n          }\n        }\n        this.errorStream.next(new Error(`endpoint ${x} is not valid`))\n        throw new Error(`endpoint ${x} is not valid`)\n      })\n      .reduceRight((x, acc) => Object.assign(acc, x), {})\n\n    return new StreamAPI(this.type, {\n      endpoints,\n      config: this.config,\n    })\n  }\n\n  static setHeader(method, header, value) {\n    Object.assign(axios.defaults.headers[method], {\n      [header]: value,\n    })\n  }\n\n  static removeHeader(method, header) {\n    delete axios.defaults.headers[method][header]\n  }\n}\n\nclass WSProvider extends StreamProvider {\n  constructor(type, endpoint, protocol) {\n    super(type, endpoint, protocol)\n\n    this.buffer = []\n    this.service = this.fromWebSocket(endpoint, protocol)\n\n    this.dataStream = this.service\n      .concatMap(data => Observable.of(data))\n      .do(() => void 0, err => this.errorStream.next(err))\n      .retry()\n      .share()\n\n    this.dataStream.source.connect()\n  }\n\n  fromWebSocket(endpoint, protocol) {\n    const ws = new WebSocket(endpoint, protocol)\n    const close = ws.close.bind(ws)\n\n    const observable = Observable.create((wsObservable) => {\n      ws.onerror = (err) => wsObservable.error(err)\n      ws.onmessage = (data) => wsObservable.next(data)\n      ws.onopen = (state) => wsObservable.next(state)\n      ws.onclose = (state) => wsObservable.next(state)\n    })\n\n    const buffer$ = Observable\n      .interval(1000)\n      .takeWhile(() => ws.readyState !== WebSocket.OPEN)\n      .flatMap(() => Observable.of(this.buffer))\n\n    const observer = Subscriber.create(\n      (data) => {\n        buffer$\n          .concat(Observable.of(data))\n          .subscribe(x => {\n            if (x.code) {\n              close(x.code, x.reason)\n            } else {\n              ws.send(JSON.stringify(x))\n            }\n          })\n\n        if (ws.readyState !== WebSocket.OPEN) {\n          this.buffer = [...this.buffer, data]\n        }\n      },\n      (err) => console.error(`Error: ${err}`),\n      () => close())\n\n    return Subject.create(observer, observable)\n  }\n\n  send(data) {\n    this.service.next(data)\n    return this.dataStream.asObservable()\n  }\n\n  sendMany(list, delay = 0) {\n    if (!Number.isInteger(delay)) {\n      this.errorStream.next(new Error(`${delay} is not integer`))\n      throw new Error(`${delay} is not integer`)\n    }\n\n    Observable\n      .from(list)\n      .concatMap(x => Observable.of(x).delay(delay))\n      .subscribe(x => this.send(x))\n\n    return this.dataStream.asObservable()\n  }\n\n  close(code = 1000, reason) {\n    this.send({ code, reason })\n  }\n}\n\nclass SSEProvider extends StreamProvider {\n  constructor(type, endpoint, options) {\n    super(type, endpoint, options)\n\n    this.service = SSEProvider.fromSSE(endpoint, options)\n\n    this.dataStream = this.service\n      .concatMap(data => Observable.of(data))\n      .do(() => void 0, err => this.errorStream.next(err))\n      .retry()\n      .share()\n  }\n\n  static fromSSE(endpoint, options) {\n    const sse = new EventSource(endpoint, options)\n    const close = sse.close.bind(sse)\n\n    const observable = Observable.create((sseObservable) => {\n      sse.onerror = (err) => sseObservable.error(err)\n      sse.onmessage = (data) => sseObservable.next(data)\n      sse.onopen = (state) => sseObservable.next(state)\n    })\n    const observer = Subscriber.create(\n      () => void 0,\n      (err) => console.error(`Error: ${err}`),\n      () => close())\n\n    return Subject.create(observer, observable)\n  }\n  close() {\n    this.service.complete()\n  }\n}\n\n/*\nclass MutationObserver extends StreamProvider {\n  constructor(type, structure) {\n    super(type)\n\n    if (!Proxy) {\n      throw new Error('Proxy API is not supported')\n    }\n    const service = new Subject()\n    const proxied = new Proxy(structure, {\n      set: function (target, prop, value) {\n        const newStruct = JSON.parse(JSON.stringify(target));\n        const oldStruct = JSON.parse(JSON.stringify(target));\n\n        if (target[prop]) {\n          oldStruct[prop] = target[prop]\n        }\n        newStruct[prop] = value;\n\n        service.next([oldStruct, newStruct])\n        return Reflect.set(target, prop, value)\n      },\n      deleteProperty: function (target, prop) {\n        return Reflect.deleteProperty(target, prop)\n      },\n    })\n    Object.assign(this, { structure: proxied }, { dataStream: service.asObservable() })\n  }\n}\n*/\nexport { HTTPProvider, WSProvider, SSEProvider }\n"
  ]
}